2014-10-02 Olivier Hainque <hainque@adacore.com>
[platform/upstream/linaro-gcc.git] / gcc / ChangeLog
1 2014-10-02  Olivier Hainque  <hainque@adacore.com>
2
3         * Makefile.in (CROSS): Define, to @CROSS.
4
5 2014-10-02  Jakub Jelinek  <jakub@redhat.com>
6
7         PR target/62128
8         * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
9         if it expands to a single insn only.
10         (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument.  If true,
11         fail unless in_order is true.  Add forward declaration.
12         (expand_vec_perm_vperm2f128): Fix up comment about which permutation
13         is useful for one_operand_p.
14         (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
15
16 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
17
18         * cgraphclones.c (build_function_type_skip_args): Do not make new
19         type variant of old. 
20
21 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
22
23         * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
24         when speculation is added.
25         (ipa_edge_args): Add polymorphic_call_contexts.
26         (ipa_get_ith_polymorhic_call_context): New accesor.
27         (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
28         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
29         (ipa_compute_jump_functions_for_edge): Compute contexts.
30         (update_jump_functions_after_inlining): Update contexts.
31         (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
32         update dumping; add speculative edge creation.
33         (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
34         context updating.
35         (update_indirect_edges_after_inlining): Pass down context.
36         (ipa_edge_duplication_hook): Duplicate contexts.
37         (ipa_write_node_info): Stream out contexts.
38         (ipa_read_node_info): Stream in contexts.
39         * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
40         types.
41         (try_speculative_devirtualization): New function.
42         * ipa-utils.h (try_speculative_devirtualization): Declare.
43
44 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
45
46         * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
47         dumping during WPA.
48
49 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
50
51         * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
52         type variants.
53
54 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
55
56         * ipa-polymorphic-call.c
57         (ipa_polymorphic_call_context::restrict_to_inner_class):
58         Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
59         use speculation_consistent_p to do so; Add CONSDER_BASES
60         and CONSIDER_PLACEMENT_NEW parameters.
61         (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
62         short circuit obvious cases.
63         (ipa_polymorphic_call_context::dump): Improve formatting.
64         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
65         combine_speculation_with to record speculations; Do not ICE when
66         object is located in pointer type decl; do not ICE for methods
67         of UNION_TYPE; do not record nonpolymorphic types.
68         (ipa_polymorphic_call_context::speculation_consistent_p): New method.
69         (ipa_polymorphic_call_context::combine_speculation_with): New method.
70         (ipa_polymorphic_call_context::combine_with): New method.
71         (ipa_polymorphic_call_context::make_speculative): Move here; use
72         combine speculation.
73         * cgraph.h (ipa_polymorphic_call_context): Update
74         restrict_to_inner_class prototype; add offset_by, make_speculative, 
75         combine_with, useless_p, combine_speculation_with and
76         speculation_consistent_p methods.
77         (ipa_polymorphic_call_context::offset_by): New method.
78         (ipa_polymorphic_call_context::useless_p): New method.
79
80 2014-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
81
82         PR rtl-optimization/62151
83         * combine.c (can_combine_p): Allow the destination register of INSN
84         to be clobbered in I3.
85         (subst): Do not substitute into clobbers of registers.
86
87 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
88
89         PR debug/63342
90         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
91         offset, TARGET_MEM_REF and SSA_NAME.
92
93         * config/i386/i386.c (expand_vec_perm_palignr): Handle
94         256-bit vectors for TARGET_AVX2.
95
96         * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
97         dfirst permutation.
98
99         PR target/63428
100         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
101         argument to avx2_permv2ti.
102
103 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
104
105         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
106
107 2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
108
109         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
110         (fmod<mode>3): Ditto.
111         (fpremxf4_i387): Ditto.
112         (reminderxf3): Ditto.
113         (reminder<mode>3): Ditto.
114         (fprem1xf4_i387): Ditto.
115
116 2014-09-30  Teresa Johnson  <tejohnson@google.com>
117
118         * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
119         duplicate_blocks bitmap.
120         (remove_ctrl_stmt_and_useless_edges): Ditto.
121         (create_block_for_threading): Ditto.
122         (compute_path_counts): New function.
123         (update_profile): Ditto.
124         (recompute_probabilities): Ditto.
125         (update_joiner_offpath_counts): Ditto.
126         (freqs_to_counts_path): Ditto.
127         (clear_counts_path): Ditto.
128         (ssa_fix_duplicate_block_edges): Update profile info.
129         (ssa_create_duplicates): Pass new parameter.
130         (ssa_redirect_edges): Remove old profile update.
131         (thread_block_1): New duplicate_blocks bitmap,
132         remove old profile update.
133         (thread_single_edge): Pass new parameter.
134
135 2014-09-30  Ilya Tocar  <ilya.tocar@intel.com>
136
137         PR middle-end/62120
138         * varasm.c (decode_reg_name_and_count): Check availability for
139         registers from ADDITIONAL_REGISTER_NAMES.
140
141 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
142
143         PR plugins/63410
144         * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
145         (PLUGIN_HEADERS): Add pass-instances.def.
146
147 2014-09-30  James Greenhalgh  <james.greenhalgh@arm.com>
148
149         * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
150         iterator.
151         * config/aarch64/aarch64-simd.md
152         (aarch64_sqdmull_laneq<mode>): Expand iterator.
153         * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
154         (vqdmulls_lane_s32): Fix return type.
155         (vqdmulls_laneq_s32): New.
156
157 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
158
159         PR inline-asm/63282
160         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
161         or invert_jump_1 if jump isn't any_condjump_p.
162
163 2014-09-30  Terry Guo  <terry.guo@arm.com>
164
165         * config/arm/arm-cores.def (cortex-m7): New core name.
166         * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
167         (fpv5-d16): Ditto.
168         * config/arm/arm-tables.opt: Regenerated.
169         * config/arm/arm-tune.md: Regenerated.
170         * config/arm/arm.h (TARGET_VFP5): New macro.
171         * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
172         * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
173         smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
174         * doc/invoke.texi: Document new cpu and fpu names.
175
176 2014-09-30  Jiong Wang  <jiong.wang@arm.com>
177
178         * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
179         before sinking insn.
180
181 2014-09-30  David Sherwood  <david.sherwood@arm.com>
182
183         * ira-int.h (ira_allocno): Add "wmode" field.
184         * ira-build.c (create_insn_allocnos): Add new "parent" function
185         parameter.
186         * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
187         that cannot be accessed in wmode.
188
189 2014-09-30  Markus Trippelsdorf  <markus@trippelsdorf.de>
190
191         * data-streamer.c (bp_unpack_var_len_int): Avoid signed
192         integer overflow.
193
194 2014-09-29  Andi Kleen  <ak@linux.intel.com>
195
196         * opts.c (print_filtered_help): Print --param min/max/default
197         with -Q.
198
199 2014-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
200
201         * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
202
203 2014-09-29  Eric Botcazou  <ebotcazou@adacore.com>
204
205         * tree-vrp.c (get_single_symbol): New function.
206         (build_symbolic_expr): Likewise.
207         (symbolic_range_based_on_p): New predicate.
208         (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
209         for PLUS and MINUS.  Do not drop symbolic ranges at the end.
210         (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
211         operand is symbolic and based on the other operand.
212
213 2014-09-29  Chen Gang  <gang.chen.5i5j@gmail.com>
214
215         * config/microblaze/microblaze.md (call_internal1): Use VOID
216         instead of SI to fix "((void (*)(void)) 0)()" issue
217
218 2014-09-29  Nick Clifton  <nickc@redhat.com>
219
220         * config/msp430/msp430.c (msp430_expand_prologue): Return a
221         CLOBBER rtx for naked functions.
222         (msp430_expand_epilogue): Likewise.
223         (msp430_use_f5_series_hwmult): Cache result.
224         (use_32bit_hwmult): Cache result.
225         (msp430_no_hwmult): New function.
226         (msp430_output_labelref): Use it.
227
228 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
229
230         PR middle-end/63247
231         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
232         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
233         use the alignment of avar rather than ovar.
234
235 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
236
237         * config/pa/pa.c (pa_output_function_epilogue): Only update
238         last_address when a nonnote insn is found.
239
240 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
241
242         PR ipa/60665
243         * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
244
245 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
246
247         PR ipa/62121
248         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
249         fix pasto in checking array size.
250
251 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
252
253         PR middle-end/35545
254         * passes.def (pass_tracer): Move before last dominator pass.
255
256 2014-09-26  Thomas Schwinge  <thomas@codesourcery.com>
257
258         * gcc.c (try_generate_repro): Remove argument "prog".  Change all
259         users.
260         (run_attempt): Handle errors of "pex_run" invocation.
261
262 2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>
263
264         * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
265         (CC1_SPEC): Define.
266         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
267         (TARGET_ASAN_SHADOW_OFFSET): Define.
268
269 2014-09-26  Martin Liska  <mliska@suse.cz>
270
271         * cgraph.c (cgraph_node::release_body): New argument keep_arguments
272         introduced.
273         * cgraph.h: Likewise.
274         * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
275         * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
276         * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
277         * tree-ssa-alias.h: Likewise.
278
279 2014-09-26  Jakub Jelinek  <jakub@redhat.com>
280             Max Ostapenko  <m.ostapenko@partner.samsung.com>
281
282         * common.opt: New option.
283         * doc/invoke.texi: Describe new option.
284         * gcc.c (execute): Don't free first string early, but at the end
285         of the function.  Call retry_ice if compiler exited with
286         ICE_EXIT_CODE.
287         (main): Factor out common code.
288         (print_configuration): New function.
289         (files_equal_p): Likewise.
290         (check_repro): Likewise.
291         (run_attempt): Likewise.
292         (do_report_bug): Likewise.
293         (append_text): Likewise.
294         (try_generate_repro): Likewise
295
296 2014-09-25  Andi Kleen  <ak@linux.intel.com>
297
298         * config/i386/i386.c (x86_print_call_or_nop): New function.
299         (x86_function_profiler): Support -mnop-mcount and
300         -mrecord-mcount.
301         * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
302         * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
303
304 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
305
306         * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
307         * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
308         * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
309         Remove.
310
311 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
312
313         * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
314         type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
315         types_odr_comparable): Declare.
316         (polymorphic_type_binfo_p): Move here from ipa-devirt.c
317         * ipa-polymorphic-call.c: New file.
318         (contains_polymorphic_type_p, possible_placement_new,
319         ipa_polymorphic_call_context::restrict_to_inner_class,
320         contains_type_p, decl_maybe_in_construction_p,
321         ipa_polymorphic_call_context::stream_out,
322         ipa_polymorphic_call_context::debug,
323         ipa_polymorphic_call_context::stream_in,
324         ipa_polymorphic_call_context::set_by_decl,
325         ipa_polymorphic_call_context::set_by_invariant,
326         walk_ssa_copies,
327         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
328         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
329         extr_type_from_vtbl_ptr_store, record_known_type
330         check_stmt_for_type_change,
331         ipa_polymorphic_call_context::get_dynamic_type): Move here from
332         ipa-devirt.c
333         * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
334         and streamer-hooks.h
335         (contains_polymorphic_type_p, possible_placement_new,
336         ipa_polymorphic_call_context::restrict_to_inner_class,
337         contains_type_p, decl_maybe_in_construction_p,
338         ipa_polymorphic_call_context::stream_out,
339         ipa_polymorphic_call_context::debug,
340         ipa_polymorphic_call_context::stream_in,
341         ipa_polymorphic_call_context::set_by_decl,
342         ipa_polymorphic_call_context::set_by_invariant,
343         walk_ssa_copies,
344         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
345         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
346         extr_type_from_vtbl_ptr_store, record_known_type
347         check_stmt_for_type_change,
348         ipa_polymorphic_call_context::get_dynamic_type): Move to
349         ipa-polymorphic-call.c
350         (type_all_derivations_known_p, types_odr_comparable,
351         types_must_be_same_for_odr): Export.
352         (type_known_to_have_no_deriavations_p): New function.
353         * Makefile.in: Add ipa-polymorphic-call.c
354
355 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
356
357         * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
358         for better storage.
359         (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
360         (possible_polymorphic_call_targets): Instead of computing both
361         speculative and non-speculative answers, do just one at a time.
362         Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
363         (dump_targets): Break out from ...
364         (dump_possible_polymorphic_call_targets): ... here; dump both speculative
365         and non-speculative lists.
366         (ipa_devirt): Update for new possible_polymorphic_call_targets API.
367         * ipa-utils.h (possible_polymorphic_call_targets): Update.
368
369 2014-09-25  Uros Bizjak  <ubizjak@gmail.com>
370
371         PR rtl-optimization/63348
372         * emit-rtl.c (try_split): Do not emit extra barrier.
373
374 2014-09-25  James Greenhalgh  <james.greenhalgh@arm.com>
375
376         * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
377         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
378         new predicates.
379         (aarch64_<sur>shll2_n<mode>): Likewise.
380         (aarch64_<sur>shr_n<mode>): Likewise.
381         (aarch64_<sur>sra_n<mode>: Likewise.
382         (aarch64_<sur>s<lr>i_n<mode>): Likewise.
383         (aarch64_<sur>qshl<u>_n<mode>): Likewise.
384         * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
385         * config/aarch64/iterators.md (ve_mode): New.
386         (offsetlr): Remap to infix text for use in new predicates.
387         * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
388         (aarch64_simd_shift_imm_hi): Likewise.
389         (aarch64_simd_shift_imm_si): Likewise.
390         (aarch64_simd_shift_imm_di): Likewise.
391         (aarch64_simd_shift_imm_offset_qi): Likewise.
392         (aarch64_simd_shift_imm_offset_hi): Likewise.
393         (aarch64_simd_shift_imm_offset_si): Likewise.
394         (aarch64_simd_shift_imm_offset_di): Likewise.
395         (aarch64_simd_shift_imm_bitsize_qi): Likewise.
396         (aarch64_simd_shift_imm_bitsize_hi): Likewise.
397         (aarch64_simd_shift_imm_bitsize_si): Likewise.
398         (aarch64_simd_shift_imm_bitsize_di): Likewise.
399
400 2014-09-25  Jiong Wang  <jiong.wang@arm.com>
401
402         * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
403         new created BB as the intersection of live-in from "old_dest" and
404         live-out from "bb".
405
406 2014-09-25  Felix Yang  <felix.yang@huawei.com>
407
408         * lra.c (lra_set_insn_recog_data): Fix typo in comment.
409         * genautomata.c (merge_states): Ditto.
410
411 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
412
413         PR target/62218
414         * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
415         in instruction sequence.
416
417 2014-09-25  Nick Clifton  <nickc@redhat.com>
418
419         PR target/62218
420         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
421         in instruction sequence.
422
423 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
424
425         PR target/63335
426         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
427         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
428
429 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
430             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
431             Anna Tikhonova  <anna.tikhonova@intel.com>
432             Ilya Tocar  <ilya.tocar@intel.com>
433             Andrey Turetskiy  <andrey.turetskiy@intel.com>
434             Ilya Verbin  <ilya.verbin@intel.com>
435             Kirill Yukhin  <kirill.yukhin@intel.com>
436             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
437
438         * config/i386/sse.md
439         (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
440         (define_expand "<avx2_avx512>_perm<mode>"): ... this.
441         (define_expand "avx512f_perm<mode>_mask"): Rename to ...
442         (define_expand "<avx512>_perm<mode>_mask"): ... this.
443         Use VI8F_256_512 mode iterator.
444         (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
445         (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
446
447 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
448             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
449             Anna Tikhonova  <anna.tikhonova@intel.com>
450             Ilya Tocar  <ilya.tocar@intel.com>
451             Andrey Turetskiy  <andrey.turetskiy@intel.com>
452             Ilya Verbin  <ilya.verbin@intel.com>
453             Kirill Yukhin  <kirill.yukhin@intel.com>
454             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
455
456         * config/i386/sse.md
457         (define_insn "avx_movshdup256<mask_name>"): Add masking.
458         (define_insn "sse3_movshdup<mask_name>"): Ditto.
459         (define_insn "avx_movsldup256<mask_name>"): Ditto.
460         (define_insn "sse3_movsldup<mask_name>"): Ditto.
461         (define_insn "vec_dupv2df<mask_name>"): Ditto.
462         (define_insn "*vec_concatv2df"): Add EVEX version.
463
464 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
465             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
466             Anna Tikhonova  <anna.tikhonova@intel.com>
467             Ilya Tocar  <ilya.tocar@intel.com>
468             Andrey Turetskiy  <andrey.turetskiy@intel.com>
469             Ilya Verbin  <ilya.verbin@intel.com>
470             Kirill Yukhin  <kirill.yukhin@intel.com>
471             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
472
473         * config/i386/sse.md
474         (define_insn "vec_set<mode>_0"): Add EVEX version.
475
476 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
477             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
478             Anna Tikhonova  <anna.tikhonova@intel.com>
479             Ilya Tocar  <ilya.tocar@intel.com>
480             Andrey Turetskiy  <andrey.turetskiy@intel.com>
481             Ilya Verbin  <ilya.verbin@intel.com>
482             Kirill Yukhin  <kirill.yukhin@intel.com>
483             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
484
485         * config/i386/sse.md
486         (define_insn
487         "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
488         New.
489         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
490         (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
491         (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
492         "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
493         (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
494         (define_expand "sse2_cvtpd2ps_mask): New.
495         (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
496         (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
497
498 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
499             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
500             Anna Tikhonova  <anna.tikhonova@intel.com>
501             Ilya Tocar  <ilya.tocar@intel.com>
502             Andrey Turetskiy  <andrey.turetskiy@intel.com>
503             Ilya Verbin  <ilya.verbin@intel.com>
504             Kirill Yukhin  <kirill.yukhin@intel.com>
505             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
506
507         * config/i386/i386.c
508         (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
509         (ufix_notruncv8dfv8si2_mask_round): ... this.
510         * config/i386/sse.md
511         (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
512         (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
513         (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
514         (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
515         (define_expand "sse2_cvtpd2dq"): Delete.
516         (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
517         make 2nd operand const0 vector.
518         (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
519         Delete.
520         (define_mode_attr pd2udqsuff): New.
521         (define_insn
522         "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
523         (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
524         (define_insn "*avx_cvttpd2dq256_2"): Delete.
525         (define_expand "sse2_cvttpd2dq"): Ditto.
526         (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
527         make 2nd operand const0 vector.
528
529 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
530
531         PR tree-optimization/63341
532         * tree-vectorizer.h (vect_create_data_ref_ptr,
533         vect_create_addr_base_for_vector_ref): Add another tree argument
534         defaulting to NULL_TREE.
535         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
536         argument, pass it down to vect_create_addr_base_for_vector_ref.
537         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
538         add that to base_offset too if non-NULL.
539         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
540         for dr_explicit_realign_optimized set it to vector byte size
541         - 1 instead of setting offset, pass byte_offset down to
542         vect_create_data_ref_ptr.
543
544 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
545
546         * ipa-devirt.c (possible_polymorphic_call_targets): Remove
547         forgotten debug output; canonicalize querries more wtih LTO.
548
549 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
550
551         * cgraph.h (class ipa_polymorphic_call_context): Move here from
552         ipa-utils.h; add stream_int and stream_out methods.
553         (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
554         OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
555         MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
556         add CONTEXT.
557         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
558         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
559         ipa_polymorphic_call_context::clear_speculation,
560         ipa_polymorphic_call_context::clear_outer_type): Move here from
561         ipa-utils.h
562         * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
563         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
564         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
565         ipa_polymorphic_call_context::clear_speculation,
566         ipa_polymorphic_call_context::clear_outer_type): Likewise.
567         * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
568         streamer-hooks.h
569         (ipa_polymorphic_call_context::stream_out): New method.
570         (ipa_polymorphic_call_context::stream_in): New method.
571         (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
572         * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
573         OUTER_TYPE.
574         (ipa_analyze_call_uses): Simplify.
575         (update_indirect_edges_after_inlining): Do not care about outer_type.
576         (ipa_write_indirect_edge_info): Update.
577         (ipa_write_indirect_edge_info): Likewise.
578         * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
579         (dump_edge_flags): Break out from ...
580         (cgraph_node::dump): ... here; dump indirect edges.
581
582 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
583
584         * ipa-utils.h (polymorphic_call_context): Add
585         metdhos dump, debug and clear_outer_type.
586         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
587         (ipa_polymorphic_call_context::clear_outer_type): New method.
588         * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
589         * ipa-devirt.c (types_odr_comparable): New function.
590         (types_must_be_same_for_odr): New function.
591         (odr_subtypes_equivalent_p): Simplify.
592         (possible_placement_new): Break out from ...
593         (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
594         be more cuatious about returning false in cases the context may be
595         valid in derived type or via placement new.
596         (contains_type_p): Clear maybe_derived_type
597         (ipa_polymorphic_call_context::dump): New method.
598         (ipa_polymorphic_call_context::debug): New method.
599         (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
600         (ipa_polymorphic_call_context::set_by_invariant): Simplify.
601         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
602         (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
603         to suceed on all valid cases; remove confused sanity check.
604         (dump_possible_polymorphic_call_targets): Simplify.
605
606 2014-09-24  Aldy Hernandez  <aldyh@redhat.com>
607
608         * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
609         lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
610         tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
611         varpool.c: Rename all instances of DECL_ABSTRACT to
612         DECL_ABSTRACT_P.
613
614 2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
615
616         * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
617         special handling for stores whose SET_SRC is an UNSPEC (such as
618         UNSPEC_STVE).
619
620 2014-09-24  Jiong Wang  <jiong.wang@arm.com>
621
622         * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
623         !REG_P (src) to release more instruction sink opportunities.
624
625 2014-09-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>
626
627         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
628         move costs for 128-bit types.
629
630 2014-09-24  Martin Jambor  <mjambor@suse.cz>
631
632         * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
633         when duplicating a PASS_THROUGH jump function when creating a
634         speculative edge.
635
636 2014-09-24  Marek Polacek  <polacek@redhat.com>
637
638         PR c/61405
639         PR c/53874
640         * asan.c (maybe_instrument_call): Add default case.
641         * ipa-pure-const.c (special_builtin_state): Likewise.
642         * predict.c (expr_expected_value_1): Likewise.
643         * lto-streamer-out.c (write_symbol): Initialize variable.
644
645 2014-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
646
647         * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
648         the lane.
649         (vmuld_laneq_f64): Likewise.
650         (vmuls_lane_f32): Likewise.
651         (vmuls_laneq_f32): Likewise.
652
653 2014-09-24  Kirill Yukhin  <kirill.yukhin@intel.com>
654
655         PR bootstrap/63235
656         * varpool.c (varpool_node::add): Pass decl attributes
657         to lookup_attribute.
658
659 2014-09-24  Jakub Jelinek  <jakub@redhat.com>
660
661         PR sanitizer/63316
662         * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
663
664 2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
665
666         PR tree-optimization/63266
667         * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
668         marker for unknown byte value.
669         (MARKER_MASK): New macro.
670         (MARKER_BYTE_UNKNOWN): New macro.
671         (HEAD_MARKER): New macro.
672         (do_shift_rotate): Mark bytes with unknown values due to sign
673         extension when doing an arithmetic right shift. Replace hardcoded
674         mask for marker by new MARKER_MASK macro.
675         (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
676         numbers accordingly.
677
678 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
679             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
680             Anna Tikhonova  <anna.tikhonova@intel.com>
681             Ilya Tocar  <ilya.tocar@intel.com>
682             Andrey Turetskiy  <andrey.turetskiy@intel.com>
683             Ilya Verbin  <ilya.verbin@intel.com>
684             Kirill Yukhin  <kirill.yukhin@intel.com>
685             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
686
687         * config/i386/sse.md
688         (define_insn
689         "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
690         Add masking.
691         (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
692         (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
693
694 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
695             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
696             Anna Tikhonova  <anna.tikhonova@intel.com>
697             Ilya Tocar  <ilya.tocar@intel.com>
698             Andrey Turetskiy  <andrey.turetskiy@intel.com>
699             Ilya Verbin  <ilya.verbin@intel.com>
700             Kirill Yukhin  <kirill.yukhin@intel.com>
701             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
702
703         * config/i386/sse.md
704         (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
705         (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
706         (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
707         (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
708         (define_expand "avx512vl_pshuflw_mask"): New.
709         (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
710         (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
711         (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
712         (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
713         (define_expand "avx512vl_pshufhw_mask"): New.
714         (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
715
716 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
717             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
718             Anna Tikhonova  <anna.tikhonova@intel.com>
719             Ilya Tocar  <ilya.tocar@intel.com>
720             Andrey Turetskiy  <andrey.turetskiy@intel.com>
721             Ilya Verbin  <ilya.verbin@intel.com>
722             Kirill Yukhin  <kirill.yukhin@intel.com>
723             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
724
725         * config/i386/i386.c
726         (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
727         CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
728         CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
729         CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
730         CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
731         * config/i386/sse.md
732         (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
733         (define_insn
734         "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
735         (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
736         (define_insn
737         "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
738         (define_expand "avx512vl_pshufdv3_mask"): Ditto.
739         (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
740         (define_expand "avx512vl_pshufd_mask"): New.
741         (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
742
743 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
744             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
745             Anna Tikhonova  <anna.tikhonova@intel.com>
746             Ilya Tocar  <ilya.tocar@intel.com>
747             Andrey Turetskiy  <andrey.turetskiy@intel.com>
748             Ilya Verbin  <ilya.verbin@intel.com>
749             Kirill Yukhin  <kirill.yukhin@intel.com>
750             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
751
752         * config/i386/i386.c
753         (CODE_FOR_avx2_extracti128): Rename to ...
754         (CODE_FOR_avx_vextractf128v4di): this.
755         (CODE_FOR_avx2_inserti128): Rename to ...
756         (CODE_FOR_avx_vinsertf128v4di): this.
757         (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
758         CODE_FOR_avx_vextractf128v4di.
759         (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
760         CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
761         CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
762         CODE_FOR_avx512vl_vinsertv8si.
763         * config/i386/sse.md
764         (define_expand
765         "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
766         AVX512_VEC mode iterator.
767         (define_insn
768         "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
769         Ditto.
770         (define_expand
771         "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
772         AVX512_VEC_2 mode iterator.
773         (define_insn "vec_set_lo_<mode><mask_name>"): New.
774         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
775         (define_expand "avx512vl_vinsert<mode>"): Ditto.
776         (define_insn "avx2_vec_set_lo_v4di"): Delete.
777         (define_insn "avx2_vec_set_hi_v4di"): Ditto.
778         (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
779         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
780         (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
781         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
782         (define_expand "avx2_extracti128"): Delete.
783         (define_expand "avx2_inserti128"): Ditto.
784
785 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
786             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
787             Anna Tikhonova  <anna.tikhonova@intel.com>
788             Ilya Tocar  <ilya.tocar@intel.com>
789             Andrey Turetskiy  <andrey.turetskiy@intel.com>
790             Ilya Verbin  <ilya.verbin@intel.com>
791             Kirill Yukhin  <kirill.yukhin@intel.com>
792             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
793
794         * config/i386/sse.md
795         (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
796         (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
797         (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
798         (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
799         (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
800         (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
801         (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
802         (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
803         (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
804         (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
805         (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
806         (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
807         (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
808
809 2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>
810
811         PR rtl-optimization/63210
812         * ira-color.c (assign_hard_reg): Ignore conflict cost if the
813         HARD_REGNO is not available for CONFLICT_A.
814
815 2014-09-23  Andi Kleen  <ak@linux.intel.com>
816
817         * cgraph.h (symtab_node): Add no_reorder attribute.
818         (symbol_table::output_asm_statements): Remove.
819         * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
820         (cgraph_node::create_version_clone): Dito.
821         (symbol_table::output_asm_statements): Remove.
822         * trans-mem.c (ipa_tm_create_version_alias): Dito.
823         * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
824         (output_in_order): Add no_reorder flag. Only handle no_reorder
825         nodes when set.
826         (symbol_table::compile): Add separate pass for no_reorder nodes.
827         (process_common_attributes): Set no_reorder flag in symtab node.
828         Add node argument.
829         (process_function_and_variable_attributes): Pass symtab nodes to
830         process_common_attributes.
831         * doc/extend.texi (no_reorder): Document no_reorder attribute.
832         * lto-cgraph.c (lto_output_node): Serialize no_reorder.
833         (lto_output_varpool_node): Dito.
834         (input_overwrite_node): Dito.
835         (input_varpool_node): Dito.
836         * varpool.c (varpool_node::add): Set no_reorder attribute.
837         (symbol_table::remove_unreferenced_decls): Handle no_reorder.
838         (symbol_table::output_variables): Dito.
839         * symtab.c (symtab_node::dump_base): Print no_reorder.
840
841 2014-09-23  Jiong Wang  <jiong.wang@arm.com>
842
843         * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
844         be INVALID_REGNUM.
845
846 2014-09-23  Thomas Schwinge  <thomas@codesourcery.com>
847
848         * configure: Regenerate.
849
850 2014-09-23  Alan Lawrence  <alan.lawrence@arm.com>
851
852         * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
853         when result_mode == shift_mode.
854
855 2014-09-23  Kostya Serebryany  <kcc@google.com>
856
857         Update to match the changed asan API.
858         * asan.c (asan_global_struct): Update the __asan_global definition
859         to match the new API.
860         (asan_add_global): Ditto.
861         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
862         to __asan_init_v4.
863
864 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
865
866         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
867         refine the constraints used on 32/64-bit floating point moves.
868         (f32_av): Likewise.
869         (f64_vsx): Likewise.
870         (f64_dm): Likewise.
871         (f64_av): Likewise.
872         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
873         (BOOL_REGS_OP1): Likewise.
874         (BOOL_REGS_OP2): Likewise.
875         (BOOL_REGS_UNARY): Likewise.
876         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
877         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
878         for moves involving VSX registers.  Do not use constraints that
879         target VSX registers for decimal types.
880         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
881         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
882
883 2014-09-23  Jan Hubicka  <hubicka@ucw.cz>
884
885         * tree.h (int_bit_position): Turn into inline function;
886         implement using wide int.
887         * tree.c (int_bit_position): Remove.
888
889 2014-09-23  Richard Sandiford  <richard.sandiford@arm.com>
890
891         PR bootstrap/63280
892         * target-globals.c (target_globals::~target_globals): Fix location
893         of ira_int destruction.
894
895 2014-09-23  Renlin Li  <renlin.li@arm.com>
896
897         * config/aarch64/aarch64.md (return): New.
898         (simple_return): Likewise.
899         * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
900         * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
901
902 2014-09-23  Wilco Dijkstra  <wdijkstr@arm.com>
903
904         * common/config/aarch64/aarch64-common.c:
905         (default_options aarch_option_optimization_table):
906         Default to -fsched-pressure.
907
908 2014-09-23  Ilya Enkovich  <ilya.enkovich@intel.com>
909
910         * cfgcleanup.c (try_optimize_cfg): Do not remove label
911         with LABEL_PRESERVE_P flag set.
912
913 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
914             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
915             Anna Tikhonova  <anna.tikhonova@intel.com>
916             Ilya Tocar  <ilya.tocar@intel.com>
917             Andrey Turetskiy  <andrey.turetskiy@intel.com>
918             Ilya Verbin  <ilya.verbin@intel.com>
919             Kirill Yukhin  <kirill.yukhin@intel.com>
920             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
921
922         * config/i386/sse.md
923         (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
924         (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
925         (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
926         (define_insn "sse2_shufpd_v2df_mask"): New.
927
928 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
929             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
930             Anna Tikhonova  <anna.tikhonova@intel.com>
931             Ilya Tocar  <ilya.tocar@intel.com>
932             Andrey Turetskiy  <andrey.turetskiy@intel.com>
933             Ilya Verbin  <ilya.verbin@intel.com>
934             Kirill Yukhin  <kirill.yukhin@intel.com>
935             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
936
937         * config/i386/sse.md
938         (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
939         (define_insn "avx_shufps256_1<mask_name>"): Ditto.
940         (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
941         (define_insn "sse_shufps_v4sf_mask"): New.
942
943 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
944             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
945             Anna Tikhonova  <anna.tikhonova@intel.com>
946             Ilya Tocar  <ilya.tocar@intel.com>
947             Andrey Turetskiy  <andrey.turetskiy@intel.com>
948             Ilya Verbin  <ilya.verbin@intel.com>
949             Kirill Yukhin  <kirill.yukhin@intel.com>
950             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
951
952         * config/i386/sse.md
953         (define_insn "avx_unpckhps256<mask_name>"): Add masking.
954         (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
955         (define_insn "avx_unpcklps256<mask_name>"): Ditto.
956         (define_insn "unpcklps128_mask"): New.
957
958 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
959             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
960             Anna Tikhonova  <anna.tikhonova@intel.com>
961             Ilya Tocar  <ilya.tocar@intel.com>
962             Andrey Turetskiy  <andrey.turetskiy@intel.com>
963             Ilya Verbin  <ilya.verbin@intel.com>
964             Kirill Yukhin  <kirill.yukhin@intel.com>
965             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
966
967         * config/i386/sse.md
968         (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
969         (define_insn "avx512vl_unpckhpd128_mask"): New.
970         (define_expand "avx_movddup256<mask_name>"): Add masking.
971         (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
972         (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
973         (define_insn "avx512vl_unpcklpd128_mask"): New.
974
975 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
976
977         * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
978         * doc/tm.texi: Regenerate.
979         * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
980         * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
981         * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
982         Remove.
983         * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
984         * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
985         * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
986         * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
987         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
988         Remove.
989         * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
990         * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
991         * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
992         * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
993         * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
994         * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
995         * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
996         * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
997         * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
998         * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
999         * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
1000         Remove.
1001
1002 2014-09-22  Jan Hubicka  <hubicka@ucw.cz>
1003
1004         * tree-ssa-ccp.c (prop_value_d): Rename to ...
1005         (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
1006         * ipa-prop.c (struct type_change_info): Rename to ...
1007         (prop_type_change_info): ... this; update uses.
1008         * ggc-page.c (globals): Rename to ...
1009         (static struct ggc_globals): ... this; update uses.
1010         * tree-ssa-loop-im.c (mem_ref): Rename to ...
1011         (im_mem_ref): ... this; update uses.
1012         * ggc-common.c (loc_descriptor): Rename to ...
1013         (ggc_loc_descriptor): ... this; update uses.
1014         * lra-eliminations.c (elim_table): Rename to ...
1015         (lra_elim_table): ... this; update uses.
1016         * bitmap.c (output_info): Rename to ...
1017         (bitmap_output_info): ... this; update uses.
1018         * gcse.c (expr): Rename to ...
1019         (gcse_expr) ... this; update uses.
1020         (occr): Rename to ...
1021         (gcse_occr): .. this; update uses.
1022         * tree-ssa-copy.c (prop_value_d): Rename to ...
1023         (prop_value_t): ... this.
1024         * predict.c (block_info_def): Rename to ...
1025         (block_info): ... this; update uses.
1026         (edge_info_def): Rename to ...
1027         (edge_info): ... this; update uses.
1028         * profile.c (bb_info): Rename to ...
1029         (bb_profile_info): ... this; update uses.
1030         * alloc-pool.c (output_info): Rename to ...
1031         (pool_output_info): ... this; update uses.
1032         * ipa-cp.c (topo_info): Rename to ..
1033         (ipa_topo_info): ... this; update uses.
1034         * tree-nrv.c (nrv_data): Rename to ...
1035         (nrv_data_t): ... this; update uses.
1036         * ipa-split.c (bb_info): Rename to ...
1037         (split_bb_info): ... this one.
1038         * profile.h (edge_info): Rename to ...
1039         (edge_profile_info): ... this one; update uses.
1040         * dse.c (bb_info): Rename to ...
1041         (dse_bb_info): ... this one; update uses.
1042         * cprop.c (occr): Rename to ...
1043         (cprop_occr): ... this one; update uses.
1044         (expr): Rename to ...
1045         (cprop_expr): ... this one; update uses.
1046
1047 2014-09-22  Jason Merrill  <jason@redhat.com>
1048
1049         * Makefile.in (check-parallel-%): Add @.
1050
1051 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
1052
1053         * config/aarch64/geniterators.sh: New.
1054         * config/aarch64/iterators.md (VDQF_DF): New.
1055         * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
1056         * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
1057
1058 2014-09-22  Peter A. Bigot  <pab@pabigot.com>
1059
1060         * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
1061         -lnosys when -msim absent.
1062
1063 2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
1064
1065         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
1066
1067 2014-09-22  Richard Biener  <rguenther@suse.de>
1068
1069         * gimplify.c (gimplify_init_constructor): Do not leave
1070         non-GIMPLE vector constructors around.
1071         * tree-cfg.c (verify_gimple_assign_single): Verify that
1072         CONSTRUCTORs have gimple elements.
1073
1074 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
1075
1076         PR debug/63328
1077         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
1078         insert a debug source bind stmt setting DEBUG_EXPR_DECL
1079         instead of a normal gimple assignment stmt.
1080
1081 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
1082
1083         * config/bfin/bfin.md: Fix use of constraints in define_split.
1084
1085 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
1086
1087         * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
1088         GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
1089
1090 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
1091
1092         * hard-reg-set.h: Include hash-table.h.
1093         (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
1094         field.
1095         * target-globals.c (target_globals::~target_globals): Call
1096         hard_regs->finalize.
1097         * rtl.h (subreg_shape): New structure.
1098         (shape_of_subreg): New function.
1099         (simplifiable_subregs): Declare.
1100         * reginfo.c (simplifiable_subreg): New structure.
1101         (simplifiable_subregs_hasher): Likewise.
1102         (simplifiable_subregs): New function.
1103         (invalid_mode_changes): Delete.
1104         (alid_mode_changes, valid_mode_changes_obstack): New variables.
1105         (record_subregs_of_mode): Remove subregs_of_mode parameter.
1106         Record valid mode changes in valid_mode_changes.
1107         (find_subregs_of_mode): Remove subregs_of_mode parameter.
1108         Update calls to record_subregs_of_mode.
1109         (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
1110         handling.  Initialize new variables.  Update call to
1111         find_subregs_of_mode.
1112         (invalid_mode_change_p): Check new variables instead of
1113         invalid_mode_changes.
1114         (finish_subregs_of_mode): Finalize new variables instead of
1115         invalid_mode_changes.
1116         (target_hard_regs::finalize): New function.
1117         * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
1118         even when CLASS_CANNOT_CHANGE_MODE is undefined.
1119
1120 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
1121
1122         * combine.c (subst): Use simplify_subreg_regno rather than
1123         REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
1124
1125 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
1126
1127         * rtl.h (subreg_info): Expand commentary
1128         * rtlanal.c (subreg_get_info): Likewise.
1129
1130 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
1131
1132         * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
1133         (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
1134         (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
1135
1136 2014-09-22  Zhenqiang Chen  <zhenqiang.chen@arm.com>
1137
1138         * config/arm/arm.c: #include "tm-constrs.h"
1139         (thumb1_size_rtx_costs): Adjust rtx costs.
1140
1141 2014-09-22  Hans-Peter Nilsson  <hp@axis.com>
1142
1143         * configure.ac (target_header_dir): Move block defining
1144         this to before the block setting inhibit_libc.
1145         (inhibit_libc): When considering $with_headers, just
1146         check it it's explicitly "no".  If not, also check if
1147         $target_header_dir/stdio.h is present.  If not, set
1148         inhibit_libc=true.
1149         * configure: Regenerate.
1150
1151 2014-09-21  Patrick Oppenlander  <pattyo.lists@gmail.com>
1152
1153         * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
1154         
1155 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
1156
1157         * config/rs6000/rs6000.md (div<mode>3): Fix comment.  Use a different
1158         insn for divides by integer powers of two.
1159         (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
1160         (mod<mode>3): Fix formatting.
1161         (three anonymous define_insn and two define_split): Delete.
1162
1163 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
1164
1165         * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
1166         *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
1167         (floatdisf2_internal2): Ditto.
1168         (ashrdi3_no_power): Ditto.  Fix formatting.
1169
1170 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
1171
1172         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
1173         popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
1174         Tidy.
1175
1176 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
1177
1178         * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
1179         constant, use addsi3 directly.
1180         (three anonymous define_insn, two define_split): Delete.
1181         (sub<mode>3): Move.  Do not allow constant second operand.
1182         Generate different insn for constant first operand.
1183         (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
1184         (subf<mode>3_imm): New.
1185         (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
1186         (*plus_ltu<mode>): Only handle registers.
1187         (*plus_ltu<mode>_1): New.  Handle integer third operand.
1188         (*plus_gtu<mode>): Only handle registers.
1189         (*plus_gtu<mode>_1): New.  Handle integer third operand.
1190
1191 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
1192
1193         * config/rs6000/rs6000.md (iorxor): New code_iterator.
1194         (iorxor): New code_attr.
1195         (IORXOR): New code_attr.
1196         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
1197         (ior<mode>3, xor<mode>3): Delete.
1198         (<iorxor><mode>3): New.
1199         (splitter for "big" integer ior, xor): New.
1200         (*bool<mode>3): Move.  Also handle AND.
1201         (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
1202         (splitter for "big" integer ior, xor): Delete.
1203
1204 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
1205
1206         * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
1207         (two anonymous define_insn and two define_split): Delete.
1208         (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
1209
1210 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
1211
1212         * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
1213         (two anonymous define_insn and two define_split): Delete.
1214         (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
1215
1216 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
1217
1218         * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
1219
1220 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
1221
1222         * config/rs6000/predicates.md (ca_operand): Allow subregs.
1223         (input_operand): Do not allow ca_operand.
1224         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
1225         carry bit, allow SImode and Pmode.
1226         (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
1227
1228 2014-09-21  Uros Bizjak  <ubizjak@gmail.com>
1229
1230         * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
1231         clobbered registers using clobber_reg.  Remove UNSPEC decoration.
1232         * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
1233         (*call_rex64_ms_sysv): Remove.
1234         (*call_value_rex64_ms_sysv): Ditto.
1235         * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
1236
1237 2014-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>
1238
1239         * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
1240         operand 3 to "CnL".
1241
1242 2014-09-20  Andreas Schwab  <schwab@suse.de>
1243
1244         * config/ia64/ia64.md: Remove constraints from define_split
1245         patterns.
1246
1247 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
1248
1249         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
1250         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
1251         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
1252         (get_dynamic_type): Remove.
1253         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
1254         (clear_speculation): Bring to ipa-deivrt.h
1255         (get_class_context): Rename to ...
1256         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
1257         (contains_type_p): Update.
1258         (get_dynamic_type): Rename to ...
1259         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
1260         (possible_polymorphic_call_targets): UPdate.
1261         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
1262         * ipa-prop.c (ipa_analyze_call_uses): Update.
1263
1264 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
1265
1266         * ipa-visibility.c (varpool_node::externally_visible_p): Do not
1267         privatize dynamic TLS variables.
1268
1269 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
1270
1271         * diagnostic.c (warning_n): New function.
1272         * diagnostic-core.h (warning_n): Declare.
1273         * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
1274         output dynamic counts when available.
1275
1276 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
1277
1278         PR tree-optimization/63255
1279         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
1280         issue in setting body_removed flag.
1281
1282 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
1283
1284         PR c++/61825
1285         * c-family/c-common.c (handle_alias_ifunc_attribute): Check
1286         that visibility change is possible
1287         (handle_weakref_attribute): Likewise.
1288         * cgraph.h (symtab_node): Add method get_create and
1289         field refuse_visibility_changes.
1290         (symtab_node::get_create): New method.
1291         * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
1292         * varasm.c (mark_weak): Verify that visibility change is
1293         possible.
1294
1295 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
1296
1297         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
1298         for base_reg_operand to be common between LO_SUM and PLUS.
1299         (fusion_gpr_mem_combo): New predicate to match a fused address
1300         that combines the addis and memory offset address.
1301
1302         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
1303         calling signature.
1304         (emit_fusion_gpr_load): Likewise.
1305
1306         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
1307         signature to pass each argument separately, rather than
1308         using an operands array.  Rewrite the insns found by peephole2 to
1309         be a single insn, rather than hoping the insns will still be
1310         together when the peephole pass is done.  Drop being called via a
1311         normal peephole.
1312         (emit_fusion_gpr_load): Change calling signature to be called from
1313         the fusion_gpr_load_<mode> insns with a combined memory address
1314         instead of the peephole pass passing the addis and offset
1315         separately.
1316
1317         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
1318         fusion.
1319         (power8 fusion peephole): Drop support for doing power8 via a
1320         normal peephole that was created by the peephole2 pass.
1321         (power8 fusion peephole2): Create a new insn with the fused
1322         address, so that the fused operation is kept together after
1323         register allocation is done.
1324         (fusion_gpr_load_<mode>): Likewise.
1325
1326 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
1327
1328         PR lto/63286
1329         * tree.c (need_assembler_name_p): Do not mangle variadic types.
1330
1331 2014-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
1332
1333         * recog.c (scratch_operand): Do not simply allow all hard registers:
1334         only allow those that are allocatable.
1335
1336 2014-09-19  Felix Yang  <felix.yang@huawei.com>
1337
1338         * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
1339         comments and fix spacing to conform to coding style.
1340
1341 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
1342
1343         * genrecog.c (validate_pattern): Allow empty constraints in
1344         a match_scratch.
1345
1346 2014-09-19  Aldy Hernandez  <aldyh@redhat.com>
1347
1348         * dwarf2out.c (decl_ultimate_origin): Update comment.
1349         * tree.c (block_ultimate_origin): Same.
1350
1351 2014-09-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1352
1353         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
1354         Update GCC version name to GCC 5.
1355         (rs6000_function_arg_boundary): Likewise.
1356         (rs6000_function_arg): Likewise.
1357
1358 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
1359
1360         * config/sh/sh.md: Fix use of constraints in define_split.
1361
1362 2014-09-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
1363
1364         PR ipa/61998
1365         * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
1366
1367 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
1368
1369         * doc/md.texi (Modifiers): Consistently use "read/write"
1370         nomenclature rather than "input/output".
1371         * genrecog.c (constraints_supported_in_insn_p): New.
1372         (validate_pattern): If needed, also check constraints on
1373         MATCH_SCRATCH operands.
1374         * genoutput.c (validate_insn_alternatives): Catch earlyclobber
1375         operands with no '=' or '+' modifier.
1376
1377 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
1378
1379         * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
1380         scratch register as written.
1381
1382 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1383
1384         * config/s390/s390.c (s390_emit_epilogue): Remove bogus
1385         assignment.
1386
1387 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1388
1389         * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
1390         expanders.
1391
1392 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1393
1394         PR target/62662
1395         * config/s390/s390.c (s390_emit_epilogue): When doing the return
1396         address load optimization force s390_optimize_prologue to leave it
1397         that way.  Only do the optimization if we already decided to push
1398         r14 into a stack slot.
1399
1400 2014-09-19  Marat Zakirov  <m.zakirov@samsung.com>
1401
1402         * asan.c (build_check_stmt): Alignment arg was added.
1403         (asan_expand_check_ifn): Optimization for alignment >= 8.
1404
1405 2014-09-19  Olivier Hainque  <hainque@adacore.com>
1406
1407         * config/i386/vxworksae.h: Remove obsolete definitions.
1408         (STACK_CHECK_PROTECT): Define.
1409         * config/i386/vx-common.h: Remove.  Merge contents within
1410         config/i386/vxworks.h.
1411         * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
1412         i386/vx-common.h.
1413
1414 2014-09-19  Olivier Hainque  <hainque@adacore.com>
1415
1416         * config.gcc (powerpc-wrs-vxworksmils): New configuration.
1417         * config/rs6000/t-vxworksmils: New file.
1418         * config/rs6000/vxworksmils.h: New file.
1419
1420 2014-09-19  Olivier Hainque  <hainque@adacore.com>
1421
1422         * varasm.c (default_section_type_flags): Flag .persistent.bss
1423         sections as SECTION_BSS.
1424
1425 2014-09-19  Nick Clifton  <nickc@redhat.com>
1426
1427         * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
1428         pop'ed registers so that DCE does not eliminate them.
1429
1430 2014-09-18  Jan Hubicka  <hubicka@ucw.cz>
1431
1432         PR lto/63298
1433         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
1434
1435 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
1436
1437         * system.h (LIBGCC2_TF_CEXT): Poison.
1438         * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
1439         * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
1440         * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
1441         * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
1442         * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
1443         * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
1444         * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
1445         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
1446         * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
1447
1448 2014-09-19  Kito Cheng  <kito@0xlab.org>
1449
1450         * except.h: Fix header guard.
1451         * addresses.h: Add missing header guard.
1452         * cfghooks.h: Likewise.
1453         * collect-utils.h: Likewise.
1454         * collect2-aix.h: Likewise.
1455         * conditions.h: Likewise.
1456         * cselib.h: Likewise.
1457         * dwarf2asm.h: Likewise.
1458         * graphds.h: Likewise.
1459         * graphite-scop-detection.h: Likewise.
1460         * gsyms.h: Likewise.
1461         * hw-doloop.h: Likewise.
1462         * incpath.h: Likewise.
1463         * ipa-inline.h: Likewise.
1464         * ipa-ref.h: Likewise.
1465         * ira-int.h: Likewise.
1466         * ira.h: Likewise.
1467         * lra-int.h: Likewise.
1468         * lra.h: Likewise.
1469         * lto-section-names.h: Likewise.
1470         * read-md.h: Likewise.
1471         * reload.h: Likewise.
1472         * rtl-error.h: Likewise.
1473         * sdbout.h: Likewise.
1474         * targhooks.h: Likewise.
1475         * tree-affine.h: Likewise.
1476         * xcoff.h: Likewise.
1477         * xcoffout.h: Likewise.
1478
1479 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
1480
1481         PR debug/63285
1482         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
1483         if advance != 0.
1484
1485 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
1486
1487         PR target/61360
1488         * lra.c (lra): Call recog_init.
1489
1490 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
1491
1492         PR c++/62017
1493         * asan.c (transform_statements): Don't instrument clobber statements.
1494
1495 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1496
1497         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
1498         to neon_load1_1reg<q>.
1499
1500 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
1501
1502         PR debug/63284
1503         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
1504         if there are only debug stmts after the noreturn call, instead
1505         remove the debug stmts.
1506
1507 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
1508
1509         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
1510         (odr_types_equivalent_p): Use pair hash.
1511         (odr_subtypes_equivalent_p): Likewise, do structural compare
1512         on ODR types that may be mismatched.
1513         (warn_odr): Support warning when only one field is given.
1514         (odr_types_equivalent_p): Strenghten comparsions made;
1515         support VOIDtype.
1516         (add_type_duplicate): Update VISITED hash set.
1517
1518 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1519
1520         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
1521         Enable selection of 'posix' or no thread model.
1522
1523 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
1524
1525         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
1526         when architecture is older than ARMv7.
1527
1528 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
1529
1530         PR target/61853
1531         * config/pa/pa.c (pa_function_value): Directly handle aggregates
1532         that fit exactly in a word or double word.
1533
1534 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
1535
1536         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
1537         zmm/k regs support.
1538
1539 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1540             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1541             Anna Tikhonova  <anna.tikhonova@intel.com>
1542             Ilya Tocar  <ilya.tocar@intel.com>
1543             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1544             Ilya Verbin  <ilya.verbin@intel.com>
1545             Kirill Yukhin  <kirill.yukhin@intel.com>
1546             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1547
1548         * config/i386/i386.c
1549         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
1550         * config/i386/sse.md
1551         (define_mode_iterator VI48F_256): New.
1552         (define_mode_attr extract_type): Ditto.
1553         (define_mode_attr extract_suf): Ditto.
1554         (define_mode_iterator AVX512_VEC): Ditto.
1555         (define_expand
1556         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
1557         AVX512_VEC.
1558         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
1559         (define_insn
1560         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
1561         Ditto.
1562         (define_mode_attr extract_type_2): Ditto.
1563         (define_mode_attr extract_suf_2): Ditto.
1564         (define_mode_iterator AVX512_VEC_2): Ditto.
1565         (define_expand
1566         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
1567         AVX512_VEC_2 mode iterator.
1568         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
1569         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
1570         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
1571         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
1572         (define_split for V16FI mode): Ditto.
1573         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
1574         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
1575         (define_split for VI8F_256 mode): Ditto.
1576         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
1577         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
1578         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
1579         (define_split for VI4F_256 mode): Ditto.
1580         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
1581         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
1582         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
1583         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
1584         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
1585         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
1586         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
1587         Update `type' attribute, remove explicit `memory' attribute calculation.
1588
1589 2014-09-16  Kito Cheng  <kito@0xlab.org>
1590
1591         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
1592         ira_spilled_reg_stack_slots_num if using lra.
1593         (do_reload): Remove release ira_spilled_reg_stack_slots part.
1594         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
1595         make sure not using lra.
1596         (ira_reuse_stack_slot): Likewise.
1597         (ira_mark_new_stack_slot): Likewise.
1598
1599 2014-09-15  Andi Kleen  <ak@linux.intel.com>
1600
1601         * function.c (allocate_struct_function): Force
1602         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
1603         profiling is disabled.
1604
1605 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
1606     
1607         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
1608         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
1609         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
1610         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
1611         macro with statically checked member functions.
1612         * rtl.h (rtx_insn::deleted): New method.
1613         (rtx_insn::set_deleted): Likewise.
1614         (rtx_insn::set_undeleted): Likewise.
1615         (INSN_DELETED_P): Remove.
1616
1617 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
1618
1619         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
1620         result of emit_jump_insn_before to a new variable.
1621         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
1622         (mark_jump_label_1): Likewise.
1623         (mark_jump_label_asm): Likewise.
1624         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
1625         * rtl.h (mark_jump_label): Adjust.
1626
1627 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
1628
1629         * Makefile.in (dg_target_exps): Remove.
1630         (check_gcc_parallelize): Change to just an upper bound number.
1631         (check-%-subtargets): Always print the non-parallelized goals.
1632         (check_p_vars, check_p_comma, check_p_subwork): Remove.
1633         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
1634         check_p_numbers3, check_p_numbers4, check_p_numbers5,
1635         check_p_numbers6): New variables.
1636         (check_p_numbers): Set to sequence from 1 to 9999.
1637         (check_p_subdirs): Set to sequence from 1 to minimum of
1638         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
1639         or 128.
1640         (check-%, check-parallel-%): Rewritten so that for parallelized
1641         testing each job runs all the *.exp files, with
1642         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
1643
1644 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
1645
1646         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
1647         rtx to rtx_insn *.
1648         (arc_sets_cc_p): Likewise.
1649         * config/arc/arc.c (arc_print_operand): Use methods of
1650         "final_sequence" for clarity, and to enable strengthening of
1651         locals "jump" and "delay" from rtx to rtx_insn *.
1652         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
1653         rtx_insn *; use method of rtx_sequence for typesafety.
1654         (arc_get_insn_variants): Use insn method of rtx_sequence for
1655         typesafety.
1656         (arc_pad_return): Likewise.
1657         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
1658         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
1659         dyn_cast to rtx_sequence *, using insn method for typesafety.
1660         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
1661         rtx_sequence * and use insn method when invoking get_attr_length.
1662         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
1663         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
1664         rtx_sequence *, introducing a local "seq", using its insn method
1665         from typesafety and clarity.
1666         (add_sched_insns_for_speculation): Strengthen local "next" from
1667         rtx to rtx_insn *.
1668         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
1669         (predicate_insn): Likewise.
1670         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
1671         second param.
1672         * config/cris/cris.c (cris_notice_update_cc): Likewise.
1673         * config/epiphany/epiphany-protos.h
1674         (extern void epiphany_insert_mode_switch_use): Likewise for param
1675         "insn".
1676         (get_attr_sched_use_fpu): Likewise for param.
1677         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
1678         Likewise for param "insn".
1679         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
1680         param "insn" of "target_insert_mode_switch_use" callback.
1681         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
1682         (frv_issues_to_branch_unit_p): Likewise.
1683         (frv_pack_insn_p): Likewise.
1684         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
1685         const rtx * (i.e. mutable rtx_def * const *) to
1686         rtx_insn * const *.
1687         * config/i386/i386-protos.h (standard_sse_constant_opcode):
1688         Strengthen first param from rtx to rtx_insn *.
1689         (output_fix_trunc): Likewise.
1690         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
1691         (output_fix_trunc): Likewise.
1692         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
1693         local "insn".
1694         (min_insn_size): Likewise for param "insn".
1695         (get_mem_group): Likewise.
1696         (is_cmp): Likewise.
1697         (get_insn_path): Likewise.
1698         (get_insn_group): Likewise.
1699         (count_num_restricted): Likewise.
1700         (fits_dispatch_window): Likewise.
1701         (add_insn_window): Likewise.
1702         (add_to_dispatch_window): Likewise.
1703         (debug_insn_dispatch_info_file): Likewise.
1704         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
1705         first param.
1706         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
1707         "cmp" and local "prev".
1708         (m32c_output_compare): Likewise for param "insn".
1709         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
1710         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
1711         (define_predicate "large_insn_p"): Likewise.
1712         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
1713         param from rtx to rtx_insn *.
1714         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
1715         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
1716         (m68k_sched_attr_size): Likewise.
1717         (sched_get_opxy_mem_type): Likewise for param "insn".
1718         (m68k_sched_attr_op_mem): Likewise.
1719         (sched_mem_operand_p): Likewise.
1720         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
1721         * config/mep/mep.c (mep_multi_slot): Likewise.
1722         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
1723         first param.
1724         (mips_sync_loop_insns): Likewise.
1725         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
1726         method of "final_sequence" for typesafety.
1727         (mips_process_sync_loop): Strengthen param "insn" from rtx to
1728         rtx_insn *.
1729         (mips_output_sync_loop): Likewise.
1730         (mips_sync_loop_insns): Likewise.
1731         (mips_74k_agen_init): Likewise.
1732         (mips_sched_init): Use NULL rather than NULL_RTX when working with
1733         insns.
1734         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
1735         Strengthen param "insn" from rtx to rtx_insn *.
1736         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
1737         local "insn".
1738         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
1739         param.
1740         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
1741         "insn".  Use method of rtx_sequence for typesafety.
1742         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
1743         rtx_insn *.
1744         (branch_needs_nop_p): Likewise.
1745         (use_skip_p): Likewise.
1746         (pa_insn_refs_are_delayed): Likewise.
1747         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
1748         for locals "insn", "ninsn".
1749         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
1750         "insn".
1751         (is_cracked_insn): Likewise.
1752         (is_branch_slot_insn): Likewise.
1753         (is_nonpipeline_insn): Likewise.
1754         (insn_terminates_group_p): Likewise.
1755         (insn_must_be_first_in_group): Likewise.
1756         (insn_must_be_last_in_group): Likewise.
1757         (force_new_group): Likewise for param "next_insn".
1758         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
1759         "insn".
1760         (s390_sched_score): Likewise.
1761         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
1762         (rtx sfunc_uses_reg): Likewise for sole param.
1763         * config/sh/sh.c (sh_print_operand): Use insn method of
1764         final_sequence for typesafety.
1765         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
1766         Use insn method of final_sequence for typesafety.
1767         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
1768         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
1769         for param.
1770         (eligible_for_return_delay): Likewise.
1771         (eligible_for_sibcall_delay): Likewise.
1772         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
1773         (eligible_for_return_delay): Likewise.
1774         (eligible_for_sibcall_delay): Likewise.
1775         * config/stormy16/stormy16-protos.h
1776         (xstormy16_output_cbranch_hi): Likewise for final param.
1777         (xstormy16_output_cbranch_si): Likewise.
1778         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
1779         (xstormy16_output_cbranch_si): Likewise.
1780         * config/v850/v850-protos.h (notice_update_cc): Likewise.
1781         * config/v850/v850.c (notice_update_cc): Likewise.
1782
1783         * final.c (get_attr_length_1): Strengthen param "insn" and param
1784         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
1785         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
1786         (get_attr_min_length): Likewise.
1787         (shorten_branches): Likewise for signature of locals "length_fun"
1788         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
1789         from a checked cast and use its methods for clarity and to enable
1790         strengthening local "inner_insn" from rtx to rtx_insn *.
1791         * genattr.c (gen_attr): When writing out the prototypes of the
1792         various generated "get_attr_" functions, strengthen the params of
1793         the non-const functions from rtx to rtx_insn *.
1794         Similarly, strengthen the params of insn_default_length,
1795         insn_min_length, insn_variable_length_p, insn_current_length.
1796         (main): Similarly, strengthen the param of num_delay_slots,
1797         internal_dfa_insn_code, insn_default_latency, bypass_p,
1798         insn_latency, min_issue_delay, print_reservation,
1799         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
1800         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
1801         to hook_int_rtx_insn_unreachable.
1802         * genattrtab.c (write_attr_get): When writing out the generated
1803         "get_attr_" functions, strengthen the param "insn" from rtx to
1804         rtx_insn *, eliminating a checked cast.
1805         (make_automaton_attrs): When writing out prototypes of
1806         "internal_dfa_insn_code_", "insn_default_latency_" functions
1807         and the "internal_dfa_insn_code" and "insn_default_latency"
1808         callbacks, strengthen their params from rtx to rtx_insn *
1809         * genautomata.c (output_internal_insn_code_evaluation): When
1810         writing out code, add a checked cast from rtx to rtx_insn * when
1811         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
1812         (output_dfa_insn_code_func): Strengthen param of generated
1813         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
1814         (output_trans_func): Likewise for generated function
1815         "state_transition".
1816         (output_internal_insn_latency_func): When writing out generated
1817         function "internal_insn_latency", rename params from "insn" and
1818         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
1819         locals "insn" and "insn2" as rtx_insn * with checked casts once
1820         we've proven that we're not dealing with const0_rtx.
1821         (output_insn_latency_func):  Strengthen param of generated
1822         function "insn_latency" from rtx to rtx_insn *.
1823         (output_print_reservation_func): Likewise for generated function
1824         "print_reservation".
1825         (output_insn_has_dfa_reservation_p): Likewise for generated
1826         function "insn_has_dfa_reservation_p".
1827         * hooks.c (hook_int_rtx_unreachable): Rename to...
1828         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
1829         from rtx to rtx_insn *.
1830         * hooks.h (hook_int_rtx_unreachable): Likewise.
1831         (extern int hook_int_rtx_insn_unreachable): Likewise.
1832         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
1833         (get_attr_min_length): Likewise.
1834         * recog.c (get_enabled_alternatives): Likewise.
1835         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
1836         * reorg.c (find_end_label): Introduce local rtx "pat" and
1837         strengthen local "insn" from rtx to rtx_insn *.
1838         (redundant_insn): Use insn method of "seq" rather than element for
1839         typesafety; strengthen local "control" from rtx to rtx_insn *.
1840         * resource.c (mark_referenced_resources): Add checked cast to
1841         rtx_insn * within INSN/JUMP_INSN case.
1842         (mark_set_resources): Likewise.
1843         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
1844         rtx to rtx_insn *.
1845
1846 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
1847
1848         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
1849         param "label" from rtx to rtx_insn *.
1850         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
1851         and local "op".
1852         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
1853         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
1854         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
1855         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
1856         * final.c (default_label_align_after_barrier_max_skip): Strengthen
1857         param from rtx to rtx_insn *.
1858         (default_loop_align_max_skip): Likewise.
1859         (default_label_align_max_skip): Likewise.
1860         (default_jump_align_max_skip): Likewise.
1861         * target.def (label_align_after_barrier_max_skip): Likewise.
1862         (loop_align_max_skip): Likewise.
1863         (label_align_max_skip): Likewise.
1864         (jump_align_max_skip): Likewise.
1865         * targhooks.h (default_label_align_after_barrier_max_skip):
1866         Likewise.
1867         (default_loop_align_max_skip): Likewise.
1868         (default_label_align_max_skip): Likewise.
1869         (default_jump_align_max_skip): Likewise.
1870
1871 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
1872
1873         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
1874         from const_rtx to const rtx_insn *.  Update union members from rtx
1875         to rtx_insn *.
1876         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
1877         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
1878         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
1879         strengthen both params from const_rtx to const rtx_insn *.
1880         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
1881         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
1882         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
1883         rtx_insn *.
1884         * target.def (can_follow_jump): Strengthen both params from
1885         const_rtx to const rtx_insn *, and update default implementation
1886         from hook_bool_const_rtx_const_rtx_true to
1887         hook_bool_const_rtx_insn_const_rtx_insn_true.
1888
1889 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
1890
1891         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
1892         "insn" from rtx to rtx_insn *.
1893         * sched-int.h (deps_start_bb): Likewise for 2nd param.
1894
1895 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1896             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1897             Anna Tikhonova  <anna.tikhonova@intel.com>
1898             Ilya Tocar  <ilya.tocar@intel.com>
1899             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1900             Ilya Verbin  <ilya.verbin@intel.com>
1901             Kirill Yukhin  <kirill.yukhin@intel.com>
1902             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1903
1904         * config/i386/sse.md
1905         (define_insn "vcvtph2ps<mask_name>"): Add masking.
1906         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
1907         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
1908         (define_expand "vcvtps2ph_mask"): New.
1909         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
1910         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
1911         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
1912
1913 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1914             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1915             Anna Tikhonova  <anna.tikhonova@intel.com>
1916             Ilya Tocar  <ilya.tocar@intel.com>
1917             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1918             Ilya Verbin  <ilya.verbin@intel.com>
1919             Kirill Yukhin  <kirill.yukhin@intel.com>
1920             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1921
1922         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
1923         New.
1924         (define_mode_iterator VI24_AVX512BW_1): Ditto.
1925         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
1926         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
1927         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
1928         also for TARGET_AVX512VL.
1929         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
1930
1931 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
1932
1933         * doc/install.texi (Options specification): add 
1934         --disable-libsanitizer item.
1935
1936 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
1937             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1938
1939         PR target/61407
1940         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
1941         and above.
1942         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
1943         kernel version check to avoid incrementing it after every major OS X
1944         release.
1945         (darwin_default_min_version): Avoid static memory buffer.
1946
1947 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
1948
1949         * tree.c (need_assembler_name_p): Store C++ type mangling only
1950         for aggregates.
1951
1952 2014-09-13  Marek Polacek  <polacek@redhat.com>
1953
1954         * tree.c (protected_set_expr_location): Don't check whether T is
1955         non-null here.
1956
1957 2014-09-12  DJ Delorie  <dj@redhat.com>
1958
1959         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
1960         (extend_and_shift1_hipsi2): Likewise.
1961         (extend_and_shift2_hipsi2): Likewise.
1962
1963 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
1964
1965         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
1966         with NULL when dealing with an insn.
1967         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
1968         from rtx to rtx_insn *.
1969         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
1970         const_rtx to const rtx_insn *.
1971         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
1972
1973 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
1974
1975         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
1976         assert.
1977
1978 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
1979
1980         * target.def (libgcc_floating_mode_supported_p): New hook.
1981         * targhooks.c (default_libgcc_floating_mode_supported_p): New
1982         function.
1983         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
1984         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
1985         (LIBGCC2_HAS_TF_MODE): Remove.
1986         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
1987         * doc/tm.texi: Regenerate.
1988         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
1989         machine mode.
1990         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
1991         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
1992         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
1993         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
1994         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
1995         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
1996         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
1997         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
1998         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
1999         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
2000         function.
2001         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
2002         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
2003         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
2004         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
2005         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
2006         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
2007         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
2008         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
2009         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
2010         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
2011         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
2012         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
2013         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
2014         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
2015         Remove.
2016         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
2017         New macro.
2018         (ia64_libgcc_floating_mode_supported_p): New function.
2019         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
2020         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
2021         (IA64_NO_LIBGCC_TFMODE): Define.
2022         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
2023         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
2024         macro.
2025         (pdp11_scalar_mode_supported_p): New function.
2026         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
2027         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
2028
2029 2014-09-12  Richard Biener  <rguenther@suse.de>
2030
2031         PR middle-end/63237
2032         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
2033
2034 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
2035
2036         * tree.c (integer_each_onep): New function.
2037         * tree.h (integer_each_onep): Declare it.
2038         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
2039         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
2040         (X & 1) == 0 for vector and complex.
2041
2042 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
2043
2044         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
2045         for A57.
2046         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
2047         cost to spilling from integer to FP registers.
2048
2049 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
2050
2051         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
2052         move handling.
2053         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
2054         are now handled correctly.
2055
2056 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
2057
2058         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
2059         handling of CALLER_SAVE_REGS and POINTER_REGS.
2060
2061 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
2062
2063         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
2064         the number of hard registers.
2065
2066 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2067             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2068             Anna Tikhonova  <anna.tikhonova@intel.com>
2069             Ilya Tocar  <ilya.tocar@intel.com>
2070             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2071             Ilya Verbin  <ilya.verbin@intel.com>
2072             Kirill Yukhin  <kirill.yukhin@intel.com>
2073             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2074
2075         * config/i386/sse.md
2076         (define_mode_iterator VI48_AVX512VL): New.
2077         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
2078         "avx512f_vternlog<mode>_maskz" and update mode iterator.
2079         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
2080         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
2081         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
2082         "avx512f_vternlog<mode>_mask" and update mode iterator.
2083         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
2084         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
2085         iterator.
2086         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
2087         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
2088         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
2089         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
2090         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
2091         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
2092
2093 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2094             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2095             Anna Tikhonova  <anna.tikhonova@intel.com>
2096             Ilya Tocar  <ilya.tocar@intel.com>
2097             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2098             Ilya Verbin  <ilya.verbin@intel.com>
2099             Kirill Yukhin  <kirill.yukhin@intel.com>
2100             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2101
2102         * config/i386/sse.md (VI128_256): Delete.
2103         (define_mode_iterator VI124_256): New.
2104         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
2105         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
2106         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
2107         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
2108         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
2109         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
2110         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
2111         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
2112         iterator.
2113         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
2114         in presence of AVX-512.
2115
2116 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2117             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2118             Anna Tikhonova  <anna.tikhonova@intel.com>
2119             Ilya Tocar  <ilya.tocar@intel.com>
2120             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2121             Ilya Verbin  <ilya.verbin@intel.com>
2122             Kirill Yukhin  <kirill.yukhin@intel.com>
2123             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2124
2125         * config/i386/sse.md
2126         (define_expand "<avx512>_gathersi<mode>"): Rename from
2127         "avx512f_gathersi<mode>".
2128         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
2129         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
2130         (define_expand "<avx512>_gatherdi<mode>"): Rename from
2131         "avx512f_gatherdi<mode>".
2132         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
2133         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
2134         wide versions.
2135         (define_expand "<avx512>_scattersi<mode>"): Rename from
2136         "avx512f_scattersi<mode>".
2137         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
2138         (define_expand "<avx512>_scatterdi<mode>"): Rename from
2139         "avx512f_scatterdi<mode>".
2140         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
2141
2142 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
2143
2144         * ira.h (ira_finish_once): Delete.
2145         * ira-int.h (target_ira_int::~target_ira_int): Declare.
2146         (target_ira_int::free_ira_costs): Likewise.
2147         (target_ira_int::free_register_move_costs): Likewise.
2148         (ira_finish_costs_once): Delete.
2149         * ira.c (free_register_move_costs): Replace with...
2150         (target_ira_int::free_register_move_costs): ...this new function.
2151         (target_ira_int::~target_ira_int): Define.
2152         (ira_init): Call free_register_move_costs as a member function rather
2153         than a global function.
2154         (ira_finish_once): Delete.
2155         * ira-costs.c (free_ira_costs): Replace with...
2156         (target_ira_int::free_ira_costs): ...this new function.
2157         (ira_init_costs): Call free_ira_costs as a member function rather
2158         than a global function.
2159         (ira_finish_costs_once): Delete.
2160         * target-globals.c (target_globals::~target_globals): Call the
2161         target_ira_int destructor.
2162         * toplev.c: Include lra.h.
2163         (finalize): Call lra_finish_once rather than ira_finish_once.
2164
2165 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
2166
2167         * common.opt (flto-odr-type-merging): New flag.
2168         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
2169         (types_same_for_odr): Likewise.
2170         (odr_subtypes_equivalent_p): Likewise.
2171         (add_type_duplicate): Do not walk type variants.
2172         (register_odr_type): New function.
2173         * ipa-utils.h (register_odr_type): Declare.
2174         (odr_type_p): New function.
2175         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
2176         TYPE_DECLs
2177         * doc/invoke.texi (-flto-odr-type-merging): Document.
2178         * tree.c (need_assembler_name_p): Compute ODR names when asked
2179         for it.
2180         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
2181
2182 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
2183
2184         PR target/63228
2185         * config/i386/i386.c (ix86_option_override_internal): Also turn
2186         off OPTION_MASK_ABI_X32 for -m16.
2187
2188 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
2189
2190         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
2191         GPR instead of P.
2192
2193 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
2194
2195         PR target/58757
2196         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
2197         Directly forward to __*_DENORM_MIN__.
2198
2199 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
2200
2201         * rtl.h (LABEL_REF_LABEL): New macro.
2202
2203         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
2204         of XEXP (, 0), where we know that we have a LABEL_REF.
2205         * cfgbuild.c (make_edges): Likewise.
2206         (purge_dead_tablejump_edges): Likewise.
2207         * cfgexpand.c (convert_debug_memory_address): Likewise.
2208         * cfgrtl.c (patch_jump_insn): Likewise.
2209         * combine.c (distribute_notes): Likewise.
2210         * cse.c (hash_rtx_cb): Likewise.
2211         (exp_equiv_p): Likewise.
2212         (fold_rtx): Likewise.
2213         (check_for_label_ref): Likewise.
2214         * cselib.c (rtx_equal_for_cselib_1): Likewise.
2215         (cselib_hash_rtx): Likewise.
2216         * emit-rtl.c (mark_label_nuses): Likewise.
2217         * explow.c (convert_memory_address_addr_space): Likewise.
2218         * final.c (output_asm_label): Likewise.
2219         (output_addr_const): Likewise.
2220         * gcse.c (add_label_notes): Likewise.
2221         * genconfig.c (walk_insn_part): Likewise.
2222         * genrecog.c (validate_pattern): Likewise.
2223         * ifcvt.c (cond_exec_get_condition): Likewise.
2224         (noce_emit_store_flag): Likewise.
2225         (noce_get_alt_condition): Likewise.
2226         (noce_get_condition): Likewise.
2227         * jump.c (maybe_propagate_label_ref): Likewise.
2228         (mark_jump_label_1): Likewise.
2229         (redirect_exp_1): Likewise.
2230         (rtx_renumbered_equal_p): Likewise.
2231         * lra-constraints.c (operands_match_p): Likewise.
2232         * reload.c (operands_match_p): Likewise.
2233         (find_reloads): Likewise.
2234         * reload1.c (set_label_offsets): Likewise.
2235         * reorg.c (get_branch_condition): Likewise.
2236         * rtl.c (rtx_equal_p_cb): Likewise.
2237         (rtx_equal_p): Likewise.
2238         * rtlanal.c (reg_mentioned_p): Likewise.
2239         (rtx_referenced_p): Likewise.
2240         (get_condition): Likewise.
2241         * sched-vis.c (print_value): Likewise.
2242         * varasm.c (const_hash_1): Likewise.
2243         (compare_constant): Likewise.
2244         (const_rtx_hash_1): Likewise.
2245         (output_constant_pool_1): Likewise.
2246
2247 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
2248
2249         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
2250         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
2251         instead of minus.
2252         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
2253         cr6_test_for_lt_reverse): Ditto.
2254
2255 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
2256
2257         PR c++/61489
2258         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
2259
2260 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
2261
2262         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
2263         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
2264         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
2265         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
2266         Delete.
2267
2268         (aarch64_fold_builtin): Remove all reinterpret cases.
2269
2270         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
2271
2272         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
2273
2274         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
2275         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
2276         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
2277         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
2278         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
2279         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
2280         aarch64_reinterpretv2df<mode>): Delete.
2281
2282         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
2283
2284         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
2285         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
2286         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
2287         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
2288         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
2289         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
2290         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
2291         vreinterpret_u32_f64): Use cast.
2292
2293         * config/aarch64/iterators.md (VD_RE): Delete.
2294
2295 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
2296
2297         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
2298         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
2299         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
2300         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
2301         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
2302         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
2303         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
2304         Replace inline assembler with __aarch64_vset_lane_any.
2305
2306 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
2307
2308         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
2309         types.
2310         (vmull_high_lane_s32): Likewise.
2311         (vmull_high_lane_u16): Likewise.
2312         (vmull_high_lane_u32): Likewise.
2313
2314 2014-09-11  Jason Merrill  <jason@redhat.com>
2315
2316         PR c++/58678
2317         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
2318
2319 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
2320
2321         PR target/63223
2322         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
2323         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
2324         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
2325
2326 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2327             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2328             Anna Tikhonova  <anna.tikhonova@intel.com>
2329             Ilya Tocar  <ilya.tocar@intel.com>
2330             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2331             Ilya Verbin  <ilya.verbin@intel.com>
2332             Kirill Yukhin  <kirill.yukhin@intel.com>
2333             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2334
2335         * config/i386/sse.md
2336         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
2337         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
2338         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
2339         New.
2340         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
2341         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
2342         iterator.
2343         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
2344         New.
2345         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
2346         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
2347         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
2348         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
2349         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
2350         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
2351         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
2352         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
2353         iterator.
2354         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
2355         New.
2356         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
2357         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
2358         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
2359
2360 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
2361
2362         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
2363         to access removed nodes.
2364
2365 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
2366
2367         PR tree-optimization/63186
2368         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
2369         (mark_nonssa_use): Likewise.
2370         (verify_non_ssa_vars): Verify all header blocks for label
2371         definitions.
2372
2373 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2374             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2375             Anna Tikhonova  <anna.tikhonova@intel.com>
2376             Ilya Tocar  <ilya.tocar@intel.com>
2377             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2378             Ilya Verbin  <ilya.verbin@intel.com>
2379             Kirill Yukhin  <kirill.yukhin@intel.com>
2380             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2381
2382         * config/i386/sse.md
2383         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
2384         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
2385         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
2386         "<avx2_avx512f>_permvar<mode><mask_name>".
2387         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
2388         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
2389         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
2390         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
2391         Ditto.
2392         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
2393         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
2394         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
2395         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
2396
2397 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2398
2399         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
2400         V2DF, V4SF, DF, and DI modes.
2401         (vsx_fmav2df2): Likewise.
2402         (vsx_float_fix_<mode>2): Likewise.
2403         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
2404
2405 2014-09-10  Xinliang David Li  <davidxl@google.com>
2406
2407         PR target/63209
2408         * config/arm/arm.md (movcond_addsi): Handle case where source
2409         and target operands are the same.
2410
2411 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
2412
2413         * final.c (this_is_asm_operands): Strengthen this variable from
2414         rtx to const rtx_insn *.
2415         * output.h (this_is_asm_operands): Likewise.
2416         * rtl-error.c (location_for_asm): Strengthen param "insn" from
2417         const_rtx to const rtx_insn *.
2418         (diagnostic_for_asm): Likewise.
2419         * rtl-error.h (error_for_asm): Likewise.
2420         (warning_for_asm): Likewise.
2421
2422 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
2423
2424         * genextract.c (print_header): When writing out insn_extract to
2425         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
2426         * recog.h (insn_extract): Strengthen the param from rtx to
2427         rtx_insn *.
2428
2429 2014-09-10  Mike Stump  <mikestump@comcast.net>
2430
2431         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
2432         8.6.1.
2433
2434 2014-09-10  Martin Jambor  <mjambor@suse.cz>
2435
2436         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
2437         (analyze): Do not set analyze flag if expand_thunk returns false;.
2438         (create_wrapper): Likewise.
2439         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
2440
2441 2014-09-10  Martin Jambor  <mjambor@suse.cz>
2442
2443         PR ipa/61654
2444         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
2445         new decl properly.  Analyze the new thunk if it is expanded.
2446
2447 2014-09-10  Andreas Schwab  <schwab@suse.de>
2448
2449         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
2450         [USED_FOR_TARGET]: Define.
2451
2452 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
2453
2454         * config/mips/mips.c (mips_secondary_reload_class): Handle
2455         regno < 0 case.
2456
2457 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
2458
2459         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
2460         assignment.
2461
2462 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
2463
2464         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
2465         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
2466         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
2467         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
2468         flag_delete_null_pointer_checks for them.
2469         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
2470         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
2471         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
2472         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
2473         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
2474         stmt's iterator.
2475         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
2476         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
2477         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
2478         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
2479         * doc/invoke.texi (-fsanitize=nonnull-attribute,
2480         -fsanitize=returns-nonnull-attribute): Document.
2481
2482         * ubsan.h (struct ubsan_mismatch_data): Removed.
2483         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
2484         * ubsan.c (ubsan_source_location): For unknown locations,
2485         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
2486         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
2487         Allow more than one location and arbitrary extra arguments passed
2488         in ... instead of through MISMATCH pointer.
2489         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
2490         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
2491         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
2492         callers.
2493
2494 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2495             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2496             Anna Tikhonova  <anna.tikhonova@intel.com>
2497             Ilya Tocar  <ilya.tocar@intel.com>
2498             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2499             Ilya Verbin  <ilya.verbin@intel.com>
2500             Kirill Yukhin  <kirill.yukhin@intel.com>
2501             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2502
2503         * config/i386/sse.md
2504         (define_mode_iterator VI48F): New.
2505         (define_insn "<avx512>_compress<mode>_mask"): Rename from
2506         "avx512f_compress<mode>_mask" and update mode iterator.
2507         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
2508         "avx512f_compressstore<mode>_mask" and update mode iterator.
2509         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
2510         "avx512f_expand<mode>_maskz" and update mode iterator.
2511         (define_insn "<avx512>_expand<mode>_mask"): Rename from
2512         "avx512f_expand<mode>_mask" and update mode iterator.
2513
2514 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2515             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2516             Anna Tikhonova  <anna.tikhonova@intel.com>
2517             Ilya Tocar  <ilya.tocar@intel.com>
2518             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2519             Ilya Verbin  <ilya.verbin@intel.com>
2520             Kirill Yukhin  <kirill.yukhin@intel.com>
2521             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2522
2523         * config/i386/i386.c
2524         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
2525         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
2526         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
2527         avx512dq_rangepv4sf_mask.
2528         * config/i386/sse.md
2529         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
2530         UNSPEC_RANGE.
2531         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
2532         (define_insn "reduces<mode>"): Ditto.
2533         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
2534         Ditto.
2535         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
2536         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
2537         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
2538
2539 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2540             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2541             Anna Tikhonova  <anna.tikhonova@intel.com>
2542             Ilya Tocar  <ilya.tocar@intel.com>
2543             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2544             Ilya Verbin  <ilya.verbin@intel.com>
2545             Kirill Yukhin  <kirill.yukhin@intel.com>
2546             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2547
2548         * config/i386/i386.c
2549         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
2550         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
2551         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
2552         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
2553         avx512vl_getmantv2df_mask.
2554         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
2555         avx512f_vgetmantv4sf_round.
2556         * config/i386/sse.md
2557         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
2558         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
2559         mode iterator.
2560         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
2561         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
2562         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
2563         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
2564         iterator..
2565         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
2566         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
2567         update mode iterator.
2568         (define_expand
2569         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
2570         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
2571         mode iterator.
2572         (define_insn
2573         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
2574         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
2575         update mode iterator.
2576         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
2577         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
2578         iterator..
2579         (define_insn
2580         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
2581         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
2582         mode iterator..
2583         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
2584         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
2585         update mode iterator.
2586         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
2587         "avx512f_getmant<mode><round_saeonly_name>".
2588
2589 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
2590
2591         PR ipa/63166
2592         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
2593
2594 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2595             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2596             Anna Tikhonova  <anna.tikhonova@intel.com>
2597             Ilya Tocar  <ilya.tocar@intel.com>
2598             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2599             Ilya Verbin  <ilya.verbin@intel.com>
2600             Kirill Yukhin  <kirill.yukhin@intel.com>
2601             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2602
2603         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
2604         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
2605         (define_mode_iterator FMAMODE_AVX512): New.
2606         (define_mode_iterator FMAMODE): Remove conditions.
2607         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
2608         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
2609         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
2610         mode iterator.
2611         (define_mode_iterator FMAMODE_NOVF512): Remove.
2612         (define_insn "*fma_fmadd_<mode>"): Rename from
2613         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
2614         FMAMODE mode iterator.
2615         (define_mode_iterator VF_SF_AVX512VL): New.
2616         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
2617         Use VF_SF_AVX512VL mode iterator.
2618         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
2619         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
2620         iterator.
2621         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
2622         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
2623         iterator.
2624         (define_insn "*fma_fmsub_<mode>"): Rename from
2625         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
2626         FMAMODE mode iterator.
2627         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
2628         Use VF_SF_AVX512VL mode iterator.
2629         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
2630         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
2631         iterator.
2632         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
2633         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
2634         iterator.
2635         (define_insn "*fma_fnmadd_<mode>"): Rename from
2636         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
2637         use FMAMODE mode iterator.
2638         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
2639         Use VF_SF_AVX512VL mode iterator.
2640         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
2641         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
2642         iterator.
2643         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
2644         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
2645         iterator.
2646         (define_insn "*fma_fnmsub_<mode>"): Rename from
2647         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
2648         FMAMODE mode iterator.
2649         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
2650         Use VF_SF_AVX512VL mode iterator.
2651         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
2652         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
2653         iterator.
2654         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
2655         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
2656         iterator.
2657         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
2658         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
2659         use VF_AVX512VL mode iterator.
2660         (define_insn "*fma_fmaddsub_<mode>"): Rename from
2661         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
2662         remove subst usage.
2663         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
2664         Use VF_SF_AVX512VL mode iterator.
2665         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
2666         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
2667         iterator.
2668         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
2669         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
2670         iterator.
2671         (define_insn "*fma_fmsubadd_<mode>"): Rename from
2672         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
2673         remove usage of subst.
2674         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
2675         Use VF_SF_AVX512VL mode iterator.
2676         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
2677         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
2678         iterator.
2679         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
2680         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
2681         iterator.
2682
2683 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
2684
2685         Revert r213751:
2686         * calls.c (precompute_arguments): Check
2687          promoted_for_signed_and_unsigned_p and set the promoted mode.
2688         (promoted_for_signed_and_unsigned_p): New function.
2689         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
2690         and set the promoted mode.
2691         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
2692         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
2693         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
2694
2695 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2696
2697         * opth-gen.awk: Generate mapping from cpp message reasons to the
2698         options that enable them.
2699         * doc/options.texi (CppReason): Document.
2700
2701 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2702
2703         * doc/invoke.texi (Wnormalized=): Update.
2704
2705 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
2706
2707         PR target/63195
2708         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
2709         operands.  Split off the constant operand alternative to ...
2710         (*bool<mode>3_imm): New.
2711
2712 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
2713
2714         * rtl.h (single_set_2): Strengthen first param from const_rtx to
2715         const rtx_insn *, and move prototype to above...
2716         (single_set): ...this.  Convert this from a macro to an inline
2717         function, enforcing the requirement that the param is a const
2718         rtx_insn *.
2719         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
2720
2721         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
2722         Strengthen both params from rtx to rtx_insn *.
2723         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
2724         Likewise; introduce locals "producer_set", "consumer_set", using
2725         them in place of "producer" and "consumer" when dealing with SET
2726         rather than insn.
2727         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
2728         when invoking single_set in region guarded by INSN_P.
2729         (avr_out_bitop): Likewise.
2730         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
2731         region guarded by GET_CODE check, using methods to strengthen
2732         local "this_insn" from rtx to rtx_insn *, and for clarity.
2733         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
2734         Strengthen local "insn" from rtx to rtx_insn *.
2735         (define_insn_and_split "xload<mode>_A"): Likewise.
2736         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
2737         "insn".
2738         (find_load): Likewise for return type.
2739         (workaround_speculation): Likewise for both locals named
2740         "load_insn".
2741         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
2742         local "cc0_user".
2743         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
2744         for local "prev".
2745         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
2746         param 2.
2747         * config/h8300/h8300.c (notice_update_cc): Likewise.
2748         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
2749         "insn" and "dep_insn".
2750         (exact_store_load_dependency): Likewise for both params.
2751         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
2752         since this now clashes with inline function.  Instead, delay
2753         calling single_set until the point where its needed, and then
2754         assign the result to "compare_set" and rework the conditional that
2755         follows.
2756         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
2757         local "last" from rtx to rtx_insn *.
2758         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
2759         second param.
2760         (mips_store_data_bypass_p): Likewise for both params.
2761         * config/mips/mips.c (mips_load_store_insns): Likewise for second
2762         param.
2763         (mips_store_data_bypass_p): Likewise for both params.
2764         (mips_orphaned_high_part_p): Likewise for param "insn".
2765         * config/mn10300/mn10300.c (extract_bundle): Likewise.
2766         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
2767         Introduce local rtx "insn2_pat".
2768         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
2769         "ninsn".
2770         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
2771         Introduce local rtx "set", using it in place of "insn" for the
2772         result of single_set.  This appears to fix a bug, since the call
2773         to find_regno_note on a SET does nothing.
2774         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
2775         params from rtx to rtx_insn *.
2776         (set_to_load_agen): Likewise.
2777         * config/s390/s390.c (s390_label_align): Likewise for local
2778         "prev_insn".  Introduce new rtx locals "set" and "src", using
2779         them in place of "prev_insn" for the results of single_set
2780         and SET_SRC respectively.
2781         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
2782         Introduce new rtx local "set" using in place of "jump" for the
2783         result of single_set.  Use SET_SRC (set) rather than plain
2784         XEXP (set, 1).
2785         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
2786         rtx to rtx_insn *.
2787         (noncall_uses_reg): Likewise.
2788         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
2789         guarded by GET_CODE check, using its methods for clarity, and to
2790         enable strengthening local "this_insn" from rtx to rtx_insn *.
2791         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
2792         "insn" from rtx to rtx_insn *.
2793         (define_expand "umulhisi3"): Likewise.
2794         (define_expand "smulsi3_highpart"): Likewise.
2795         (define_expand "umulsi3_highpart"): Likewise.
2796         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
2797         local "after".  Replace GET_CODE check with a dyn_cast,
2798         introducing new local rtx_sequence * "seq", using insn method for
2799         typesafety.
2800
2801         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
2802         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
2803         place of "insn" once we're dealing with patterns rather than the
2804         input insn.
2805         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
2806         (scan_trace): Likewise for local "elt", updating lookups within
2807         sequence to use insn method rather than element method.
2808         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
2809         to rtx_insn *.
2810         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
2811         * ifcvt.c (noce_try_abs): Likewise for local "insn".
2812         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
2813         invoking single_set.
2814         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
2815         "insn" from rtx to rtx_insn *.
2816         (skip_usage_debug_insns): Likewise for return type, adding a
2817         checked cast.
2818         (check_secondary_memory_needed_p): Likewise for local "insn".
2819         (inherit_reload_reg): Likewise.
2820         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
2821         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
2822         checked casts.
2823         (store_data_bypass_p): Likewise for both params.
2824         (if_test_bypass_p): Likewise.
2825         * recog.h (store_data_bypass_p): Likewise for both params.
2826         (if_test_bypass_p): Likewise.
2827         * reload.c (find_equiv_reg): Likewise for local "where".
2828         * reorg.c (delete_jump): Likewise for param "insn".
2829         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
2830         to const rtx_insn *.
2831         * store-motion.c (replace_store_insn): Likewise for param "del".
2832         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
2833         and use its methods for clarity, and to strengthen local "del"
2834         from rtx to rtx_insn *.
2835         (build_store_vectors): Use insn method of "st" when calling
2836         replace_store_insn for typesafety and clarity.
2837
2838 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2839
2840         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
2841         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
2842         on how to make it legal in future.
2843
2844 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
2845
2846         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
2847         to rtx_insn *.
2848         (restinsn): Likewise.
2849         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
2850         Likewise for param.
2851         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
2852         Likewise.
2853         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
2854         first param.
2855         (arc_hazard): Likewise for both params.
2856         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
2857         checked casts to rtx_sequence * and uses of the insn method for
2858         type-safety.
2859         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
2860         (arc_adjust_insn_length): Likewise for param "insn".
2861         (struct insn_length_parameters_s): Likewise for first param of
2862         "get_variants" callback field.
2863         (arc_get_insn_variants): Likewise for first param and local
2864         "inner".  Replace a check of GET_CODE with a dyn_cast to
2865         rtx_sequence *, using methods for type-safety and clarity.
2866         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
2867         rtx_sequence * and uses of the insn method for type-safety when
2868         invoking arc_adjust_insn_length.
2869         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
2870         for param.
2871         (arm_address_offset_is_imm): Likewise.
2872         (struct tune_params): Likewise for params 1 and 3 of the
2873         "sched_adjust_cost" callback field.
2874         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
2875         params 1 and 3 ("insn" and "dep").
2876         (xscale_sched_adjust_cost): Likewise.
2877         (fa726te_sched_adjust_cost): Likewise.
2878         (cortexa7_older_only): Likewise for param "insn".
2879         (cortexa7_younger): Likewise.
2880         (arm_attr_length_move_neon): Likewise.
2881         (arm_address_offset_is_imm): Likewise.
2882         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
2883         * config/avr/avr.c (avr_notice_update_cc): Likewise.
2884         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
2885         (workaround_speculation): Likewise for local "last_condjump".
2886         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
2887         (shadow_or_blockage_p): Likewise.
2888         (get_unit_reqs): Likewise.
2889         (get_unit_operand_masks): Likewise.
2890         (c6x_registers_update): Likewise.
2891         (returning_call_p): Likewise.
2892         (can_use_callp): Likewise.
2893         (convert_to_callp): Likewise.
2894         (find_last_same_clock): Likwise for local "t".
2895         (reorg_split_calls): Likewise for local "shadow".
2896         (hwloop_pattern_reg): Likewise for param "insn".
2897         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
2898         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
2899         (frv_extract_membar): Likewise.
2900         (frv_optimize_membar_local): Strengthen param "last_membar" from
2901         rtx * to rtx_insn **.
2902         (frv_optimize_membar_global): Strengthen param "membar" from rtx
2903         to rtx_insn *.
2904         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
2905         to rtx_insn **.
2906         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
2907         both params from rtx to rtx_insn *.
2908         (ia64_ld_address_bypass_p): Likewise.
2909         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
2910         "insn".
2911         (ia64_safe_type): Likewise.
2912         (group_barrier_needed): Likewise.
2913         (safe_group_barrier_needed): Likewise.
2914         (ia64_single_set): Likewise.
2915         (is_load_p): Likewise.
2916         (record_memory_reference): Likewise.
2917         (get_mode_no_for_insn): Likewise.
2918         (important_for_bundling_p): Likewise.
2919         (unknown_for_bundling_p): Likewise.
2920         (ia64_st_address_bypass_p): Likewise for both params.
2921         (ia64_ld_address_bypass_p): Likewise.
2922         (expand_vselect): Introduce new local rtx_insn * "insn", using it
2923         in place of rtx "x" after the emit_insn call.
2924         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
2925         Strengthen param from rtx to rtx_insn *.
2926         (ix86_agi_dependent): Likewise for both params.
2927         (ix86_attr_length_immediate_default): Likewise for param 1.
2928         (ix86_attr_length_address_default): Likewise for param.
2929         (ix86_attr_length_vex_default): Likewise for param 1.
2930         * config/i386/i386.c (ix86_attr_length_immediate_default):
2931         Likewise for param "insn".
2932         (ix86_attr_length_address_default): Likewise.
2933         (ix86_attr_length_vex_default): Likewise.
2934         (ix86_agi_dependent): Likewise for both params.
2935         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
2936         (vselect_insn): Likewise for this variable.
2937         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
2938         for param 1.
2939         (m68k_sched_attr_opy_type): Likewise.
2940         * config/m68k/m68k.c (sched_get_operand): Likewise.
2941         (sched_attr_op_type): Likewise.
2942         (m68k_sched_attr_opx_type): Likewise.
2943         (m68k_sched_attr_opy_type): Likewise.
2944         (sched_get_reg_operand): Likewise.
2945         (sched_get_mem_operand): Likewise.
2946         (m68k_sched_address_bypass_p): Likewise for both params.
2947         (sched_get_indexed_address_scale): Likewise.
2948         (m68k_sched_indexed_address_bypass_p): Likewise.
2949         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
2950         (m68k_sched_indexed_address_bypass_p): Likewise.
2951         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
2952         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
2953         removing another.
2954         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
2955         params from rtx to rtx_insn *.
2956         (mips_fmadd_bypass): Likewise.
2957         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
2958         (mips_linked_madd_p): Likewise.
2959         (mips_macc_chains_last_hilo): Likewise for this variable.
2960         (mips_macc_chains_record): Likewise for param.
2961         (vr4130_last_insn): Likewise for this variable.
2962         (vr4130_swap_insns_p): Likewise for both params.
2963         (mips_ls2_variable_issue): Likewise for param.
2964         (mips_need_noat_wrapper_p): Likewise for param "insn".
2965         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
2966         in place of "x" after the emit_insn.
2967         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
2968         params from rtx to rtx_insn *.
2969         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
2970         (pa_combine_instructions): Introduce local "par" for result of
2971         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
2972         to make_insn_raw.
2973         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
2974         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
2975         (rl78_alloc_physical_registers_op1): Likewise.
2976         (rl78_alloc_physical_registers_op2): Likewise.
2977         (rl78_alloc_physical_registers_ro1): Likewise.
2978         (rl78_alloc_physical_registers_cmp): Likewise.
2979         (rl78_alloc_physical_registers_umul): Likewise.
2980         (rl78_alloc_address_registers_macax): Likewise.
2981         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
2982         * config/s390/predicates.md (execute_operation): Likewise for
2983         local "insn".
2984         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
2985         params.
2986         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
2987         (addr_generation_dependency_p): Likewise for param "insn".
2988         (s390_agen_dep_p): Likewise for both params.
2989         (s390_fpload_toreg): Likewise for param "insn".
2990         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
2991         * config/sh/sh.c (sh_loop_align): Likewise for param and local
2992         "next".
2993         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
2994         * config/sh/sh_treg_combine.cc
2995         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
2996         and local "i".
2997         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
2998         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
2999         "and_insn", "load", "shift".
3000         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
3001         "insn".
3002         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
3003         for XEXP (note, 0) of the REG_CC_SETTER note.
3004         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
3005         rtx_insn *, eliminating a checked cast made redundant by this.
3006         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
3007         to rtx_insn *.
3008         * genattr.c (main): When writing out the prototype to
3009         const_num_delay_slots, strengthen the param from rtx to
3010         rtx_insn *.
3011         * genattrtab.c (write_const_num_delay_slots): Likewise when
3012         writing out the implementation of const_num_delay_slots.
3013         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
3014         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
3015         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
3016         favor of new rtx locals "src" and "set" and new local rtx_insn *
3017         "insn" and "seq".
3018         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
3019         to rtx_insn *.
3020         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
3021         locals "cond", "if_then_else", "set" and new rtx_insn * locals
3022         "insn" and "seq".
3023         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
3024         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
3025         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
3026         the top-level scope, replacing with new more tightly-scoped rtx
3027         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
3028         "new_insn", "copy_of_insn_b", and make local rtx "set" more
3029         tightly-scoped.
3030         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
3031         rtx_insn *.
3032         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
3033         "move_insn".
3034         (ira_setup_alts): Likewise for param "insn".
3035         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
3036         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
3037         and an rtx_insn *.
3038         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
3039         new more-tightly scoped rtx locals "add3_insn", "insn",
3040         "add2_insn" and rtx_insn * "move_insn".
3041         * postreload-gcse.c (eliminate_partially_redundant_load): Add
3042         checked cast on result of gen_move_insn when invoking
3043         extract_insn.
3044         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
3045         rtx_insn *.
3046         (verify_changes): Add a checked cast on "object" when invoking
3047         insn_invalid_p.
3048         (extract_insn_cached): Strengthen param "insn" from rtx to
3049         rtx_insn *.
3050         (extract_constrain_insn_cached): Likewise.
3051         (extract_insn): Likewise.
3052         * recog.h (insn_invalid_p): Likewise for param 1.
3053         (recog_memoized): Likewise for param.
3054         (extract_insn): Likewise.
3055         (extract_constrain_insn_cached): Likewise.
3056         (extract_insn_cached): Likewise.
3057         * reload.c (can_reload_into): Likewise for local "test_insn".
3058         * reload.h (cleanup_subreg_operands): Likewise for param.
3059         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
3060         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
3061         result of emit_insn.  Remove a checked cast made redundant by this
3062         change.
3063         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
3064         rtx to rtx_insn *.
3065         * sel-sched.c (get_reg_class): Likewise.
3066
3067 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3068         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3069
3070          * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
3071          * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
3072         Define.
3073         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
3074
3075 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
3076
3077         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
3078         const rtx_insn *, and from rtx to rtx_insn * for the other
3079         overloaded variant.
3080         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
3081         INSN_LOCATION, since we know INSN_P holds.
3082         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
3083         (insn_file): Likewise.
3084         (insn_scope): Likewise.
3085         (insn_location): Likewise.
3086
3087         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
3088         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
3089         for the result of gen_load_const_gp.
3090         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
3091         param from rtx to rtx_insn *.
3092         * config/rs6000/rs6000.c (output_call): Likewise.
3093         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
3094         introducing a checked cast to rtx_sequence * and use of the insn
3095         method.
3096         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
3097         from rtx to rtx_insn *.
3098         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
3099         (insn_line): Likewise.
3100         (insn_file): Likewise.
3101         (insn_location): Likewise.
3102         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
3103         from rtx to rtx_insn *.
3104         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
3105         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
3106         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
3107         via a checked cast.
3108         * reorg.c (relax_delay_slots): Strengthen locals named "after"
3109         from rtx to rtx_insn *; use methods of "pat" for type-safety.
3110
3111 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
3112
3113         * combine.c (try_combine): Eliminate checked cast on result of
3114         gen_rtx_INSN.
3115         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
3116         autogenerated one by strengthening the return type and params 2 and 3
3117         from rtx to rtx_insn *, and by naming the params.
3118         * gengenrtl.c (special_rtx): Add INSN to those that are
3119         special-cased.
3120         * rtl.h (gen_rtx_INSN): New prototype.
3121
3122 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
3123
3124         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
3125         than NULL_RTX.
3126         (no_equiv): Likewise.
3127         (update_equiv_regs): Likewise.
3128         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
3129         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
3130         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
3131         clarity.
3132         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
3133         from rtx to rtx_insn_list *.
3134         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
3135         rtx_insn_list * and use methods for clarity and typesafety.
3136         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
3137         "list".
3138         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
3139         redundant check on INSN_P (insns): this cannot hold, as "insns" is
3140         an INSN_LIST, not an insn.
3141         (reverse_equiv_p): Strengthen local "insns" from rtx to
3142         rtx_insn_list * and use methods for clarity and typesafety.
3143         (contains_reloaded_insn_p): Likewise for local "list".
3144
3145 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
3146
3147         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
3148         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
3149         (arm_builtin_vectorized_function): Likewise.
3150         * config/arm/arm_neon_builtins.def: New macro for copysignf.
3151         * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
3152
3153 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
3154
3155         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
3156         * builtins.h (default_target_builtins): Likewise.
3157         * gcse.h (default_target_gcse): Likewise.
3158         * target-globals.h (target_globals): Add a destructor.  Convert
3159         void-pointer fields back to their real type and change from
3160         GTY((atomic)) to GTY((skip)).
3161         (restore_target_globals): Remove casts accordingly.
3162         * target-globals.c (save_target_globals): Use XCNEW rather than
3163         ggc_internal_cleared_alloc to allocate non-GC structures.
3164         Use ggc_cleared_alloc to allocate the target_globals structure
3165         itself.
3166         (target_globals::~target_globals): Define.
3167
3168 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3169
3170         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
3171         mnemonic instead of fldmfdd.
3172         * config/arm/arm.c (vfp_output_fstmd): Rename to...
3173         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
3174         Output vpush when address register is SP.
3175         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
3176         (vfp_output_vstmd): ... This.
3177         * config/arm/vfp.md (push_multi_vfp): Update call to
3178         vfp_output_vstmd.
3179
3180 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3181
3182         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
3183
3184 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3185
3186         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
3187         (*sqrtdf2_vfp): Likewise.
3188         (*cmpsf_vfp): Likewise.
3189         (*cmpsf_trap_vfp): Likewise.
3190         (*cmpdf_vfp): Likewise.
3191         (*cmpdf_trap_vfp): Likewise.
3192
3193 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3194
3195         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
3196         (*truncdfsf2_vfp): Likewise.
3197         (*truncsisf2_vfp): Likewise.
3198         (*truncsidf2_vfp): Likewise.
3199         (fixuns_truncsfsi2): Likewise.
3200         (fixuns_truncdfsi2): Likewise.
3201         (*floatsisf2_vfp): Likewise.
3202         (*floatsidf2_vfp): Likewise.
3203         (floatunssisf2): Likewise.
3204         (floatunssidf2): Likewise.
3205
3206 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3207
3208         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
3209         (*muldf3_vfp): Likewise.
3210         (*mulsf3negsf_vfp): Likewise.
3211         (*muldf3negdf_vfp): Likewise.
3212         (*mulsf3addsf_vfp): Likewise.
3213         (*muldf3adddf_vfp): Likewise.
3214         (*mulsf3subsf_vfp): Likewise.
3215         (*muldf3subdf_vfp): Likewise.
3216         (*mulsf3negsfaddsf_vfp): Likewise.
3217         (*fmuldf3negdfadddf_vfp): Likewise.
3218         (*mulsf3negsfsubsf_vfp): Likewise.
3219         (*muldf3negdfsubdf_vfp): Likewise.
3220
3221 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3222
3223         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
3224         (*absdf2_vfp): Likewise.
3225         (*negsf2_vfp): Likewise.
3226         (*negdf2_vfp): Likewise.
3227         (*addsf3_vfp): Likewise.
3228         (*adddf3_vfp): Likewise.
3229         (*subsf3_vfp): Likewise.
3230         (*subdf3_vfp): Likewise.
3231         (*divsf3_vfp): Likewise.
3232         (*divdf3_vfp): Likewise.
3233
3234 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3235
3236         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
3237         multiple.
3238         (arm_print_operand): Don't convert real values to decimal
3239         representation in default case.
3240         (fp_immediate_constant): Delete.
3241         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
3242         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
3243         syntax.
3244         (*thumb2_movsi_vfp): Likewise.
3245         (*movdi_vfp): Likewise.
3246         (*movdi_vfp_cortexa8): Likewise.
3247         (*movhf_vfp_neon): Likewise.
3248         (*movhf_vfp): Likewise.
3249         (*movsf_vfp): Likewise.
3250         (*thumb2_movsf_vfp): Likewise.
3251         (*movdf_vfp): Likewise.
3252         (*thumb2_movdf_vfp): Likewise.
3253         (*movsfcc_vfp): Likewise.
3254         (*thumb2_movsfcc_vfp): Likewise.
3255         (*movdfcc_vfp): Likewise.
3256         (*thumb2_movdfcc_vfp): Likewise.
3257
3258 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
3259
3260         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
3261         (-mtune): Likewise.
3262         (-mcpu): Likewise.
3263
3264 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3265
3266         PR target/61749
3267         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
3268         Use qualifier_immediate for last operand.  Rename to...
3269         (aarch64_types_ternop_lane_qualifiers): ... This.
3270         (TYPES_QUADOP): Rename to...
3271         (TYPES_TERNOP_LANE): ... This.
3272         (aarch64_simd_expand_args): Return const0_rtx when encountering user
3273         error.  Change return of 0 to return of NULL_RTX.
3274         (aarch64_crc32_expand_builtin): Likewise.
3275         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
3276         ICE when expanding unknown builtin.
3277         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
3278         TERNOP_LANE qualifiers.
3279         (sqdmlsl_lane): Likewise.
3280         (sqdmlal_laneq): Likewise.
3281         (sqdmlsl_laneq): Likewise.
3282         (sqdmlal2_lane): Likewise.
3283         (sqdmlsl2_lane): Likewise.
3284         (sqdmlal2_laneq): Likewise.
3285         (sqdmlsl2_laneq): Likewise.
3286
3287 2014-09-09  Nick Clifton  <nickc@redhat.com>
3288
3289         * doc/invoke.texi (Optimization Options): Add missing @gol to the
3290         end of a line.
3291         (S/390 and zSeries Options): Remove superfluous word from the
3292         description of the -mhotpatch option.
3293
3294 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
3295
3296         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
3297         * ira.c: #include "shrink-wrap.h"
3298         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
3299         * ifcvt.c: #include "shrink-wrap.h"
3300         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
3301
3302 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
3303
3304         * common/config/picochip/picochip-common.c: Remove.
3305         * config.gcc: Remove support for picochip.
3306         * config/picochip/constraints.md: Remove.
3307         * config/picochip/dfa_space.md: Remove.
3308         * config/picochip/dfa_speed.md: Remove.
3309         * config/picochip/picochip-protos.h: Remove.
3310         * config/picochip/picochip.c: Remove.
3311         * config/picochip/picochip.h: Remove.
3312         * config/picochip/picochip.md: Remove.
3313         * config/picochip/picochip.opt: Remove.
3314         * config/picochip/predicates.md: Remove.
3315         * config/picochip/t-picochip: Remove.
3316         * doc/md.texi: Don't document picochi.
3317
3318 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
3319
3320         * basic-block.h (control_flow_insn_p): Strengthen param from
3321         const_rtx to const rtx_insn *.
3322         * cfgbuild.c (control_flow_insn_p): Likewise.
3323
3324 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
3325
3326         * gcse.c (modify_mem_list): Strengthen this variable from
3327         vec<rtx> * to vec<rtx_insn *> *.
3328         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
3329         vec<rtx_insn *>.
3330         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
3331         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
3332         (record_last_mem_set_info): Strengthen param "insn" from rtx to
3333         rtx_insn *.
3334         (record_last_set_info): Likewise for local "last_set_insn".
3335
3336 2014-09-08  DJ Delorie  <dj@redhat.com>
3337
3338         * doc/invoke.texi (MSP430 Options): Add -minrt.
3339
3340 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3341
3342         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
3343         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
3344         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
3345         handling SH_SPLAT.
3346         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
3347         of extracted lane.
3348         (adjust_splat): New function.
3349         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
3350         (dump_swap_insn_table): Add case for SH_SPLAT.
3351
3352 2014-09-08  Richard Biener  <rguenther@suse.de>
3353
3354         PR ipa/63196
3355         * tree-inline.c (copy_loops): The source loop header should
3356         always be non-NULL.
3357         (tree_function_versioning): If loops need fixup after removing
3358         unreachable blocks fix them.
3359         * omp-low.c (simd_clone_adjust): Do not add incr block to
3360         loop under construction.
3361
3362 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
3363
3364         * config/aarch64/aarch64-builtins.c
3365         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
3366
3367 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
3368
3369         * config/i386/cygming.h (TF_SIZE): Remove.
3370         * config/i386/darwin.h (TF_SIZE): Remove.
3371         * config/i386/dragonfly.h (TF_SIZE): Remove.
3372         * config/i386/freebsd.h (TF_SIZE): Remove.
3373         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
3374         * config/i386/openbsdelf.h (TF_SIZE): Remove.
3375         * config/i386/sol2.h (TF_SIZE): Remove.
3376         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
3377         * config/ia64/linux.h (TF_SIZE): Remove.
3378         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
3379         * doc/tm.texi: Regenerate.
3380         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
3381
3382 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
3383
3384         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
3385         Remove.
3386         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
3387         Remove.
3388         * doc/tm.texi: Regenerate.
3389         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
3390         Poison.
3391         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
3392         * config/cris/cris.h (__make_dp): Remove.
3393
3394 2014-09-08  Richard Biener  <rguenther@suse.de>
3395
3396         PR bootstrap/63204
3397         * cfgloop.c (mark_loop_for_removal): Track former header
3398         unconditionally.
3399         * cfgloop.h (struct loop): Add former_header member unconditionally.
3400         * loop-init.c (fix_loop_structure): Enable bogus loop removal
3401         diagnostic unconditionally.
3402
3403 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
3404
3405         PR target/63190
3406         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
3407         constraint for operand0 and remove write only modifier from operand3.
3408
3409 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
3410
3411         PR rtl-optimization/62208
3412         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
3413         rather than const0_rtx in eq/ne-xor simplifications.
3414
3415 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
3416
3417         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
3418         (arc_output_mi_thunk): Likewise.
3419
3420         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
3421         arguments to silence bogus warning.
3422
3423 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
3424
3425         PR middle-end/63171
3426         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
3427
3428 2014-09-06  Tom de Vries  <tom@codesourcery.com>
3429
3430         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
3431         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
3432         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
3433
3434 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
3435
3436         PR target/63188
3437         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
3438         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
3439
3440 2014-09-05  Easwaran Raman  <eraman@google.com>
3441
3442         PR rtl-optimization/62146
3443         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
3444         hoisted instruction unconditional.
3445
3446 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
3447
3448         PR target/63187
3449         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
3450         Do not allow any_mask_operand for operands[2].
3451         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
3452
3453 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
3454
3455         * config/arc/arc.c (arc_print_operand): Use insn method of
3456         final_sequence for type-safety.
3457         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
3458         "insn" from rtx to rtx_insn *.
3459         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
3460         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
3461         Likewise for locals "branch", "label".
3462         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
3463         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
3464         (same_cmp_following_p): Likewise for locals "i2", "i3".
3465         * config/sh/sh_optimize_sett_clrt.cc
3466         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
3467         param "cbranch_insn".
3468         * function.c (convert_jumps_to_returns): Likewis for local "jump".
3469         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
3470         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
3471         const rtx_insn *.
3472         (condjump_p): Likewise.
3473         (condjump_in_parallel_p): Likewise.
3474         (pc_set): Likewise.
3475         (any_uncondjump_p): Likewise.
3476         (any_condjump_p): Likewise.
3477         (condjump_label): Likewise.
3478         (returnjump_p): Strengthen param "insn" from rtx to
3479         const rtx_insn *.
3480         (onlyjump_p): Strengthen param "insn" from const_rtx to
3481         const rtx_insn *.
3482         (jump_to_label_p): Likewise.
3483         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
3484         (invert_jump): Likewise.
3485         * reorg.c (simplejump_or_return_p): Add checked cast when calling
3486         simplejump_p.
3487         (get_jump_flags): Strengthen param "insn" from rtx to
3488         const rtx_insn *.
3489         (get_branch_condition): Likewise.
3490         (condition_dominates_p): Likewise.
3491         (make_return_insns): Move declaration of local "pat" earlier, to
3492         after we've handled NONJUMP_INSN_P and non-sequences, using its
3493         methods to simplify the code and for type-safety.
3494         * rtl.h (find_constant_src): Strengthen param from const_rtx to
3495         const rtx_insn *.
3496         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
3497         (condjump_p): Strengthen param from const_rtx to
3498         const rtx_insn *.
3499         (any_condjump_p): Likewise.
3500         (any_uncondjump_p): Likewise.
3501         (pc_set): Likewise.
3502         (condjump_label): Likewise.
3503         (simplejump_p): Likewise.
3504         (returnjump_p): Likewise.
3505         (onlyjump_p): Likewise.
3506         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
3507         (invert_jump): Likewise.
3508         (condjump_in_parallel_p): Strengthen param from const_rtx to
3509         const rtx_insn *.
3510         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
3511         to const rtx_insn *.
3512         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
3513         to const rtx_insn *.
3514         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
3515
3516 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
3517
3518         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
3519         above the conditional, and convert the check on GET_CODE to a
3520         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
3521         the conditional.  Simplify the conditional by using methods of
3522         "trial_seq".
3523
3524 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
3525
3526         * haifa-sched.c (check_clobbered_conditions): Strengthen local
3527         "link" from rtx to rtx_insn_list *, and use its methods for
3528         clarity and type-safety.
3529         (toggle_cancelled_flags): Likewise.
3530         (restore_last_backtrack_point): Likewise.
3531         (queue_to_ready): Use insn method of "link" in one place.
3532         (schedule_block): Strengthen local "link" from rtx to
3533         rtx_insn_list *, and use its methods for clarity and type-safety.
3534
3535 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
3536
3537         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
3538         param "insn" from const_rtx to const rtx_insn *.
3539         (sched_get_reverse_condition_uncached): Likewise.
3540         (sched_get_condition_with_rev): Likewise.
3541         (sched_has_condition_p): Likewise.
3542         (sched_insns_conditions_mutex_p): Likewise for both params.
3543         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
3544         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
3545         (setup_insn_reg_uses): Move local "list" to be more tightly
3546         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
3547         its methods for clarity and type-safety.
3548         (sched_analyze_1): Strengthen local "pending" from rtx to
3549         rtx_insn_list *, and local "pending_mem" from rtx to
3550         rtx_expr_list *.  Use methods of each for clarity and type-safety.
3551         (sched_analyze_2): Likewise.
3552         (sched_analyze_insn): Likewise.
3553
3554         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
3555         param from const_rtx to const rtx_insn *.
3556         (sched_insns_conditions_mutex_p): Likewise for both params.
3557         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
3558         param.
3559
3560         * system.h (CONST_CAST_RTX_INSN): New macro.
3561
3562 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
3563
3564         * recog.c (peep2_attempt): Strengthen return type from rtx to
3565         rtx_insn *.
3566         (peep2_update_life): Likewise for params "last", "prev", removing
3567         a checked cast made redundant by this.
3568         (peephole2_optimize): Likewise for local "last".
3569
3570 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
3571
3572         * basic-block.h (set_block_for_insn): Eliminate this macro in
3573         favor of...
3574         * rtl.h (set_block_for_insn): New inline function, imposing the
3575         requirement that the "insn" param is an rtx_insn *.
3576
3577 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
3578
3579         * caller-save.c (setup_save_areas): Strengthen local "insn" from
3580         rtx to rtx_insn *.
3581         * final.c (get_call_reg_set_usage): Likewise for first param,
3582         eliminating a checked cast.
3583         * regs.h (get_call_reg_set_usage): Likewise for first param.
3584         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
3585         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
3586         cast, replacing references to "x" with "call_insn" where
3587         appropriate.
3588         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
3589         rtx_insn *, adding a checked cast.
3590
3591 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
3592
3593         * output.h (final_scan_insn): Strengthen first param from rtx to
3594         rtx_insn *.
3595
3596         * final.c (final_scan_insn): Likewise, renaming it back from
3597         "uncast_insn" to "insn", eliminating the checked cast.
3598
3599         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
3600         "vec" with an rtx_sequence * "seq", taking a copy of
3601         "final_sequence", and using methods of "seq" for clarity, and for
3602         type-safety in the calls to final_scan_insn.
3603         * config/mips/mips.c (mips_output_conditional_branch): Use methods
3604         of "final_sequence" for clarity, and for type-safety in the call to
3605         final_scan_insn.
3606         * config/sh/sh.c (print_slot): Strengthen param from rtx to
3607         rtx_sequence * and rename from "insn" to "seq".
3608
3609 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
3610
3611         * jump.c (delete_related_insns): Introduce a new local "table" by
3612         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
3613         get_labels method of "table" to simplify access to the labels in
3614         the jump table.
3615
3616 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3617
3618         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
3619         f_minmaxs, f_minmaxd types.
3620
3621 2014-09-05  Richard Biener  <rguenther@suse.de>
3622
3623         * cfgloop.c (mark_loop_for_removal): Record former header
3624         when ENABLE_CHECKING.
3625         * cfgloop.h (strut loop): Add former_header member when
3626         ENABLE_CHECKING.
3627         * loop-init.c (fix_loop_structure): Sanity check loops
3628         marked for removal if they re-appeared.
3629
3630 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
3631
3632         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
3633         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
3634
3635         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
3636         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
3637         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
3638         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
3639         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
3640         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
3641         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
3642         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
3643         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
3644         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
3645         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
3646         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
3647         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
3648         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
3649         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
3650         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
3651         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
3652         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
3653         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
3654         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
3655         with int{32,16,8}_t.
3656
3657 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
3658
3659         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
3660         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
3661         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
3662         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
3663         Remove temporary __asm__ and reimplement.
3664
3665 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
3666
3667         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
3668         handling cmge, cmgt, cmeq, cmtst.
3669
3670         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
3671         cmlt, cmgeu, cmgtu, cmtst): Remove.
3672
3673         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
3674         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
3675         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
3676         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
3677
3678 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
3679
3680         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
3681         TYPES_TST): Define.
3682         (aarch64_fold_builtin): Update pattern for cmtst.
3683
3684         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
3685         Declare.
3686
3687         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
3688
3689         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
3690         Switch operands, separate out more cases, refactor.
3691
3692         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
3693
3694         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
3695         argument; rename old version to...
3696         (aarch64_const_vec_all_same_in_range_p): ...this.
3697         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
3698
3699         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
3700
3701 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
3702
3703         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
3704         Remove qualifier_const_pointer, update comment.
3705
3706 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
3707
3708         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
3709
3710 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
3711
3712         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
3713         varargs with pointer parameter.
3714         (aarch64_simd_expand_builtin): pass pointer into previous.
3715
3716 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3717
3718         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
3719         alus_ext.
3720
3721 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
3722
3723         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
3724         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
3725         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
3726         Replace temporary asm with call to builtin.
3727         (vrbit_p8, vrbitq_p8): New functions.
3728
3729 2014-09-05  Richard Biener  <rguenther@suse.de>
3730
3731         * cfgloop.c (mark_loop_for_removal): New function.
3732         * cfgloop.h (mark_loop_for_removal): Declare.
3733         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
3734         (merge_blocks): Likewise.
3735         (duplicate_block): Likewise.
3736         * except.c (sjlj_emit_dispatch_table): Likewise.
3737         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
3738         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
3739         (thread_through_loop_header): Likewise.
3740
3741 2014-09-05  Richard Biener  <rguenther@suse.de>
3742
3743         PR middle-end/63148
3744         * fold-const.c (try_move_mult_to_index): Remove.
3745         (fold_binary_loc): Do not call it.
3746         * tree-data-ref.c (dr_analyze_indices): Strip conversions
3747         from the base object again.
3748
3749 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
3750
3751         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
3752         DImode.
3753
3754 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
3755
3756         PR target/55701
3757         * config/arm/arm.md (setmem): New pattern.
3758         * config/arm/arm-protos.h (struct tune_params): New fields.
3759         (arm_gen_setmem): New prototype.
3760         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
3761         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
3762         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
3763         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
3764         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
3765         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
3766         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
3767         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
3768         (arm_const_inline_cost): New function.
3769         (arm_block_set_max_insns): New function.
3770         (arm_block_set_non_vect_profit_p): New function.
3771         (arm_block_set_vect_profit_p): New function.
3772         (arm_block_set_unaligned_vect): New function.
3773         (arm_block_set_aligned_vect): New function.
3774         (arm_block_set_unaligned_non_vect): New function.
3775         (arm_block_set_aligned_non_vect): New function.
3776         (arm_block_set_vect, arm_gen_setmem): New functions.
3777
3778 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
3779
3780         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
3781
3782 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
3783
3784         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
3785
3786 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
3787
3788         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
3789         an rtx.
3790         * valtrack.h: Adjust.
3791
3792 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
3793
3794         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
3795         an rtx.
3796         (emit_jump_insn_before_noloc): Likewise.
3797         (emit_call_insn_before_noloc): Likewise.
3798         (emit_label_before): Likewise.
3799         (emit_label_after): Likewise.
3800         (emit_insn_before_setloc): Likewise.
3801         (emit_jump_insn_before_setloc): Likewise.
3802         (emit_call_insn_before_setloc): Likewise.
3803         (emit_call_insn_before): Likewise.
3804         * rtl.h: Adjust.
3805
3806 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
3807
3808         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
3809         rtx_insn *, eliminating a checked cast.
3810
3811 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
3812
3813         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
3814         const_rtx to const rtx_insn *.
3815         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
3816         cast.
3817
3818 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
3819
3820         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
3821         fixup_args_size_notes.
3822         * expr.c (fixup_args_size_notes): Strengthen first two params from
3823         rtx to rtx_insn *, eliminating a checked cast.
3824         * rtl.h (fixup_args_size_notes): Strengthen first two params from
3825         rtx to rtx_insn *.
3826
3827 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
3828
3829         * haifa-sched.c (get_ready_element): Strengthen return type from
3830         rtx to rtx_insn *.
3831         * sched-int.h (get_ready_element): Likewise.
3832
3833 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
3834
3835         PR target/63165
3836         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
3837         indexed_or_indirect_operand instead of memory_operand.
3838         (floatsi<mode>2_lfiwzx_mem): Ditto.
3839
3840 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
3841
3842         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
3843         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
3844         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
3845
3846 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
3847
3848         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
3849         rtx.
3850         (get_last_nonnote_insn): Likewise.
3851         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
3852         * resource.c (find_basic_block): Likewise.
3853         * rtl.h: Adjust.
3854         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
3855         const_rtx.
3856
3857 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
3858
3859         * genattr.c (main): Within the prototype of insn_latency written
3860         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
3861         * genautomata.c (output_internal_maximal_insn_latency_func):
3862         Within the implementation of insn_latency written out to
3863         insn-automata.c, strengthen both params from rtx to rtx_insn *,
3864         eliminating a pair of checked casts.
3865
3866 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
3867
3868         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
3869         rtx_insn *.
3870
3871         * rtl.h (eh_returnjump_p): Likewise.
3872
3873 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
3874
3875         * Makefile.in (TAGS): Handle constructs in timevar.def.
3876
3877 2014-09-04  Guozhi Wei  <carrot@google.com>
3878
3879         PR target/62040
3880         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
3881         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
3882         it into two patterns.
3883         (move_lo_quad_internal_be_<mode>): Likewise.
3884
3885 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3886
3887         * doc/options.texi: Document that Var and Init are required if CPP
3888         is given.
3889         * optc-gen.awk: Require Var and Init if CPP is given.
3890         * common.opt (Wpedantic): Use Init.
3891
3892 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3893
3894         * config/rs6000/rs6000.c (special_handling_values): Add
3895         SH_EXTRACT.
3896         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
3897         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
3898         as swappable with special handling SH_EXTRACT.  Remove
3899         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
3900         optimization.
3901         (adjust_extract): New function.
3902         (handle_special_swappables): Add default to case statement; add
3903         case for SH_EXTRACT that calls adjust_extract.
3904         (dump_swap_insn_table): Handle SH_EXTRACT.
3905
3906 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3907
3908         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
3909         selection of 0th memory doubleword, regardless of endianness.
3910
3911 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3912
3913         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
3914
3915 2014-09-04  Alan Modra  <amodra@gmail.com>
3916
3917         PR debug/60655
3918         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
3919         can't be output.
3920
3921 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
3922
3923         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
3924         * targhooks.c (default_dwarf_frame_reg_mode): New function.
3925         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
3926         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
3927         * doc/tm.texi: Regenerate.
3928         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
3929         selection logic to default_dwarf_frame_reg_mode.
3930
3931 2014-09-03  Marek Polacek  <polacek@redhat.com>
3932
3933         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
3934         by -Wall.
3935
3936 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
3937
3938         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
3939         the automodified register.
3940
3941 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
3942
3943         * output.h (get_some_local_dynamic_name): Declare.
3944         * final.c (some_local_dynamic_name): New variable.
3945         (get_some_local_dynamic_name): New function.
3946         (final_end_function): Clear some_local_dynamic_name.
3947         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
3948         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
3949         (print_operand): Report an error if '%&' is used inappropriately.
3950         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
3951         (get_some_local_dynamic_name_1): Delete.
3952         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
3953         (rs6000_get_some_local_dynamic_name): Delete.
3954         (rs6000_get_some_local_dynamic_name_1): Delete.
3955         (print_operand): Report an error if '%&' is used inappropriately.
3956         * config/s390/s390.c (machine_function): Remove some_ld_name.
3957         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
3958         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
3959         * config/sparc/sparc.c: Include rtl-iter.h.
3960         (machine_function): Remove some_ld_name.
3961         (sparc_print_operand): Report an error if '%&' is used inappropriately.
3962         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
3963
3964 2014-09-03  Richard Henderson  <rth@redhat.com>
3965
3966         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
3967         (aarch64_popwb_pair_reg): Remove.
3968         (aarch64_set_frame_expr): Remove.
3969         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
3970         the restore ops performed by the insns generated.
3971         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
3972         insn.  Perform the calls_eh_return addition later; do not attempt to
3973         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
3974         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
3975         special markup at all.  Load cfun->machine->frame.hard_fp_offset
3976         into a local variable.
3977         (aarch64_frame_pointer_required): Don't check calls_alloca.
3978
3979 2014-09-03  Richard Biener  <rguenther@suse.de>
3980
3981         * opts.c (default_options_optimization): Adjust
3982         max-combine-insns to 2 for -Og.
3983
3984 2014-09-03  Martin Jambor  <mjambor@suse.cz>
3985
3986         PR ipa/62015
3987         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
3988         pass-trough jump functions correctly.
3989
3990 2014-09-03  Martin Jambor  <mjambor@suse.cz>
3991
3992         PR ipa/61986
3993         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
3994         created replacements in ascending order of offsets.
3995         (known_aggs_to_agg_replacement_list): Likewise.
3996
3997 2014-09-03  Martin Liska  <mliska@suse.cz>
3998
3999         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
4000         is set to set uninitialized value for vnresult.
4001
4002 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4003
4004         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
4005         for TARGET_MUST_PASS_IN_STACK.
4006
4007 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4008
4009         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
4010         for TARGET_ARG_PARTIAL_BYTES.
4011
4012 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4013
4014         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
4015         instructions for varargs implementation.
4016         (nds32_expand_epilogue): Emit stack adjustment instructions for
4017         varargs implementation.
4018
4019 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4020
4021         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
4022         optimization detection.
4023
4024 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4025
4026         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
4027         arguments.
4028         (nds32_function_arg_advance): Deal with nameless arguments.
4029         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
4030         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
4031         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
4032
4033 2014-09-03  Richard Biener  <rguenther@suse.de>
4034
4035         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
4036         (struct bb_bitmap_sets): Remove deferred member.
4037         (BB_DEFERRED): Remove.
4038         (defer_or_phi_translate_block): Remove.
4039         (compute_antic_aux): Remove deferring of blocks, assert
4040         proper iteration order.
4041         (compute_antic): Do not set BB_DEFERRED.
4042         (eliminate): Allocate el_avail of proper size initially.
4043
4044 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4045
4046         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
4047         according to the value of crtl->args.pretend_args_size.
4048
4049 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4050
4051         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
4052         varargs information.
4053
4054 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4055
4056         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
4057         implementation for TARGET_SETUP_INCOMING_VARARGS.
4058         (nds32_strict_argument_naming): Refine comment.
4059         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
4060         Define for future implementation.
4061
4062 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
4063
4064         * config/i386/adxintrin.h (_subborrow_u32): New.
4065         (_addcarry_u32): Ditto.
4066         (_subborrow_u64): Ditto.
4067         (_addcarry_u64): Ditto.
4068         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
4069         IX86_BUILTIN_SBB64.
4070         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
4071         __builtin_ia32_sbb_u64
4072
4073 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4074
4075         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
4076         GPR-specific stuff.
4077         (nds32_function_arg_advance): Likewise.
4078         (nds32_init_cumulative_args): Likewise.
4079         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
4080         (NDS32_FIRST_GPR_REGNUM): Define.
4081         (NDS32_LAST_GPR_REGNUM): Define.
4082         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
4083         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
4084         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
4085         (machine_function): Use GRP-specific stuff.
4086
4087 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4088
4089         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
4090         (nds32_expand_epilogue): Likewise.
4091         (nds32_expand_prologue_v3push): Likewise.
4092         (nds32_expand_epilogue_v3pop): Likewise.
4093
4094 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4095
4096         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
4097         v3push/v3pop for variadic function.
4098         * config/nds32/nds32.md (prologue, epilogue): Likewise.
4099
4100 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4101
4102         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
4103         Check rtx for varargs implementation.
4104         (nds32_output_stack_pop): Likewise.
4105         * config/nds32/nds32-protos.h: Have a rtx argument for
4106         nds32_output_stack_push and nds32_output_stack_pop.
4107         * config/nds32/nds32.md: Likewise.
4108
4109 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4110
4111         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
4112         to check if FUNC is an interrupt service routine.
4113         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
4114
4115 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4116
4117         * config/nds32/nds32.h (machine_function): Add some fields for variadic
4118         arguments implementation.
4119
4120 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4121
4122         * config/nds32/nds32-predicates.c
4123         (nds32_valid_stack_push_pop): Rename to ...
4124         (nds32_valid_stack_push_pop_p): ... this.
4125         * config/nds32/nds32-protos.h: Likewise.
4126         * config/nds32/predicates.md: Likewise.
4127
4128 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4129
4130         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
4131         (nds32_emit_stack_v3push): ... this.
4132         (nds32_gen_stack_v3pop): Rename to ...
4133         (nds32_emit_stack_v3pop): ... this and consider CFA restore
4134         information.
4135
4136 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4137
4138         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
4139         (nds32_emit_stack_push_multiple): ... this.
4140         (nds32_gen_stack_pop_multiple): Rename to ...
4141         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
4142         information.
4143
4144 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4145
4146         PR target/61078
4147         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
4148         and add a second splitter to handle the remaining cases.
4149
4150 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
4151
4152         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
4153
4154 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
4155
4156         * cfgexpand.c (label_rtx_for_bb): Change type to
4157         hash_map<basic_block, rtx_code_label *> *.
4158         (expand_gimple_basic_block): Adjust.
4159         (pass_expand::execute): Likewise.
4160
4161 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
4162
4163         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
4164         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
4165         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
4166         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
4167         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
4168         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
4169         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
4170         of rtx.
4171
4172 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
4173
4174         * alloc-pool.c: Include coretypes.h.
4175         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
4176         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
4177         hash_set instead of htab.
4178         * ggc-page.c (in_gc): New variable.
4179         (ggc_free): Do nothing if a collection is taking place.
4180         (ggc_collect): Set in_gc appropriately.
4181         * ggc.h (gt_ggc_mx(const char *)): New function.
4182         (gt_pch_nx(const char *)): Likewise.
4183         (gt_ggc_mx(int)): Likewise.
4184         (gt_pch_nx(int)): Likewise.
4185         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
4186         (hash_map::hash_entry::pch_nx): Likewise.
4187         (hash_map::hash_entry::pch_nx_helper): Likewise.
4188 (hash_map::hash_map): Adjust.
4189 (hash_map::create_ggc): New function.
4190 (gt_ggc_mx): Likewise.
4191 (gt_pch_nx): Likewise.
4192         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
4193 (default_hashset_traits::pch_nx): Likewise.
4194 (hash_set::hash_entry::ggc_mx): Likewise.
4195 (hash_set::hash_entry::pch_nx): Likewise.
4196 (hash_set::hash_entry::pch_nx_helper): Likewise.
4197 (hash_set::hash_set): Adjust.
4198 (hash_set::create_ggc): New function.
4199 (hash_set::elements): Likewise.
4200 (gt_ggc_mx): Likewise.
4201 (gt_pch_nx): Likewise.
4202         * hash-table.h (hash_table::hash_table): Adjust.
4203 (hash_table::m_ggc): New member.
4204         (hash_table::~hash_table): Adjust.
4205         (hash_table::expand): Likewise.
4206         (hash_table::empty): Likewise.
4207 (gt_ggc_mx): New function.
4208         (hashtab_entry_note_pointers): Likewise.
4209 (gt_pch_nx): Likewise.
4210
4211 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4212
4213         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
4214         built-in definition.
4215         (XVCVUXDDP_SCALE): Likewise.
4216         (XVCVDPSXDS_SCALE): Likewise.
4217         (XVCVDPUXDS_SCALE): Likewise.
4218         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
4219         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
4220         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
4221         VSX_BUILTIN_XVCVDPUXDS_SCALE.
4222         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
4223         prototype.
4224         * config/rs6000/rs6000.c (real.h): New include.
4225         (rs6000_scale_v2df): New function.
4226         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
4227         (UNSPEC_VSX_XVCVUXDDP): Likewise.
4228         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
4229         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
4230         (vsx_xvcvsxddp_scale): New define_expand.
4231         (vsx_xvcvsxddp): New define_insn.
4232         (vsx_xvcvuxddp_scale): New define_expand.
4233         (vsx_xvcvuxddp): New define_insn.
4234         (vsx_xvcvdpsxds_scale): New define_expand.
4235         (vsx_xvcvdpsxds): New define_insn.
4236         (vsx_xvcvdpuxds_scale): New define_expand.
4237         (vsx_xvcvdpuxds): New define_insn.
4238         * doc/extend.texi (vec_ctf): Add new prototypes.
4239         (vec_cts): Likewise.
4240         (vec_ctu): Likewise.
4241         (vec_splat): Likewise.
4242         (vec_div): Likewise.
4243         (vec_mul): Likewise.
4244
4245 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4246
4247         PR target/62275
4248         * config/arm/neon.md
4249         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
4250         <v_cmp_result>): New pattern.
4251         * config/arm/iterators.md (NEON_VCVT): New int iterator.
4252         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
4253         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
4254         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
4255         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
4256         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
4257
4258 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4259
4260         PR target/62275
4261         * config/arm/iterators.md (FIXUORS): New code iterator.
4262         (VCVT): New int iterator.
4263         (su_optab): New code attribute.
4264         (su): Likewise.
4265         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
4266
4267 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4268
4269         * config/aarch64/predicates.md (aarch64_comparison_operation):
4270         New special predicate.
4271         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
4272         aarch64_comparison_operation instead of matching an operator.
4273         Update operand numbers.
4274         (csinc3<mode>_insn): Likewise.
4275         (*csinv3<mode>_insn): Likewise.
4276         (*csneg3<mode>_insn): Likewise.
4277         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
4278         * config/aarch64/aarch64.c (aarch64_get_condition_code):
4279         Return -1 instead of aborting on invalid condition codes.
4280         (aarch64_print_operand): Update aarch64_get_condition_code callsites
4281         to assert that the returned condition code is valid.
4282         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
4283
4284 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
4285
4286         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
4287         tree.def, and gimple.def
4288
4289 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
4290             Balaji V. Iyer  <balaji.v.iyer@intel.com>
4291             Igor Zamyatin  <igor.zamyatin@intel.com>
4292
4293         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
4294         (__cilkrts_cilk_for_64): Likewise.
4295         * cilk-common.c (declare_cilk_for_builtin): New function.
4296         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
4297         __cilkrts_cilk_for_64 bultins.
4298         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
4299         CILK_TI_F_LOOP_64.
4300         (cilk_for_32_fndecl): New define.
4301         (cilk_for_64_fndecl): Likewise.
4302         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
4303         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
4304         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
4305         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
4306         GF_OMP_FOR_COMBINED_INTO.
4307         * gimplify.c (gimplify_scan_omp_clauses): Added
4308         OMP_CLAUSE__CILK_FOR_COUNT_ case.
4309         (gimplify_adjust_omp_clauses): Ditto.
4310         (gimplify_omp_for): Added CILK_FOR case.
4311         (gimplify_expr): Ditto.
4312         * omp-low.c: Include cilk.h.
4313         (extract_omp_for_data): Set appropriate kind for
4314         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
4315         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
4316         (create_omp_child_function_name): Added second argument to handle
4317         cilk_for case.
4318         (cilk_for_check_loop_diff_type): New function.
4319         (expand_cilk_for_call): Likewise.
4320         (expand_cilk_for): Likewise.
4321         (create_omp_child_function): Set cilk_for_count; handle the cases when
4322         it is true; call create_omp_child_function_name with second argument.
4323         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
4324         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
4325         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
4326         * tree-nested.c (convert_nonlocal_omp_clauses): Added
4327         OMP_CLAUSE__CILK_FOR_COUNT_ case.
4328         (convert_local_omp_clauses): Ditto.
4329         * tree-pretty-print.c (dump_omp_clause): Added
4330         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
4331         (dump_generic_node): Added CILK_FOR case.
4332         * tree.c (omp_clause_num_ops): New element
4333         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
4334         (omp_clause_code_name): New element _Cilk_for_count_.
4335         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
4336         * tree.def: Add tree code for CILK_FOR.
4337
4338 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
4339
4340         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
4341         (ppc403-compare): Add "exts with dot" case.
4342         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
4343         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
4344         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
4345         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
4346         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
4347         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
4348         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
4349         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
4350         cell-cmp-microcoded): Similarly.
4351         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
4352         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
4353         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
4354         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
4355         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
4356         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
4357         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
4358         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
4359         (power6-compare): Add "exts with dot" case.
4360         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
4361         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
4362         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
4363
4364         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
4365         if avoiding Cell microcode.
4366         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
4367         (is_cracked_insn): Ditto.
4368         (insn_must_be_first_in_group): Ditto.
4369         * config/rs6000/rs6000.md (dot): Adjust comment.
4370         (cell_micro): Handle exts+dot.
4371         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
4372         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
4373         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
4374         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
4375         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
4376         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
4377         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
4378
4379 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
4380
4381         * config/rs6000/rs6000.md (QHSI): Delete.
4382         (EXTQI, EXTHI, EXTSI): New mode iterators.
4383         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
4384         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
4385         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
4386         9 anonymous instructions, and 8 splitters): Delete.
4387         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
4388         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
4389         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
4390         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
4391         *zero_extendsi<mode>2_dot2): New.
4392
4393 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
4394
4395         * config/rs6000/rs6000.md (any_extend): New code iterator.
4396         (u, su): New code attributes.
4397         (dmode, DMODE): New mode attributes.
4398         (<su>mul<mode>3_highpart): New.
4399         (*<su>mul<mode>3_highpart): New.
4400         (<su>mulsi3_highpart_le): New.
4401         (<su>muldi3_highpart_le): New.
4402         (<su>mulsi3_highpart_64): New.
4403         (<u>mul<mode><dmode>3): New.
4404         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
4405         splitters): Delete.
4406         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
4407         splitters): Delete.
4408
4409 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
4410
4411         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
4412         *mulsi3_internal2, and two splitters): Delete.
4413         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
4414         Delete.
4415         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
4416
4417 2014-09-02  Richard Biener  <rguenther@suse.de>
4418
4419         PR tree-optimization/62695
4420         * tree-ssa-structalias.c (find_func_clobbers): Add missing
4421         vector truncate.
4422
4423 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
4424
4425         PR target/62312
4426         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
4427
4428 2014-09-01  Andi Kleen  <ak@linux.intel.com>
4429
4430         * file-find.c (add_prefix_begin): Add.
4431         (do_add_prefix): Rename from add_prefix with first argument.
4432         (add_prefix): Add new wrapper.
4433         * file-find.h (add_prefix_begin): Add.
4434         * gcc-ar.c (main): Support -B option.
4435
4436 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
4437
4438         * genemit.c: Include dumpfile.h.
4439         (gen_split): Print name of splitter function to dump file.
4440
4441 2014-09-01  Richard Biener  <rguenther@suse.de>
4442
4443         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
4444         Use stack auto_vecs for constraint expressions.
4445         (find_func_aliases_for_call): Likewise.
4446         (find_func_aliases): Likewise.
4447         (find_func_clobbers): Likewise.
4448
4449 2014-09-01  Richard Biener  <rguenther@suse.de>
4450
4451         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
4452         operands vector in most cases.  Remove redundant code.
4453
4454 2014-09-01  Olivier Hainque  <hainque@adacore.com>
4455
4456         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
4457         $WIND_BASE instead of designating a harcoded arbitrary home dir.
4458         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
4459
4460 2014-09-01  Richard Biener  <rguenther@suse.de>
4461
4462         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
4463         copy_reference_ops_from_call, vn_nary_op_compute_hash,
4464         vn_reference_compute_hash, vn_reference_insert): Remove.
4465         (vn_reference_lookup_call): New function.
4466         * tree-ssa-sccvn.c (vn_reference_compute_hash,
4467         copy_reference_ops_from_ref, copy_reference_ops_from_call,
4468         vn_reference_insert, vn_nary_op_compute_hash): Make static.
4469         (create_reference_ops_from_call): Remove.
4470         (vn_reference_lookup_3): Properly update shared_lookup_references.
4471         (vn_reference_lookup_pieces): Assert that we updated
4472         shared_lookup_references properly.
4473         (vn_reference_lookup): Likewise.
4474         (vn_reference_lookup_call): New function.
4475         (visit_reference_op_call): Use it.  Avoid re-building the
4476         reference ops.
4477         (visit_reference_op_load): Remove redundant lookup.
4478         (visit_reference_op_store): Perform special tail-merging work
4479         only when possibly doing tail-merging.
4480         (visit_use): Likewise.
4481         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
4482
4483 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
4484
4485         PR target/62025
4486         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
4487         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
4488         (find_inc): Revert 2014-08-13 change.
4489
4490 2014-09-01  Marek Polacek  <polacek@redhat.com>
4491
4492         PR middle-end/61903
4493         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
4494         Change the type of V to unsigned HOST_WIDE_INT.
4495
4496 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4497
4498         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
4499         the size of byte markers.
4500         (do_shift_rotate): Fix confusion between host, target and marker byte
4501         size.
4502         (verify_symbolic_number_p): Likewise.
4503         (find_bswap_or_nop_1): Likewise.
4504         (find_bswap_or_nop): Likewise.
4505
4506 2014-09-01  Olivier Hainque  <hainque@adacore.com>
4507
4508         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
4509         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
4510
4511 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
4512
4513         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
4514         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
4515         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
4516
4517 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
4518
4519         PR sanitizer/61897
4520         PR sanitizer/62140
4521         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
4522         (build_check_stmt): Likewise.
4523         (instrument_strlen_call): Likewise.
4524         (asan_expand_check_ifn): Likewise and fix types.
4525         (maybe_cast_to_ptrmode): New function.
4526
4527 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
4528
4529         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
4530
4531 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
4532
4533         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
4534
4535 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
4536
4537         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
4538         prefix to function labels when generating fast indirect calls.
4539
4540 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
4541
4542         PR bootstrap/62304
4543
4544         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
4545         param back from rtx_insn * to rtx.  Rename param from "label" to
4546         "label_or_return", reintroducing "label" as an rtx_insn * after
4547         we've ensured it's not a RETURN.
4548         (first_active_target_insn): Likewise for return type and param;
4549         add a checked cast to rtx_insn * once we've ensured "insn" is not
4550         a RETURN.
4551         (steal_delay_list_from_target): Convert param "pnew_thread" back
4552         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
4553         with JUMP_LABEL.
4554         (own_thread_p): Convert param "thread" back from an rtx_insn * to
4555         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
4556         cast once we've established we're not dealing with a RETURN,
4557         renaming subsequent uses of "thread" to "thread_insn".
4558         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
4559         to JUMP_LABEL.
4560         (follow_jumps): Convert return type and param "label" from
4561         rtx_insn * back to rtx.  Move initialization of "value" to after
4562         the handling for ANY_RETURN_P, adding a checked cast there to
4563         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
4564         rename to "this_label_or_return", reintroducing "this_label" as
4565         an rtx_insn * once we've handled the case where it could be an
4566         ANY_RETURN_P.
4567         (fill_slots_from_thread): Rename param "thread" to
4568         "thread_or_return", converting from an rtx_insn * back to an rtx.
4569         Reintroduce name "thread" as an rtx_insn * local with a checked
4570         cast once we've handled the case of it being an ANY_RETURN_P.
4571         Convert local "new_thread" from an rtx_insn * back to an rtx.
4572         Add a checked cast when assigning to "trial" from "new_thread".
4573         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
4574         checked cast to rtx_insn * from "new_thread" when invoking
4575         get_label_before.
4576         (fill_eager_delay_slots): Convert locals "target_label",
4577         "insn_at_target" from rtx_insn * back to rtx.
4578         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
4579         (relax_delay_slots): Convert locals "trial", "target_label" from
4580         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
4581         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
4582         invoking update_block.
4583         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
4584         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
4585
4586         * resource.h (mark_target_live_regs): Undo erroneous conversion
4587         of second param of r214693, converting it back from rtx_insn * to
4588         rtx, since it could be a RETURN.
4589
4590         * resource.c (find_dead_or_set_registers): Similarly, convert
4591         param "jump_target" back from an rtx_insn ** to an rtx *, as we
4592         could be writing back a RETURN.  Rename local rtx_insn * "next" to
4593         "next_insn", and introduce "lab_or_return" as a local rtx,
4594         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
4595         (mark_target_live_regs): Undo erroneous conversion
4596         of second param of r214693, converting it back from rtx_insn * to
4597         rtx, since it could be a RETURN.  Rename it from "target" to
4598         "target_maybe_return", reintroducing the name "target" as a local
4599         rtx_insn * with a checked cast, after we've handled the case of
4600         ANY_RETURN_P.
4601
4602 2014-08-29  DJ Delorie  <dj@redhat.com>
4603
4604         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
4605         pointer size up to a power of two.
4606         * defaults.h (DWARF2_ADDR_SIZE): Round up.
4607         (POINTER_SIZE_UNITS): New, rounded up value.
4608         * dwarf2asm.c (size_of_encoded_value): Use it.
4609         (dw2_output_indirect_constant_1): Likewise.
4610         * expmed.c (init_expmed_one_conv): We now know the sizes of
4611         partial int modes.
4612         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
4613         * optabs.c (expand_float): Use precision, not size.
4614         (expand_fix): Likewise.
4615         * simplify-rtx (simplify_unary_operation_1): Likewise.
4616         * tree-dfa.c (get_ref_base_and_extent): Likewise.
4617         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
4618         (default_assemble_integer) Likewise.
4619         (dump_tm_clone_pairs): Likewise.
4620         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
4621         * var-tracking.c (adjust_mems): Allow partial-int modes also.
4622         (prepare_call_arguments): Likewise.
4623         * stor-layout.c (finalize_type_size): Preserve precision.
4624         (layout_type): Use precision, not size.
4625
4626         * expr.c (convert_move): If the target has an explicit converter,
4627         use it.
4628
4629 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
4630
4631         * gdbinit.in: Skip various inline functions in rtl.h when
4632         stepping.
4633
4634 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
4635
4636         PR bootstrap/62301
4637         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
4638
4639 2014-08-29  Richard Biener  <rguenther@suse.de>
4640
4641         PR tree-optimization/62291
4642         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
4643         exactly the vector size needed and use quick_push.
4644         (phi_translate_1): Adjust comment.
4645         (valid_in_sets): Remove block argument and remove pointless
4646         checking of NAMEs.
4647         (dependent_clean): Adjust for removal of block argument.
4648         (clean): Likewise.
4649         (compute_antic_aux): Likewise.
4650         (compute_partial_antic_aux): Likewise.
4651
4652 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4653             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4654             Anna Tikhonova  <anna.tikhonova@intel.com>
4655             Ilya Tocar  <ilya.tocar@intel.com>
4656             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4657             Ilya Verbin  <ilya.verbin@intel.com>
4658             Kirill Yukhin  <kirill.yukhin@intel.com>
4659             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4660
4661         * config/i386/sse.md
4662         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
4663         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
4664         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
4665         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
4666
4667 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4668             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4669             Anna Tikhonova  <anna.tikhonova@intel.com>
4670             Ilya Tocar  <ilya.tocar@intel.com>
4671             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4672             Ilya Verbin  <ilya.verbin@intel.com>
4673             Kirill Yukhin  <kirill.yukhin@intel.com>
4674             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4675
4676         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
4677         * config/i386/sse.md
4678         (define_mode_iterator VI4_128_8_256): New.
4679         (define_mode_iterator VI2_128_4_256): Ditto.
4680         (define_mode_iterator PMOV_DST_MODE): Rename into
4681         (define_mode_iterator PMOV_DST_MODE_1): this.
4682         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
4683         Use PMOV_DST_MODE_1 mode iterator.
4684         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
4685         Ditto.
4686         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
4687         Ditto.
4688         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
4689         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
4690         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
4691         (define_mode_iterator PMOV_DST_MODE_2): New.
4692         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
4693         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
4694         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
4695         Ditto.
4696         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
4697         (define_mode_attr pmov_dst_3): Ditto.
4698         (define_mode_attr pmov_dst_zeroed_3): Ditto.
4699         (define_mode_attr pmov_suff_3): Ditto.
4700         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
4701         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
4702         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
4703         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
4704         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
4705         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
4706         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
4707         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
4708         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
4709         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
4710         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
4711         (define_mode_attr pmov_dst_4): Ditto.
4712         (define_mode_attr pmov_dst_zeroed_4): Ditto.
4713         (define_mode_attr pmov_suff_4): Ditto.
4714         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
4715         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
4716         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
4717         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
4718         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
4719         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
4720         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
4721         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
4722         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
4723         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
4724         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
4725
4726 2014-08-29  Richard Biener  <rguenther@suse.de>
4727
4728         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
4729         NON_LVALUE_EXPR in gimple.
4730
4731 2014-08-29  Richard Biener  <rguenther@suse.de>
4732
4733         PR middle-end/62292
4734         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
4735         from previous refactoring.
4736         (gimple_fold_builtin_strncpy): Likewise.
4737
4738 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
4739
4740         PR bootstrap/62300
4741         * function.c (assign_parm_setup_reg): Remove erroneous checked
4742         cast to rtx_insn * on result of gen_extend_insn in favor of
4743         introducing a new local rtx "pat".
4744
4745 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
4746
4747         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
4748         to silence warning.
4749         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
4750
4751 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4752
4753         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
4754         (next_insn): Likewise.
4755         * emit-rtl.c (next_insn): Likewise.
4756         (previous_insn): Likewise.
4757         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
4758         "insn" and "next" from rtx to rtx_insn *.
4759         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
4760         "insn", "insn1", "vliw_start",  "prologue_end_note",
4761         "last_insn_in_packet".
4762
4763 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4764
4765         * shrink-wrap.h (active_insn_between): Strengthen both params from
4766         rtx to rtx_insn *.
4767         * function.c (active_insn_between): Likewise.
4768
4769 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4770
4771         * genattr.c (main): When writing out insn-attr.h, strengthen param
4772         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
4773         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
4774         writing out the definition of dfa_clear_single_insn_cache to the
4775         generated insn-automata.c
4776
4777 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4778
4779         * resource.h (clear_hashed_info_for_insn): Strengthen param from
4780         rtx to rtx_insn *.
4781         (incr_ticks_for_insn): Likewise.
4782         (init_resource_info): Likewise.
4783
4784         * resource.c (init_resource_info): Likewise.
4785         (clear_hashed_info_for_insn): Likewise.
4786         (incr_ticks_for_insn): Likewise.
4787
4788         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
4789         rtx to rtx_insn *.
4790         (steal_delay_list_from_target): Use methods of "seq".
4791         (try_merge_delay_insns): Use methods of "merged_insns".
4792         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
4793         (reorg_redirect_jump): Likewise for param "jump".
4794
4795 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4796
4797         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
4798         rtx to rtx_insn *.
4799         * config/s390/s390.c (s390_split_branches): Eliminate top-level
4800         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
4801         "set_insn".
4802         (s390_mainpool_finish): In three places, split out a local rtx
4803         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
4804         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
4805          and split another local rtx "insn" out into rtx "pat" and
4806         rtx_insn * "insn".
4807         * config/sh/sh.c (output_branchy_insn): Rather than working
4808         directly on operands[9], introduce local rtx_code_label *
4809         variables named "lab" in two places, working on them, and then
4810         assigning them to operands[9], so that the intervening operations
4811         are known by the type system to be on insns.
4812
4813 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4814
4815         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
4816         const rtx_insn *.
4817
4818         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
4819         in invocation of INSN_HAS_LOCATION.
4820
4821 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4822
4823         * config/rs6000/altivec.h (vec_xl): New #define.
4824         (vec_xst): Likewise.
4825         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
4826         (XXSPLTD_V2DI): Likewise.
4827         (DIV_V2DI): Likewise.
4828         (UDIV_V2DI): Likewise.
4829         (MUL_V2DI): Likewise.
4830         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4831         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
4832         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
4833         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
4834         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
4835         (UNSPEC_VSX_DIVSD): Likewise.
4836         (UNSPEC_VSX_DIVUD): Likewise.
4837         (UNSPEC_VSX_MULSD): Likewise.
4838         (vsx_mul_v2di): New insn-and-split.
4839         (vsx_div_v2di): Likewise.
4840         (vsx_udiv_v2di): Likewise.
4841         (vsx_xxspltd_<mode>): New insn.
4842
4843 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4844
4845         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
4846         NEXT_INSN.
4847         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
4848         (NEXT_INSN): Likewise.
4849         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
4850         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
4851         const rtx_insn *.
4852         (no_labels_between_p): Likewise for both params.
4853
4854         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
4855         cast when using NEXT_INSN on operands[2].
4856         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
4857         "insn" from rtx to rtx_insn *, adding a checked cast.
4858         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
4859         rtx_insn *.
4860         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
4861         for third param.
4862         (arc_text_label): Likewise for param "insn".
4863         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
4864         "insn".
4865         (arc_ccfsm_record_condition): Likewise for param "jump".
4866         (arc_text_label): Likewise for local "label".
4867         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
4868         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
4869         a method for typesafety.  Add a checked cast.
4870         * config/arc/constraints.md (Clb): Add a checked cast when getting
4871         the CODE_LABEL from a LABEL_REF.
4872         * config/arm/arm.c (require_pic_register): Strengthen locals
4873         "seq", "insn" from rtx to rtx_insn *.
4874         (create_fix_barrier): Likewise for locals "selected", "next".
4875         (thumb1_reorg): Likewise for locals "prev", "insn".
4876         (arm_expand_prologue): Likewise for local "last".
4877         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
4878         operands[0].
4879         (thumb2_output_casesi): Likewise for operands[2].
4880         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
4881         strengthen local "insn" from rtx to rtx_insn *.
4882         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
4883         type and param "insn".
4884         (find_prev_insn_start): Likewise.
4885         (hwloop_optimize): Likewise for locals "insn", "last_insn",
4886         "prev".
4887         (gen_one_bundle): Likewise for loal "t".
4888         (find_load): Likewise for param "insn".
4889         (workaround_speculation): Likewise for locals "insn", "next",
4890         "target", "next_tgt".
4891         * config/c6x/c6x.c (assign_reservations): Likewise for both params
4892         and for locals "insn", "within", "last".
4893         (count_unit_reqs): Likewise for params "head", "tail" and local
4894         "insn".
4895         (try_rename_operands): Likewise for params "head", "tail".
4896         (reshuffle_units): Likewise for locals "head", "tail", "insn".
4897         (struct c6x_sched_context): Likewise for fields
4898         "last_scheduled_insn", "last_scheduled_iter0".
4899         (init_sched_state): Replace NULL_RTX with NULL.
4900         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
4901         to rtx_insn *.
4902         (undo_split_delayed_nonbranch): Likewise for param and for local
4903         "prev".
4904         (conditionalize_after_sched): Likewise for local "insn".
4905         (bb_earliest_end_cycle): Likewise.
4906         (filter_insns_above): Likewise for locals "insn", "next".
4907         (hwloop_optimize): Remove redundant checked cast.
4908         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
4909         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
4910         NULL_RTX with NULL.
4911         (cris_simple_epilogue): Likewise.
4912         (cris_expand_prologue): Likewise.
4913         (cris_expand_epilogue): Likewise.
4914         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
4915         local "insn" from rtx to rtx_insn *.
4916         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
4917         (struct frv_packet_group): Likewise for the elements within array
4918         fields "insns", "sorted", and for field "nop".
4919         (frv_packet): Likewise for the elements within array field
4920         "insns".
4921         (frv_add_insn_to_packet): Likewise for param "insn".
4922         (frv_insert_nop_in_packet): Likewise for param "insn" and local
4923         "last".
4924         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
4925         (frv_sort_insn_group_1): Likewise for local "insn".
4926         (frv_optimize_membar_local): Likewise.
4927         (frv_align_label): Likewise for locals "x", "last", "barrier",
4928         "label".
4929         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
4930         local.
4931         (ia64_sched_init): Likewise for local "insn".
4932         (scheduled_good_insn): Likewise for param "last".
4933         (struct _ia64_sched_context): Likewise for field
4934         "last_scheduled_insn".
4935         (ia64_init_sched_context): Replace NULL_RTX with NULL.
4936         (struct bundle_state): Likewise for field "insn".
4937         (issue_nops_and_insn): Likewise for param "insn".
4938         (get_next_important_insn): Likewise for return type and both
4939         params.
4940         (ia64_add_bundle_selector_before): Likewise for param "insn".
4941         (bundling): Likewise for params "prev_head_insn", "tail" and
4942         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
4943         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
4944         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
4945         Strengthen final param from rtx to rtx_insn *.
4946         (iq2000_move_1word): Likewise for second param.
4947         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
4948         param "cur_insn" and local "next_insn".
4949         (iq2000_move_1word): Likewise for param "insn".
4950         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
4951         casts when using NEXT_INSN on operands[1].
4952         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
4953         "insn" from rtx to rtx_insn *.
4954         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
4955         "x", introducing local rtx_insn * "insn" for when working with the
4956         CODE_LABEL of the LABEL_REF.
4957         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
4958         rtx_insn *.
4959         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
4960         param.
4961         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
4962         type.
4963         (conditionalize_block): Likewise for return type and param.
4964         (mcore_is_dead): Likewise for param "first" and local "insn".
4965         (emit_new_cond_insn): Likewise for return type.
4966         (conditionalize_block): Likewise for return type, param, and
4967         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
4968         "newinsn".
4969         (conditionalize_optimization): Likewise for local "insn".
4970         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
4971         using NEXT_INSN.
4972         * config/microblaze/microblaze.md: Add checked casts when using
4973         NEXT_INSN.
4974         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
4975         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
4976         and rtx_insn * "insn".
4977         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
4978         checked cast when using NEXT_INSN on operands[2].
4979         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
4980         local "insn" from rtx to rtx_insn *.
4981         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
4982         Likewise.
4983         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
4984         Add a checked cast when using NEXT_INSN on operands[1].
4985         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
4986         rtx to rtx_insn *.
4987         (pa_output_cbranch): Likewise for final param.
4988         (pa_output_lbranch): Likewise for second param.
4989         (pa_output_bb): Likewise for third param.
4990         (pa_output_bvb): Likewise.
4991         (pa_output_dbra): Likewise for second param.
4992         (pa_output_movb): Likewise.
4993         (pa_output_parallel_movb): Likewise.
4994         (pa_output_parallel_addb): Likewise.
4995         (pa_output_millicode_call): Likewise for first param.
4996         (pa_output_mul_insn): Likewise for second param.
4997         (pa_output_div_insn): Likewise for third param.
4998         (pa_output_mod_insn): Likewise for second param.
4999         (pa_jump_in_call_delay): Likewise for param.
5000         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
5001         (pa_output_div_insn): Likewise.
5002         (pa_output_mod_insn): Likewise.
5003         (pa_output_cbranch): Likewise.
5004         (pa_output_lbranch): Likewise.
5005         (pa_output_bb): Likewise.
5006         (pa_output_bvb): Likewise.
5007         (pa_output_dbra): Likewise.
5008         (pa_output_movb): Likewise.
5009         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
5010         to simplify and for typesafety.
5011         (pa_output_call): Use method of rtx_sequence *.
5012         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
5013         (pa_jump_in_call_delay): Likewise.
5014         (pa_output_parallel_movb): Likewise.
5015         (pa_output_parallel_addb): Likewise.
5016         (pa_following_call): Likewise.
5017         (pa_combine_instructions): Likewise for locals "anchor",
5018         "floater".
5019         (pa_can_combine_p): Likewise for params "anchor", "floater" and
5020         locals "start", "end".
5021         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
5022         param "insn" and local "local_insn".
5023         (picochip_final_prescan_insn): Likewise for local "local_insn".
5024         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
5025         local "insn".
5026         (uses_TOC): Likewise.
5027         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
5028         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
5029         splitting out to more tightly-scoped locals, 3 as rtx and one as
5030         rtx_insn *.
5031         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
5032         to rtx_insn *.
5033         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
5034         where needed.
5035         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
5036         to rtx_insn *.
5037         (fixup_addr_diff_vecs): Likewise.
5038         (reg_unused_after): Likewise for param 2.
5039         (sh_can_redirect_branch): Likewise for both params.
5040         (check_use_sfunc_addr): Likewise for param 1.
5041         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
5042         (find_barrier): Likewise for local "last_got".
5043         (gen_block_redirect): Likewise for return type, param "jump" and
5044         locals "prev", "scan", "next", "insn".
5045         (struct far_branch): Likewise for fields "near_label",
5046         "insert_place", "far_label".
5047         (gen_far_branch): Likewise for local "jump".
5048         (fixup_addr_diff_vecs): Likewise for param "first" and locals
5049         "insn", "prev".
5050         (barrier_align): Likewise for param and for locals "prev", "x".
5051         Introduce local rtx_sequence * "prev_seq" and use insn method for
5052         typesafety and clarity.
5053         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
5054         (get_dest_uid): Likewise for local "dest".
5055         (split_branches): Likewise for locals "next", "beyond", "label",
5056         "block", "far_label".  Add checked casts when assigning to
5057         bp->far_label and "far_label".
5058         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
5059         (sequence_insn_p): Likewise.
5060         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
5061         more loop-scoped rtx "insn" when walking LABEL_REFS.
5062         (sh_can_redirect_branch): Strengthen both params from rtx to
5063         rtx_insn *.
5064         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
5065         new local rtx_sequence * "seq" via a dyn_cast, and use a method
5066         for clarity and typesafety.
5067         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
5068         "insn" from rtx to rtx_insn *.
5069         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
5070         when using NEXT_INSN on the CODE_LABEL in operands[2].
5071         (define_insn "casesi_worker_2"): Likewise.
5072         (define_insn "casesi_shift_media"): Likewise.
5073         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
5074         operands[3].
5075         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
5076         Strengthen field "insn" from rtx to rtx_insn *.
5077         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
5078         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
5079         param "start_insn" and local "start_insn".
5080         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
5081         field "insn".
5082         (find_set_of_reg_bb): Likewise for param "insn".
5083         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
5084         (trace_reg_uses): Likewise for param "start_insn".
5085         (sh_treg_combine::cbranch_trace): Likewise for field
5086         "cbranch_insn".
5087         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
5088         param "insn".
5089         (sh_treg_combine::record_set_of_reg): Likewise for param
5090         "start_insn" and local "i".
5091         (sh_treg_combine::can_remove_cstore): Likewise for local
5092         "prev_insn".
5093         (sh_treg_combine::try_optimize_cbranch): Likewise for param
5094         "insn".
5095         (sh_treg_combine::execute): Likewise for local "i".
5096         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
5097         param.
5098         (sparc_check_64): Likewise for second param.
5099         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
5100         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
5101         dyn_cast, using its insn method for typesafety and clarity.
5102         (empty_delay_slot): Strengthen param "insn" from rtx to
5103         rtx_insn *.
5104         (set_extends): Likewise.
5105         (sparc_check_64): Likewise.
5106         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
5107         for locals "seq", "last_insn".
5108         (combine_bnp): Likewise for param "insn".
5109         (xstormy16_reorg): Likewise for local "insn".
5110         * config/v850/v850.c (substitute_ep_register): Likewise for params
5111         "first_insn", "last_insn" and local "insn".
5112         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
5113         elements of "regs" array, and local "insn".
5114         * except.c (emit_note_eh_region_end): Likewise for param "insn".
5115         * final.c (final_sequence): Strengthen this global from rtx to
5116         rtx_sequence *.
5117         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
5118         rtx_insn *.
5119         (final_scan_insn): Update assignment to "final_sequence" to be
5120         from "seq", the cast version of "body", for type-safety.
5121         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
5122         "insns" from rtx to rtx_insn *.
5123         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
5124         * genattr.c (main): When writing out generated insn-attr.h,
5125         strengthen params 1 and 3 of eligible_for_delay,
5126         eligible_for_annul_true, eligible_for_annul_false from rtx to
5127         rtx_insn *.
5128         * genattrtab.c (write_eligible_delay): Likewise when writing out
5129         generated insn-attrtab.c; also local "insn" the generated
5130         functions.
5131         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
5132         to rtx_insn *.
5133         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
5134         "start_label" from rtx to rtx_insn *.
5135         * ira.c (decrease_live_ranges_number): Likewise for local "p".
5136         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
5137         "insns" and local "insn".
5138         (validate_equiv_mem): Likewise for param "start" and local "insn".
5139         (memref_used_between_p): Likewise for params "start", "end" and
5140         local "insn".
5141         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
5142         final param.
5143         * loop-doloop.c (doloop_optimize): Within region guarded by
5144         INSN_P (doloop_pat), introduce a new local rtx_insn *
5145         "doloop_insn" via a checked cast, and use it for typesafety,
5146         eventually writing the value back into doloop_pat.
5147         * output.h (final_sequence): Strengthen this global from rtx to
5148         rtx_sequence *.
5149         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
5150         reintroducing "insn" as an rtx_insn * via a checked cast.
5151         Strengthen param "attempt" and local "new_insn"from rtx to
5152         rtx_insn *.
5153         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
5154         to rtx_insn *.
5155         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
5156         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
5157         "p" in favor of more tightly-scoped replacements, sometimes rtx
5158         and sometimes rtx_insn *, as appropriate.
5159         (delete_output_reload): Eliminate top-level rtx "i1", splitting
5160         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
5161         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
5162         local "trial" from rtx to rtx_insn *.
5163         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
5164         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
5165         rtx_sequence * and use methods for clarity and typesafety.
5166         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
5167         rtx to rtx_insn *.  Strenghten local "li" from rtx to
5168         rtx_insn_list * and use its methods for clarity and typesafety.
5169         (steal_delay_list_from_target): Strengthen param "insn" from rtx
5170         to rtx_insn *.
5171         (steal_delay_list_from_fallthrough): Likewise.
5172         (try_merge_delay_insns): Likewise for param "thread" and locals
5173         "trial", "next_trial", "delay_insn".
5174         (redundant_insn): Likewise for param "target" and local "trial".
5175         (own_thread_p): Likewise for param "thread" and locals
5176         "active_insn", "insn".
5177         (get_label_before): Likewise for param "insn".
5178         (fill_simple_delay_slots): Likewise for local "new_label"; use
5179         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
5180         (label_before_next_insn): Strengthen return type and local "insn"
5181         from rtx to rtx_insn *.
5182         (relax_delay_slots): Likewise for locals "other", "tmp".
5183         (make_return_insns): Likewise for param "first" and locals "insn",
5184         "jump_insn", "prev".  Move declaration of "pat" to its assignment
5185         and strengthen from rtx to rtx_sequence *.  Use its methods for
5186         clarity and typesafety.
5187         * rtlanal.c (no_labels_between_p): Strengthen params from
5188         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
5189         rtx_insn *.
5190         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
5191         from const_rtx to const rtx_insn *.
5192         (reg_set_between_p): Rename param "from_insn" to
5193         "uncast_from_insn", and reintroduce "from_insn" as a
5194         const rtx_insn * via a checked cast.
5195         (modified_between_p): Likewise for param "start" as "uncast_start".
5196         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
5197         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
5198         "tmp", head" from rtx to rtx_insn *.
5199         (recompute_rev_top_order): Likewise for local "insn".
5200         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
5201         * store-motion.c (build_store_vectors): Likewise for local "insn".
5202         Strengthen local "st" from rtx to rtx_insn_list * and use methods
5203         for clarity and typesafety.
5204         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
5205         rtx to rtx_insn *.
5206         (computation_cost): Likewise for local "seq".
5207         (get_address_cost): Likewise.
5208
5209 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
5210
5211         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
5212         const rtx_insn *.
5213         (label_is_jump_target_p): Likewise for second param.
5214
5215         * rtlanal.c (tablejump_p): Likewise for param "insn".
5216         (label_is_jump_target_p): Likewise for param "jump_insn".
5217
5218 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
5219
5220         * rtl.h (find_first_parameter_load): Strengthen return type and
5221         both params from rtx to rtx_insn *.
5222         * rtlanal.c (find_first_parameter_load): Strengthen return type,
5223         both params and locals "before", "first_set" from rtx to
5224         rtx_insn *.  Remove now-redundant cast.
5225         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
5226
5227 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
5228
5229         * rtl.h (find_last_value): Delete.
5230         * rtlanal.c (find_last_value): Delete.
5231
5232 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
5233
5234         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
5235         from rtx to rtx_insn *.
5236         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
5237         rtx "note" with new local rtx_insn * "new_head" when calculating
5238         head insn of new basic block.
5239         * combine.c (combine_split_insns): Strengthen return type and local
5240         "ret" from rtx to rtx_insn *.
5241         (likely_spilled_retval_p): Likewise for locals "use" and "p".
5242         (try_combine): Eliminate local "m_split", splitting into new
5243         locals "m_split_insn" and "m_split_pat".
5244         (find_split_point): Strengthen local "seq" from rtx into
5245         rtx_insn *.
5246         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
5247         locals "label", "branch".
5248         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
5249         for local "insn".
5250         (define_expand "umulsi3_highpart"): Likewise for local "insn".
5251         * dse.c (note_add_store_info): Likewise for fields "first",
5252         "current".
5253         (note_add_store): Likewise for local "insn".
5254         (emit_inc_dec_insn_before): Likewise for locals "insn",
5255         "new_insn", "cur".
5256         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
5257         (replace_read): Likewise for locals "insns", "this_insn".
5258         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
5259         (notice_eh_throw): Likewise for param "insn".
5260         (before_next_cfi_note): Likewise for return type, param, and local
5261         "prev".
5262         (connect_traces): Likewise for local "note".
5263         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
5264         (verify_rtl_sharing): Likewise.
5265         (unshare_all_rtl_in_chain): Likewise for param "insn".
5266         (get_first_nonnote_insn): Likewise for local "insn".
5267         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
5268         "seq" and use its methods to clarify things.
5269         (next_insn): Strengthen return type from rtx to rtx_insn *.
5270         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
5271         local rtx_insn * using a checked cast, dropping a checked cast
5272         made redundant by this change.  Use a cast to and method of
5273         rtx_sequence to clarify the code.
5274         (previous_insn): Rename param "insn" to "uncast_insn" and
5275         reintroduce "insn" as a local rtx_insn * using a checked cast,
5276         dropping a checked cast made redundant by this change.  Use a cast
5277         to and method of rtx_sequence to clarify the code.
5278         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
5279         reintroduce "insn" as a local rtx_insn * using a checked cast,
5280         dropping a checked cast made redundant by this change.
5281         (next_nonnote_insn_bb): Likewise.
5282         (prev_nonnote_insn): Likewise.
5283         (prev_nonnote_insn_bb): Likewise.
5284         (next_nondebug_insn): Likewise.
5285         (prev_nondebug_insn): Likewise.
5286         (next_nonnote_nondebug_insn): Likewise.
5287         (prev_nonnote_nondebug_insn): Likewise.
5288         (next_real_insn): Likewise.
5289         (prev_real_insn): Likewise.
5290         (next_active_insn): Likewise.
5291         (prev_active_insn): Likewise.
5292         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
5293         clarity.
5294         (prev_cc0_setter): Likewise.
5295         (try_split): Rename param "trial" to "uncast_trial" and
5296         reintroduce "insn" as a local rtx_insn * using a checked cast,
5297         dropping checked casts made redundant by this change.
5298         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
5299         rtx to rtx_insn *.
5300         (remove_insn): Rename param "insn" to "uncast_insn" and
5301         reintroduce "insn" as a local rtx_insn * using a checked cast.
5302         (emit_pattern_after_setloc): Likewise for param "after", as
5303         "uncast_after".
5304         (emit_pattern_after): Likewise.  Strengthen local "prev" from
5305         rtx to rtx_insn *.
5306         (emit_pattern_before_setloc): Rename param "before" to
5307         "uncast_before" and reintroduce "before" as a local rtx_insn *
5308         using a checked cast.  Strengthen locals "first", "last" from
5309         rtx to rtx_insn *.
5310         (emit_pattern_before): Likewise rename/cast param "before" to
5311         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
5312         * except.c (copy_reg_eh_region_note_forward): Strengthen param
5313         "first" and local "insn" from rtx to rtx_insn *.
5314         (copy_reg_eh_region_note_backward): Likewise for param "last"
5315         and local "insn".
5316         * expr.c (fixup_args_size_notes): Rename param "last" to
5317         "uncast_last" and reintroduce "last" as a local rtx_insn *
5318         using a checked cast.  Strengthen local "insn" from rtx to
5319         rtx_insn *.
5320         * function.c (set_insn_locations): Strengthen param "insn" from
5321         rtx to rtx_insn *.
5322         (record_insns): Likewise for param "insns" and local "tmp".
5323         (active_insn_between): Rename param "tail" to
5324         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
5325         using a checked cast.
5326         (thread_prologue_and_epilogue_insns): Split out top-level local
5327         rtx "seq" into three different rtx_insn * locals.  Strengthen
5328         local "prologue_seq" from rtx to rtx_insn *.
5329         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
5330         from rtx to rtx_insn *.
5331         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
5332         (priority): Likewise for locals "prev_first", "twin".
5333         (setup_insn_max_reg_pressure): Likewise for param "after".
5334         (sched_setup_bb_reg_pressure_info): Likewise.
5335         (no_real_insns_p): Strengthen params from const_rtx to
5336         const rtx_insn *.
5337         (schedule_block): Strengthen local "next_tail" from rtx to
5338         rtx_insn *.
5339         * ifcvt.c (find_active_insn_before): Strengthen return type and
5340         param "insn" from rtx to rtx_insn *.
5341         (find_active_insn_after): Likewise.
5342         (cond_exec_process_insns): Likewise for param "start" and local "insn".
5343         (cond_exec_process_if_block): Likewise for locals "then_start",
5344         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
5345         (noce_process_if_block): Likewise for local "jump".
5346         (merge_if_block): Likewise for two locals named "end".
5347         (cond_exec_find_if_block): Likewise for local "last_insn".
5348         * jump.c (delete_related_insns): Rename param "insn" to
5349         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
5350         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
5351         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
5352         NULL.
5353         (split_reg): Likewise.
5354         * lra.c (lra_process_new_insns): Likewise.
5355         * modulo-sched.c (permute_partial_schedule): Strengthen param
5356         "last" from rtx to rtx_insn *.
5357         * optabs.c (add_equal_note): Likewise for param "insns" and local
5358         "last_insn".
5359         (expand_binop_directly): Add checked casts to rtx_insn * within
5360         NEXT_INSN (pat) uses.
5361         (expand_unop_direct): Likewise.
5362         (maybe_emit_unop_insn): Likewise.
5363         * recog.c (peep2_attempt): Strengthen locals "last",
5364         "before_try", "x" from rtx to rtx_insn *.
5365         * reorg.c (optimize_skip): Strengthen return type and local
5366         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
5367         and locals "trial", "next_trial" from rtx to rtx_insn *.
5368         * resource.c (next_insn_no_annul): Strengthen return type and
5369         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
5370         rtx_sequence to clarify the code.
5371         (mark_referenced_resources): Add a checked cast to rtx_insn *
5372         within PREV_INSN (x).
5373         (find_dead_or_set_registers): Strengthen return type, param
5374         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
5375         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
5376         to rtx_insn **.
5377         (mark_target_live_regs): Strengthen params "insns" and "target",
5378         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
5379         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
5380         the code.
5381         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
5382         from rtx to rtx_insn *.
5383         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
5384         from rtx to rtx_insn *.
5385         (copy_reg_eh_region_note_backward): Likewise.
5386         (unshare_all_rtl_in_chain): Likewise for sole param.
5387         (dump_rtl_slim): Strengthen second and third params from const_rtx
5388         to const rtx_insn *.
5389         * sched-deps.c (sched_free_deps): Strengthen params "head" and
5390         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
5391         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
5392         "next_tail" from rtx to rtx_insn *.
5393         (begin_move_insn): Likewise for local "next".
5394         * sched-int.h (sched_free_deps): Likewise for first and second
5395         params.
5396         (no_real_insns_p): Strengthen both params from const_rtx to
5397         const rtx_insn *.
5398         (sched_setup_bb_reg_pressure_info): Strengthen second params from
5399         rtx to rtx_insn *.
5400         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
5401         "next_tail".
5402         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
5403         and locals "insn", "tail" from const_rtx to const rtx_insn *.
5404         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
5405         rtx_insn *.
5406         (debug_rtl_slim): Strengthen params "first" and "last" from
5407         const_rtx to const rtx_insn *.
5408         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
5409         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
5410         (convert_to_simple_return): Likewise for param "returnjump".
5411         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
5412         "prologue_seq".
5413         (convert_to_simple_return): Likewise for param "returnjump".
5414         * valtrack.c (propagate_for_debug): Likewise for params
5415         "insn", "last".
5416         * valtrack.h (propagate_for_debug): Likewise for second param.
5417
5418 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
5419
5420         * output.h (insn_current_reference_address): Strengthen param
5421         from rtx to rtx_insn *.
5422         * final.c (insn_current_reference_address): Likewise.
5423
5424 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
5425
5426         * basic-block.h (inside_basic_block_p): Strengthen param from
5427         const_rtx to const rtx_insn *.
5428         * cfgbuild.c (inside_basic_block_p): Likewise.
5429
5430 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
5431
5432         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
5433         rtx_insn *.
5434         (get_trace_info): Likewise for param "insn".
5435         (save_point_p): Likewise.
5436         (maybe_record_trace_start): Likewise for both params.
5437         (maybe_record_trace_start_abnormal): Likewise.
5438         (create_trace_edges): Likewise for sole param and for three of the
5439         locals named "lab".
5440         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
5441         to rtx_insn *, and update a call to pat->element to pat->insn.
5442
5443 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
5444
5445         * function.h (struct expr_status): Convert field "x_forced_labels"
5446         from rtx_expr_list * to rtx_insn_list *.
5447
5448         * cfgbuild.c (make_edges): Convert local "x" from an
5449         rtx_expr_list * to an rtx_insn_list *, replacing use of
5450         "element" method with "insn" method.
5451         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
5452         * except.c (sjlj_emit_dispatch_table): Replace use of
5453         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
5454         forced_labels.
5455         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
5456         rtx_expr_list * to an rtx_insn_list *, replacing use of
5457         "element" method with "insn" method.
5458         * reload1.c (set_initial_label_offsets): Likewise for local "x".
5459         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
5460         rtx_insn *, adding a checked cast.  Replace use of
5461         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
5462         forced_labels.
5463         (expand_label): Likewise for local "label_r".
5464
5465 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
5466
5467         * function.h (struct rtl_data): Convert field
5468         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
5469         rtx_insn_list *.
5470         * rtl.h (remove_node_from_insn_list): New prototype.
5471
5472         * builtins.c (expand_builtin): When prepending to
5473         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
5474         gen_rtx_EXPR_LIST.
5475         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
5476         to rtx_insn_list *, and use its "insn" method rather than
5477         "element" method.
5478         * cfgrtl.c (delete_insn): Use new function
5479         remove_node_from_insn_list rather than
5480         remove_node_from_expr_list.
5481         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
5482         to rtx_insn_list *, and use its "insn" method rather than
5483         "element" method.
5484         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
5485         * reload1.c (set_initial_label_offsets): Likewise for local "x".
5486         * rtlanal.c (remove_node_from_insn_list): New function, adapted
5487         from remove_node_from_expr_list.
5488         * stmt.c (expand_label): When prepending to
5489         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
5490         gen_rtx_EXPR_LIST.
5491
5492 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
5493
5494         * function.h (struct rtl_data): Strengthen fields "x_return_label"
5495         and "x_naked_return_label" from rtx to rtx_code_label *.
5496
5497 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
5498
5499         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
5500         (SET_NEXT_INSN): Likewise.
5501         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
5502
5503         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
5504         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
5505         to split out the SEQUENCE from local "bundle", strengthening the
5506         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
5507         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
5508         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
5509         and the type of the elements of the "slot" array from rtx to
5510         rtx_insn *.
5511         (reorg_split_calls): Likewise for locals "insn" and "next", and
5512         the type of the elements of the "slot" array.
5513
5514         * config/frv/frv.c (frv_nops): Likewise for the elements of this
5515         array.
5516         (frv_function_prologue): Likewise for locals "insn", "next",
5517         "last_call".
5518         (frv_register_nop): Introduce a local "nop_insn" to be the
5519         rtx_insn * containing rtx "nop".
5520
5521         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
5522         used as an insn and sometimes as a pattern, so rename it to
5523         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
5524         using it where dealing with the core insn.
5525
5526         * config/picochip/picochip.c (reorder_var_tracking_notes):
5527         Strengthen locals "insn", "next", "last_insn", "queue",
5528         "next_queue", "prev" from rtx to rtx_insn *.
5529
5530         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
5531         the second param is an rtx_insn ** rather than an rtx **.
5532         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
5533         from rtx to rtx_sequence *, and introduce local named "sequence",
5534         using methods of rtx_sequence to clarify the code.
5535         (remove_insn): Introduce local rtx_sequence * named "sequence" and
5536         use its methods.
5537         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
5538         Rename param "after" to "uncast_after", reintroducing "after" as a
5539         local rtx_insn * with a checked cast.
5540         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
5541         reintroducing "after" as a local rtx_insn * with a checked cast.
5542         Strengthen local "last" from rtx to rtx_insn * and remove the
5543         now-redundant checked casts.
5544         (copy_delay_slot_insn): Strengthen return type and param from rtx
5545         to rtx_insn *.
5546
5547         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
5548         "last" from rtx to rtx_insn *.
5549
5550 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
5551
5552         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
5553         param from rtx to rtx_insn *.
5554
5555         * emit-rtl.c (copy_delay_slot_insn): Likewise.
5556
5557         * reorg.c (skip_consecutive_labels): Strengthen return type, param
5558         and local "insn" from rtx to rtx_insn *.
5559         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
5560         (unfilled_slots_next): Likewise.
5561         (function_return_label): Strengthen from rtx to rtx_code_label *.
5562         (function_simple_return_label): Likewise.
5563         (first_active_target_insn): Strengthen return type and param from
5564         rtx to rtx_insn *.
5565         (find_end_label): Strengthen return type from rtx to
5566         rtx_code_label *; strengthen locals as appropriate.
5567         (emit_delay_sequence): Strengthen return type, param "insn" and
5568         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
5569         and local "li" from rtx to rtx_insn_list *, using methods of
5570         rtx_insn_list for clarity and typesafety.
5571         (add_to_delay_list): Strengthen return type and param "insn" from
5572         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
5573         rtx_insn_list * and use methods of rtx_insn_list.
5574         (delete_from_delay_slot): Strengthen return type, param "insn",
5575         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
5576         Strengthen local "seq" from rtx to rtx_sequence *, and local
5577         "delay_list" from rtx to rtx_insn_list *, using methods of
5578         rtx_sequence for clarity and type-safety.
5579         (delete_scheduled_jump): Add checked cast when invoking
5580         delete_from_delay_slot.  Strengthen local "trial" from rtx to
5581         rtx_insn *.
5582         (optimize_skip): Strengthen return type and local "delay_list"
5583         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
5584         rtx_insn *.
5585         (steal_delay_list_from_target): Strengthen return type, param
5586         "delay_list" and local "new_delay_list" from rtx to
5587         rtx_insn_list *.  Strengthen param "seq" from rtx to
5588         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
5589         rtx_insn **.
5590         Split out local "temp" into multiple more-tightly scoped locals:
5591         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
5592         of rtx_insn_list and rtx_sequence for clarity and typesafety.
5593         Strengthen locals named "trial" from rtx to rtx_insn *.
5594         (steal_delay_list_from_fallthrough): Strengthen return type and
5595         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
5596         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
5597         Strengthen local "trial" from rtx to rtx_insn *.
5598         (try_merge_delay_insns): Strength local "merged_insns" from rtx
5599         to rtx_insn_list * and use its methods.  Strengthen local "pat"
5600         from rtx to rtx_sequence * and use its methods.  Strengthen locals
5601         "dtrial" and "new_rtx" from rtx to rtx_insn *.
5602         (get_label_before): Strengthen return type and local "label" from
5603         rtx to rtx_insn *.
5604         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
5605         "next_trial", "next", prev".  Strengthen local "delay_list" from
5606         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
5607         rtx_insn **.
5608         (follow_jumps): Strengthen return type, param "label" and locals
5609         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
5610         (fill_slots_from_thread): Strengthen return type, param
5611         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
5612         "insn", "thread", "opposite_thread" and locals "new_thread",
5613         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
5614         "sequence" from a checked cast to rtx_sequence so that we can call
5615         steal_delay_list_from_target and steal_delay_list_from_fallthrough
5616         with an rtx_sequence *.
5617         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
5618         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
5619         Strengthen local "delay_list" from rtx to rtx_insn_list *.
5620         (relax_delay_slots): Strengthen param "first" and locals "insn",
5621         "next", "trial", "delay_insn", "target_label" from rtx to
5622         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
5623         Introduce a local "trial_seq" for PATTERN (trial) of type
5624         rtx_sequence *, in both cases using methods of rtx_sequence.
5625         (dbr_schedule): Strengthen param "first" and locals "insn",
5626         "next", "epilogue_insn" from rtx to rtx_insn *.
5627
5628 2014-08-28  Richard Biener  <rguenther@suse.de>
5629
5630         PR tree-optimization/62283
5631         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
5632         Do not peel loops for alignment where the vector loop likely
5633         doesn't run at least VF times.
5634
5635 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
5636
5637         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
5638         important_candidates.  Consider all important candidates if
5639         IVS doesn't give any result.  Remove check on ivs->upto.
5640         (try_add_cand_for): Call iv_ca_add_use only once.
5641
5642 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5643             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5644             Anna Tikhonova  <anna.tikhonova@intel.com>
5645             Ilya Tocar  <ilya.tocar@intel.com>
5646             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5647             Ilya Verbin  <ilya.verbin@intel.com>
5648             Kirill Yukhin  <kirill.yukhin@intel.com>
5649             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5650
5651         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
5652         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
5653         masking.
5654         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
5655         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
5656         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
5657         (define_insn "*mul<mode>3"): Add EVEX version.
5658
5659 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5660             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5661             Anna Tikhonova  <anna.tikhonova@intel.com>
5662             Ilya Tocar  <ilya.tocar@intel.com>
5663             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5664             Ilya Verbin  <ilya.verbin@intel.com>
5665             Kirill Yukhin  <kirill.yukhin@intel.com>
5666             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5667
5668         * config/i386/sse.md
5669         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
5670         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
5671         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
5672         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
5673         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
5674         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
5675         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
5676         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
5677         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
5678         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
5679         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
5680         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
5681         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
5682         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
5683         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
5684         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
5685
5686 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5687             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5688             Anna Tikhonova  <anna.tikhonova@intel.com>
5689             Ilya Tocar  <ilya.tocar@intel.com>
5690             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5691             Ilya Verbin  <ilya.verbin@intel.com>
5692             Kirill Yukhin  <kirill.yukhin@intel.com>
5693             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5694
5695         * config/i386/sse.md
5696         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
5697         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
5698         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
5699
5700 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5701             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5702             Anna Tikhonova  <anna.tikhonova@intel.com>
5703             Ilya Tocar  <ilya.tocar@intel.com>
5704             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5705             Ilya Verbin  <ilya.verbin@intel.com>
5706             Kirill Yukhin  <kirill.yukhin@intel.com>
5707             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5708
5709         * config/i386/sse.md
5710         (define_mode_iterator VI128_256): New.
5711         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
5712
5713 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5714             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5715             Anna Tikhonova  <anna.tikhonova@intel.com>
5716             Ilya Tocar  <ilya.tocar@intel.com>
5717             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5718             Ilya Verbin  <ilya.verbin@intel.com>
5719             Kirill Yukhin  <kirill.yukhin@intel.com>
5720             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5721
5722         * config/i386/sse.md
5723         (define_mode_iterator VI8_256_512): New.
5724         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
5725         Ditto.
5726         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
5727         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
5728         Ditto.
5729         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
5730
5731 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5732
5733         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
5734         pointer to the cumulative reloc value and return the value for
5735         this reloc instead.
5736         (compute_reloc_for_rtx): Take a const_rtx.  Call
5737         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
5738         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
5739         for_each_rtx for the CONST case.
5740
5741 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5742
5743         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
5744         (mark_constants_in_pattern): ...this new function to iterate over
5745         all the subrtxes.
5746         (mark_constants): Update accordingly.
5747
5748 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5749
5750         * varasm.c: Include rtl-iter.h.
5751         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
5752         Remove the pointer to the cumulative hashval_t and just return
5753         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
5754         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
5755         Accumulate the hashval_ts here instead of const_rtx_hash_1.
5756
5757 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5758
5759         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
5760         Give real type of data parameter.  Remove return value.
5761         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
5762         to iterate over subrtxes.
5763
5764 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5765
5766         * var-tracking.c (use_narrower_mode_test): Turn from being a
5767         for_each_rtx callback to being a function that examines each
5768         subrtx itself.
5769         (adjust_mems): Update accordingly.
5770
5771 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5772
5773         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
5774         callback to being a function that examines each subrtx itself.
5775         Remove handling of null rtxes.
5776         (add_uses): Update accordingly.
5777
5778 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5779
5780         * var-tracking.c: Include rtl-iter.h.
5781         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
5782         to being a function that examines each subrtx itself.
5783         (use_type): Update accordingly.
5784
5785 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5786
5787         * store-motion.c: Include rtl-iter.h.
5788         (extract_mentioned_regs_1): Delete.
5789         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
5790         for_each_rtx to iterate over subrtxes.
5791
5792 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5793
5794         * sel-sched.c: Include rtl-iter.h
5795         (count_occurrences_1): Delete.
5796         (count_occurrences_equiv): Turn rtxes into const_rtxes.
5797         Use FOR_EACH_SUBRTX rather than for_each_rtx.
5798
5799 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5800
5801         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
5802         * rtlanal.c (tls_referenced_p_1): Delete.
5803         (tls_referenced_p): Take a const_rtx rather than an rtx.
5804         Use FOR_EACH_SUBRTX rather than for_each_rtx.
5805
5806 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5807
5808         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
5809         (for_each_inc_dec): Take an rtx rather than an rtx *.
5810         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
5811         (cselib_record_sets): Likewise.
5812         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
5813         (check_for_inc_dec): Likewise.
5814         * rtlanal.c (for_each_inc_dec_ops): Delete.
5815         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
5816         rather than a pointer to the memory address.  Replace
5817         for_each_inc_dec_ops argument with separate function and data
5818         arguments.  Abort on non-autoinc addresses.
5819         (for_each_inc_dec_find_mem): Delete.
5820         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
5821         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
5822
5823 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5824
5825         * rtl.h (find_all_hard_regs): Declare.
5826         * rtlanal.c (find_all_hard_regs): New function.
5827         (record_hard_reg_uses_1): Delete.
5828         (record_hard_reg_uses): Use find_all_hard_regs.
5829
5830 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5831
5832         * rtl.h (replace_label_data): Delete.
5833         (replace_label): Take the old label, new label and update-nuses flag
5834         as direct arguments.  Return void.
5835         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
5836         * rtlanal.c (replace_label): Update interface as above.  Handle
5837         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
5838         iterator.  Use FOR_EACH_SUBRTX_PTR.
5839
5840 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5841
5842         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
5843         with const_rtx parameters.
5844         * varasm.c (get_pool_constant): Likewise.
5845         * rtlanal.c (rtx_referenced_p_1): Delete.
5846         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
5847         Assert that the rtx we're looking for is nonnull.  Allow searches
5848         for constant pool SYMBOL_REFs.
5849
5850 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5851
5852         * reload1.c: Include rtl-iter.h.
5853         (note_reg_elim_costly): Turn from being a for_each_rtx callback
5854         to being a function that examines each subrtx itself.
5855         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
5856
5857 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5858
5859         * regcprop.c (cprop_find_used_regs_1): Delete.
5860         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
5861
5862 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5863
5864         * regcprop.c: Include rtl-iter.h.
5865         (kill_value): Take a const_rtx.
5866         (kill_autoinc_value): Turn from being a for_each_rtx callback
5867         to being a function that examines each subrtx itself.
5868         (copyprop_hardreg_forward_1): Update accordingly.
5869
5870 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5871
5872         * reg-stack.c: Include rtl-iter.h.
5873         (subst_stack_regs_in_debug_insn): Delete.
5874         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
5875         instead of for_each_rtx.
5876
5877 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5878
5879         * lower-subreg.c (find_decomposable_subregs): Turn from being
5880         a for_each_rtx callback to being a function that examines each
5881         subrtx itself.  Remove handling of null rtxes.
5882         (decompose_multiword_subregs): Update accordingly.
5883
5884 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5885
5886         * lower-subreg.c (adjust_decomposed_uses): Delete.
5887         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
5888         Remove handling of null rtxes.
5889
5890 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5891
5892         * lower-subreg.c: Include rtl-iter.h.
5893         (resolve_subreg_use): Turn from being a for_each_rtx callback
5894         to being a function that examines each subrtx itself.  Remove
5895         handling of null rtxes.
5896         (resolve_reg_notes, resolve_simple_move): Update accordingly.
5897         (decompose_multiword_subregs): Likewise.
5898
5899 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5900
5901         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
5902         to being a function that examines each subrtx itself.
5903         (simplify_using_condition, simplify_using_initial_values): Update
5904         accordingly.
5905
5906 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5907
5908         * loop-iv.c: Include rtl-iter.h.
5909         (find_single_def_src): New function.
5910         (replace_single_def_regs): Turn from being a for_each_rtx callback
5911         to being a function that examines each subrtx itself.
5912         (replace_in_expr, simplify_using_initial_values): Update accordingly.
5913
5914 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5915
5916         * jump.c (eh_returnjump_p_1): Delete.
5917         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
5918         Remove handling of null rtxes.
5919
5920 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5921
5922         * jump.c: Include rtl-iter.h.
5923         (returnjump_p_1): Delete.
5924         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
5925         Remove handling of null rtxes.
5926
5927 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5928
5929         * ira.c: Include rtl-iter.h.
5930         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
5931         to being a function that examines each subrtx itself.  Remove
5932         handling of null rtxes.
5933         (update_equiv_regs): Update call accordingly.
5934
5935 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5936
5937         * fwprop.c: Include rtl-iter.h.
5938         (varying_mem_p): Turn from being a for_each_rtx callback to being
5939         a function that examines each subrtx itself.
5940         (propagate_rtx): Update accordingly.
5941
5942 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5943
5944         * function.c: Include rtl-iter.h
5945         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
5946         callback to being a function that examines each subrtx itself.
5947         Return the changed flag.
5948         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
5949         (instantiate_virtual_regs): Update calls accordingly.
5950
5951 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5952
5953         * final.c: Include rtl-iter.h.
5954         (mark_symbol_ref_as_used): Delete.
5955         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
5956         for_each_rtx.
5957
5958 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5959
5960         * emit-rtl.c: Include rtl-iter.h.
5961         (find_auto_inc): Turn from being a for_each_rtx callback to being
5962         a function that examines each subrtx itself.  Assume the first operand
5963         to an RTX_AUTOINC is the automodified register.
5964         (try_split): Update call accordingly.
5965
5966 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5967
5968         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
5969         Return a bool, inverting the result so that 0/false means "not ok".
5970         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
5971         subrtxes of a CONST.
5972         (mem_loc_descriptor, add_const_value_attribute)
5973         (resolve_addr_in_expr): Update calls accordingly.
5974
5975 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5976
5977         * dwarf2out.c: Include rtl-iter.h.
5978         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
5979         Remove unused data parameter.  Return a bool, inverting the result
5980         so that 0/false means "not ok".
5981         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
5982         instead of for_each_rtx.
5983
5984 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5985
5986         * dse.c: Include rtl-iter.h.
5987         (check_mem_read_rtx): Change void * parameter to real type.
5988         Remove return value.
5989         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
5990         for_each_rtx.  Don't handle null rtxes.
5991
5992 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5993
5994         * df-problems.c: Include rtl-iter.h.
5995         (find_memory): Turn from being a for_each_rtx callback to being
5996         a function that examines each subrtx itself.  Continue to look for
5997         volatile references even after a nonvolatile one has been found.
5998         (can_move_insns_across): Update calls accordingly.
5999
6000 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
6001
6002         * ddg.c (walk_mems_2, walk_mems_1): Delete.
6003         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
6004         to iterate over subrtxes.  Return a bool rather than an int.
6005
6006 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
6007
6008         * ddg.c: Include rtl-iter.h.
6009         (mark_mem_use_1): Rename to...
6010         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
6011         instead of for_each_rtx.
6012         (mem_read_insn_p): Update accordingly.
6013
6014 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
6015
6016         * cse.c (change_cc_mode_args): Delete.
6017         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
6018         a function that examines each subrtx itself.  Take the fields of
6019         change_cc_mode_args as argument and return void.
6020         (cse_change_cc_mode_insn): Update calls accordingly.
6021
6022 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
6023
6024         * cse.c (is_dead_reg): Change argument to const_rtx.
6025         (dead_debug_insn_data): Delete.
6026         (is_dead_debug_insn): Expand commentary.  Turn from being a
6027         for_each_rtx callback to being a function that examines
6028         each subrtx itself.  Take the fields of dead_debug_insn_data
6029         as argument.
6030         (delete_trivially_dead_insns): Update call accordingly.
6031
6032 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
6033
6034         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
6035         being a for_each_rtx callback to being a function that examines
6036         each subrtx itself.
6037         (cse_extended_basic_block): Update call accordingly.
6038
6039 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
6040
6041         * cse.c (check_dependence_data): Delete.
6042         (check_dependence): Change from being a for_each_rtx callback to being
6043         a function that examines all subrtxes itself.  Don't handle null rtxes.
6044         (invalidate): Update call accordingly.
6045
6046 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
6047
6048         * cse.c: Include rtl-iter.h.
6049         (approx_reg_cost_1): Delete.
6050         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
6051         Don't handle null rtxes.
6052
6053 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
6054
6055         * cfgcleanup.c: Include rtl-iter.h.
6056         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
6057         to being a function that examines each subrtx itself.
6058         (thread_jump): Update accordingly.
6059
6060 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
6061
6062         * combine-stack-adj.c: Include rtl-iter.h.
6063         (record_stack_refs_data): Delete.
6064         (record_stack_refs): Turn from being a for_each_rtx callback
6065         to being a function that examines each subrtx itself.
6066         Take a pointer to the reflist.  Invert sense of return value
6067         so that true means success and false means failure.  Don't
6068         handle null rtxes.
6069         (combine_stack_adjustments_for_block): Update accordingly.
6070
6071 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
6072
6073         * combine.c (record_truncated_value): Turn from being a for_each_rtx
6074         callback to a function that takes an rtx and returns a bool
6075         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
6076         for_each_rtx.
6077
6078 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
6079
6080         * combine.c: Include rtl-iter.h.
6081         (unmentioned_reg_p_1): Delete.
6082         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
6083         Don't handle null rtxes.
6084
6085 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
6086
6087         * calls.c: Include rtl-iter.h.
6088         (internal_arg_pointer_based_exp_1): Delete.
6089         (internal_arg_pointer_based_exp): Take a const_rtx.
6090         Use FOR_EACH_SUBRTX to iterate over subrtxes.
6091
6092 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
6093
6094         * caller-save.c: Include rtl-iter.h.
6095         (add_used_regs_1): Delete.
6096         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
6097         to iterate over subrtxes.  Assert that any remaining pseudos
6098         have been spilled.
6099
6100 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
6101
6102         * bt-load.c: Include rtl-iter.h.
6103         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
6104         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
6105         to iterate over subrtxes.
6106         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
6107         find_btr_use rather than btr_referenced_p.
6108
6109 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
6110
6111         * alias.c: Include rtl-iter.h.
6112         (refs_newer_value_cb): Delete.
6113         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
6114
6115 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
6116
6117         * rtl-iter.h: New file.
6118         * rtlanal.c: Include it.
6119         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
6120         (generic_subrtx_iterator <T>::add_single_to_queue)
6121         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
6122         (generic_subrtx_iterator <T>::free_array): New functions.
6123         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
6124         (generic_subrtx_iterator <const_rtx_accessor>)
6125         (generic_subrtx_iterator <rtx_var_accessor>
6126         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
6127         (setup_reg_subrtx_bounds): New function.
6128         (init_rtlanal): Call it.
6129
6130 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
6131
6132         PR target/62261
6133         * config/sh/sh.md (ashlsi3): Handle negative shift count for
6134         TARGET_SHMEDIA.
6135         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
6136
6137 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
6138
6139         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
6140
6141 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6142
6143         * rtl.h (JUMP_LABEL_AS_INSN): New.
6144
6145 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6146
6147         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
6148         rtx_expr_list **.
6149         (alloc_EXPR_LIST): Strengthen return type from rtx to
6150         rtx_expr_list *.
6151         (remove_free_EXPR_LIST_node): Likewise for param.
6152         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
6153         from rtx to rtx_expr_list *.
6154         * sched-int.h (struct deps_desc): Strengthen fields
6155         "pending_read_mems" and "pending_write_mems" from rtx to
6156         rtx_expr_list *.
6157
6158         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
6159         rtx to rtx_expr_list *.
6160         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
6161         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
6162         rtx_expr_list **.
6163         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
6164         from rtx to rtx_expr_list *.
6165         * loop-iv.c (simplify_using_initial_values): Strengthen local
6166         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
6167         "pnote_next" from rtx * to rtx_expr_list **.
6168         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
6169         param "exprp" from rtx * to rtx_expr_list **.
6170         (add_insn_mem_dependence): Strengthen local "mem_list" from
6171         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
6172         to rtx_expr_list *.
6173         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
6174         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
6175         param "old_mems_p" from rtx * to rtx_expr_list **.
6176         * var-tracking.c (struct adjust_mem_data): Strengthen field
6177         "side_effects" from rtx to rtx_expr_list *.
6178         (adjust_insn): Replace NULL_RTX with NULL when assigning to
6179         rtx_expr_list *.
6180         (prepare_call_arguments): Likewise.
6181
6182 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6183
6184         * function.h (struct rtl_data): Strengthen field
6185         "x_stack_slot_list" from rtx to rtx_expr_list *.
6186
6187         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
6188         when assigning to stack_slot_list.
6189
6190 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6191
6192         * function.h (struct rtl_data): Strengthen field
6193         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
6194         * rtl.h (remove_node_from_expr_list): Strengthen second param from
6195         rtx * to rtx_expr_list **.
6196
6197         * cfgbuild.c (make_edges): In loop over
6198         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
6199         rtx_expr_list *, and use methods of the latter class to clarify
6200         the code.
6201         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
6202         rtx_expr_list *, and use methods of the latter class to clarify
6203         the code.
6204         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
6205         * reload1.c (set_initial_label_offsets): Likewise for local "x".
6206         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
6207         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
6208         to rtx_expr_list *.  Use methods of the latter class to clarify
6209         the code.
6210
6211 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6212
6213         * function.h (struct expr_status): Strengthen field
6214         "x_forced_labels" from rtx to rtx_expr_list *.
6215
6216         * cfgbuild.c (make_edges): Split local "x" into two locals,
6217         strengthening one from rtx to rtx_expr_list *, and using methods
6218         of said class.
6219         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
6220         loop over forced_labels, introduce strengthen it from rtx to
6221         rtx_expr_list *, using methods to clarify the code.
6222         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
6223         to rtx_expr_list *, using methods of said class to clarify the
6224         code.
6225         * reload1.c (set_initial_label_offsets): Split local "x" into two
6226         per-loop variables, strengthening the first from rtx to
6227         rtx_expr_list * and using methods.
6228
6229 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6230
6231         * coretypes.h (class rtx_expr_list): Add forward declaration.
6232         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
6233         * gengenrtl.c (special_rtx): Add EXPR_LIST.
6234         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
6235         invariant: GET_CODE (X) == EXPR_LIST.
6236         (is_a_helper <rtx_expr_list *>::test): New.
6237         (rtx_expr_list::next): New.
6238         (rtx_expr_list::element): New.
6239         (gen_rtx_EXPR_LIST): New.
6240
6241 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6242
6243         * varasm.c (mark_constants): Convert a GET_CODE check into a
6244         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
6245         Use methods of rtx_sequence to clarify the code.
6246
6247 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6248
6249         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
6250         local "seq" via a checked cast, and use methods of rtx_sequence
6251         to simplify the code.
6252
6253 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6254
6255         * resource.c (mark_referenced_resources): Strengthen local
6256         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
6257         using methods of rtx_sequence to clarify the code.
6258         (find_dead_or_set_registers): Within the switch statement, convert
6259         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
6260         the JUMP_P handling, introduce another local "seq", adding a
6261         checked cast to rtx_sequence *.  In both cases, use methods of
6262         rtx_sequence to clarify the code.
6263         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
6264         via a checked cast, and use methods of rtx_sequence to simplify
6265         the code.
6266
6267 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6268
6269         * reorg.c (redundant_insn): In two places in the function, replace
6270         a check of GET_CODE with a dyn_cast, introducing local "seq", and
6271         usings methods of rtx_sequence to clarify the code.
6272
6273 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6274
6275         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
6276         local "seq" with a checked cast, and use methods of rtx_sequence
6277         to clarify the code.
6278
6279 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6280
6281         * function.c (contains): Introduce local "seq" for PATTERN (insn),
6282         with a checked cast, in the region for where we know it's a
6283         SEQUENCE.  Use methods of rtx_sequence.
6284
6285 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6286
6287         * final.c (get_attr_length_1): Replace GET_CODE check with a
6288         dyn_cast, introducing local "seq" and the use of methods of
6289         rtx_sequence.
6290         (shorten_branches): Likewise, introducing local "body_seq".
6291         Strengthen local "inner_insn" from rtx to rtx_insn *.
6292         (reemit_insn_block_notes): Replace GET_CODE check with a
6293         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
6294         Use methods of rtx_sequence.
6295         (final_scan_insn): Likewise, introducing local "seq" for when
6296         "body" is known to be a SEQUENCE, using its methods.
6297
6298 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6299
6300         * except.c (can_throw_external): Strengthen local "seq" from rtx
6301         to rtx_sequence *.  Use methods of rtx_sequence.
6302         (insn_nothrow_p): Likewise.
6303
6304 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6305
6306         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
6307         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
6308         Use methods of rtx_sequence.
6309         (scan_trace): Likewise for local "pat".
6310
6311 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6312
6313         * coretypes.h (class rtx_sequence): Add forward declaration.
6314         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
6315         invariant: GET_CODE (X) == SEQUENCE.
6316         (is_a_helper <rtx_sequence *>::test): New.
6317         (is_a_helper <const rtx_sequence *>::test): New.
6318         (rtx_sequence::len): New.
6319         (rtx_sequence::element): New.
6320         (rtx_sequence::insn): New.
6321
6322 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6323
6324         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
6325         rtx_insn_list **.
6326         (alloc_INSN_LIST): Strengthen return type from rtx to
6327         rtx_insn_list *.
6328         (copy_INSN_LIST): Likewise for return type and param.
6329         (concat_INSN_LIST): Likewise for both params and return type.
6330         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
6331         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
6332         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
6333         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
6334
6335         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
6336         "implicit_sets", "control_uses", "clobbers" from rtx to
6337         rtx_insn_list *.
6338         (struct deps_desc): Likewise for fields "pending_read_insns",
6339         "pending_write_insns", "pending_jump_insns",
6340         "last_pending_memory_flush", "last_function_call",
6341         "last_function_call_may_noreturn", "sched_before_next_call",
6342         "sched_before_next_jump".
6343         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
6344         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
6345
6346         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
6347         from rtx to rtx_insn_list *.
6348         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
6349         rtx_insn_list *.
6350
6351         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
6352         to rtx_insn_list **.
6353         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
6354         rtx_insn_list *.
6355         (queue_insn): Likewise for local "link".
6356         (struct haifa_saved_data): Strengthen field "insn_queue" from
6357         rtx * to rtx_insn_list **.
6358         (save_backtrack_point): Update allocation of save->insn_queue to
6359         reflect the strengthening of elements from rtx to rtx_insn_list *.
6360         (queue_to_ready): Strengthen local "link" from rtx to
6361         rtx_insn_list *; use methods "next" and "insn" when traversing the
6362         list.
6363         (early_queue_to_ready): Likewise for locals "link", "next_link",
6364         "prev_link".
6365         (schedule_block): Update allocation of insn_queue to reflect the
6366         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
6367         local "link" from rtx to rtx_insn_list *, and use methods when
6368         working it.
6369         (add_to_speculative_block): Strengthen locals "twins" and
6370         "next_node" from rtx to rtx_insn_list *, and use methods when
6371         working with them.  Strengthen local "twin" from rtx to
6372         rtx_insn *, eliminating a checked cast.
6373         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
6374         from rtx to rtx_insn_list *, and use methods when working with
6375         them.
6376
6377         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
6378         from rtx to rtx_insn_list *, adding a checked cast.
6379         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
6380         rtx_insn_list **.
6381         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
6382         "newlink" from rtx to rtx_insn_list *.  Strengthen local
6383         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
6384         from rtx to rtx_insn *.
6385         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
6386         from rtx to rtx_insn_list *.  Use methods of the latter class.
6387         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
6388         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
6389         (remove_free_INSN_LIST_node): Strengthen return type and local
6390         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
6391         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
6392         rtx_insn_list *, using "insn" method.
6393
6394         * sched-deps.c (add_dependence_list):  Strengthen param "list"
6395         from rtx to rtx_insn_list *, and use methods when working with it.
6396         (add_dependence_list_and_free):  Strengthen param "listp" from
6397         rtx * to rtx_insn_list **.
6398         (remove_from_dependence_list): Strenghten param "listp" from rtx *
6399         to rtx_insn_list **, and use methods when working with *listp.
6400         (remove_from_both_dependence_lists): Strengthen param "listp" from
6401         rtx * to rtx_insn_list **
6402         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
6403         to rtx_insn_list **.  Eliminate local "link", in favor of two new
6404         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
6405         respectively.
6406         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
6407         by introducing local "cond_deps".
6408         (remove_from_deps): Strengthen param "insn" from rtx to
6409         rtx_insn *.
6410
6411         * sched-rgn.c (concat_insn_mem_list): Strengthen param
6412         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
6413         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
6414         Use methods of rtx_insn_list.
6415
6416         * store-motion.c (struct st_expr): Strengthen fields
6417         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
6418         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
6419         rtx_insn_list *.
6420         (find_moveable_store): Split out "tmp" into multiple more-tightly
6421         scoped locals.  Use methods of rtx_insn_list *.
6422         (compute_store_table): Strengthen local "tmp" from rtx to
6423         rtx_insn *.  Use methods of rtx_insn_list *.
6424
6425 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6426
6427         * coretypes.h (class rtx_insn_list): Add forward declaration.
6428         * rtl.h (class rtx_insn_list): New subclass of rtx_def
6429         (is_a_helper <rtx_insn_list *>::test): New.
6430         (rtx_insn_list::next): New.
6431         (rtx_insn_list::insn): New.
6432         (gen_rtx_INSN_LIST): Add prototype.
6433         * emit-rtl.c (gen_rtx_INSN_LIST): New.
6434         * gengenrtl.c (special_rtx): Add INSN_LIST.
6435
6436 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6437
6438         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
6439         "prev" from rtx to rtx_insn *.
6440
6441 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6442
6443         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
6444         functions.  Require merely an rtx for now, not an rtx_insn *.
6445         (BLOCK_FOR_INSN): Likewise.
6446         (INSN_LOCATION): Likewise.
6447         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
6448
6449 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6450
6451         * rtl.h (PATTERN): Convert this macro into a pair of inline
6452         functions, for now, requiring const_rtx and rtx.
6453
6454 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6455
6456         * target.def (unwind_emit): Strengthen param "insn" from rtx to
6457         rtx_insn *.
6458         (final_postscan_insn): Likewise.
6459         (adjust_cost): Likewise.
6460         (adjust_priority): Likewise.
6461         (variable_issue): Likewise.
6462         (macro_fusion_pair_p): Likewise.
6463         (dfa_post_cycle_insn): Likewise.
6464         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
6465         (first_cycle_multipass_issue): Likewise.
6466         (dfa_new_cycle): Likewise.
6467         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
6468         (speculate_insn): Likewise for param "insn".
6469         (gen_spec_check): Likewise for params "insn" and "label".
6470         (get_insn_spec_ds): Likewise for param "insn".
6471         (get_insn_checked_ds): Likewise.
6472         (dispatch_do): Likewise.
6473         (dispatch): Likewise.
6474         (cannot_copy_insn_p): Likewise.
6475         (invalid_within_doloop): Likewise.
6476         (legitimate_combined_insn): Likewise.
6477         (needed): Likewise.
6478         (after): Likewise.
6479
6480         * doc/tm.texi: Automatically updated to reflect changes to
6481         target.def.
6482
6483         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
6484         working with insn.
6485         (schedule_block): Likewise.
6486         (sched_init): Likewise.
6487         (sched_speculate_insn): Strengthen param "insn" from rtx to
6488         rtx_insn *.
6489         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
6490         working with insn.
6491         * hooks.c (hook_bool_rtx_true): Rename to...
6492         hook_bool_rtx_insn_true): ...this, and strengthen first param from
6493         rtx to rtx_insn *.
6494         (hook_constcharptr_const_rtx_null): Rename to...
6495         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
6496         first param from const_rtx to const rtx_insn *.
6497         (hook_bool_rtx_int_false): Rename to...
6498         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
6499         param from rtx to rtx_insn *.
6500         (hook_void_rtx_int): Rename to...
6501         (hook_void_rtx_insn_int): ...this, and strengthen first param from
6502         rtx to rtx_insn *.
6503
6504         * hooks.h (hook_bool_rtx_true): Rename to...
6505         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
6506         rtx to rtx_insn *.
6507         (hook_bool_rtx_int_false): Rename to...
6508         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
6509         param from rtx to rtx_insn *.
6510         (hook_void_rtx_int): Rename to...
6511         (hook_void_rtx_insn_int): ...this, and strengthen first param from
6512         rtx to rtx_insn *.
6513         (hook_constcharptr_const_rtx_null): Rename to...
6514         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
6515         first param from const_rtx to const rtx_insn *.
6516
6517         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
6518         and local "prev" from rtx to rtx_insn *.
6519
6520         * sched-int.h (sched_speculate_insn): Strengthen first param from
6521         rtx to rtx_insn *.
6522
6523         * sel-sched.c (create_speculation_check): Likewise for local "label".
6524         * targhooks.c (default_invalid_within_doloop): Strengthen param
6525         "insn" from const_rtx to const rtx_insn *.
6526         * targhooks.h (default_invalid_within_doloop): Strengthen param
6527         from const_rtx to const rtx_insn *.
6528
6529         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
6530         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
6531
6532         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
6533         "insn".
6534         (arc_invalid_within_doloop): Likewise, with const.
6535
6536         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
6537         (arm_cannot_copy_insn_p): Likewise for param "insn".
6538         (arm_unwind_emit): Likewise.
6539
6540         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
6541         "dep_insn".
6542
6543         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
6544         (c6x_variable_issue): Likewise.  Removed now-redundant checked
6545         cast.
6546         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
6547
6548         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
6549         Likewise for param "insn".
6550         (epiphany_mode_after): Likewise.
6551         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
6552         params "insn", "dep_insn".
6553         (epiphany_mode_needed): Likewise for param "insn".
6554         (epiphany_mode_after): Likewise.
6555
6556         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
6557         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
6558         (ix86_avx_u128_mode_needed): Likewise.
6559         (ix86_i387_mode_needed): Likewise.
6560         (ix86_mode_needed): Likewise.
6561         (ix86_avx_u128_mode_after): Likewise.
6562         (ix86_mode_after): Likewise.
6563         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
6564         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
6565         (ix86_adjust_priority): Likewise for param "insn".
6566         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
6567         (do_dispatch): Likewise.
6568         (has_dispatch): Likewise.
6569         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
6570
6571         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
6572         reflect renaming of default hook implementation from
6573         hook_constcharptr_const_rtx_null to
6574         hook_constcharptr_const_rtx_insn_null.
6575         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
6576         rtx to rtx_insn *.
6577         (ia64_variable_issue): Likewise for param "insn".
6578         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
6579         (ia64_dfa_new_cycle): Likewise.
6580         (ia64_get_insn_spec_ds): Likewise.
6581         (ia64_get_insn_checked_ds): Likewise.
6582         (ia64_speculate_insn): Likewise.
6583         (ia64_gen_spec_check): Likewise for params "insn", "label".
6584         (ia64_asm_unwind_emit): Likewise for param "insn".
6585
6586         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
6587
6588         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
6589         "insn", "def_insn".
6590         (m68k_sched_variable_issue): Likewise for param "insn".
6591
6592         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
6593         "def_insn".
6594
6595         * config/microblaze/microblaze.c (microblaze_adjust_cost):
6596         Likewise for params "insn", "dep".
6597
6598         * config/mips/mips.c (mips_adjust_cost): Likewise.
6599         (mips_variable_issue): Likewise for param "insn".
6600         (mips_final_postscan_insn): Likewise.
6601
6602         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
6603         for params "insn", "dep".
6604
6605         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
6606         "dep_insn".
6607         (pa_adjust_priority): Likewise for param "insn".
6608
6609         * config/picochip/picochip.c (picochip_sched_adjust_cost):
6610         Likewise for params "insn", "dep_insn".
6611
6612         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
6613         param "insn".
6614         (rs6000_variable_issue): Likewise.
6615         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
6616         (rs6000_debug_adjust_cost): Likewise.
6617         (rs6000_adjust_priority): Likewise for param "insn".
6618         (rs6000_use_sched_lookahead_guard): Likewise.
6619         (get_next_active_insn): Likewise for return type and both params.
6620         (redefine_groups): Likewise for params "prev_head_insn", "tail"
6621         and locals "insn", "next_insn".
6622         (pad_groups): Likewise.
6623
6624         * config/s390/s390.c (s390_adjust_priority): Likewise for param
6625         "insn".
6626         (s390_cannot_copy_insn_p): Likewise.
6627         (s390_sched_variable_issue): Likewise for third param, eliminating
6628         checked cast.
6629         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
6630         default hook implementation from hook_constcharptr_const_rtx_null
6631         to hook_constcharptr_const_rtx_insn_null.
6632
6633         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
6634         from rtx to rtx_insn *.
6635         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
6636         (sh_variable_issue): Likewise for param "insn".
6637         (sh_dfa_new_cycle): Likewise.
6638         (sh_mode_needed): Likewise.
6639         (sh_mode_after): Likewise.
6640
6641         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
6642         params "insn", "dep_insn".
6643         (hypersparc_adjust_cost): Likewise.
6644         (sparc_adjust_cost): Likewise.
6645
6646         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
6647         param, eliminated checked cast.
6648         (spu_sched_adjust_cost): Likewise for first and third params.
6649
6650         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
6651         params "insn" and "dep_insn" from rtx to rtx_insn *.
6652
6653         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
6654
6655 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
6656
6657         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
6658         (set_is_load_p): ...this, updating to work on a SET pattern rather
6659         than an insn.
6660         (is_store_insn): Rename to...
6661         (set_is_store_p): ...this, updating to work on a SET pattern
6662         rather than an insn.
6663         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
6664         top of function to where it is needed.  Rewrite the bogus
6665         condition that checks for "insn" and "dep" being PARALLEL to
6666         instead use single_set, introducing locals "insn_set" and
6667         "dep_set".  Given that we only ever returned "cost" for a non-pair
6668         of SETs, bail out early if we don't have a pair of SET.
6669         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
6670         use the new locals "insn_set" and "dep_set", and update calls to
6671         is_load_insn and is_store_insn to be calls to set_is_load_p and
6672         set_is_store_p.
6673
6674 2014-08-27  Guozhi Wei  <carrot@google.com>
6675
6676         PR target/62262
6677         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
6678         amount before using it.
6679
6680 2014-08-27  Richard Biener  <rguenther@suse.de>
6681
6682         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
6683         get_maxval_strlen inside a more useful API.
6684         (gimple_fold_builtin_with_strlen): Remove and fold into ...
6685         (gimple_fold_builtin): ... caller.
6686         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
6687         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
6688         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
6689         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
6690         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
6691         gimple_fold_builtin_sprintf): Adjust to compute maxval
6692         themselves.
6693
6694 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
6695
6696         PR other/62248
6697         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
6698
6699 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
6700             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
6701             Anna Tikhonova  <anna.tikhonova@intel.com>
6702             Ilya Tocar  <ilya.tocar@intel.com>
6703             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6704             Ilya Verbin  <ilya.verbin@intel.com>
6705             Kirill Yukhin  <kirill.yukhin@intel.com>
6706             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6707
6708         * config/i386/sse.md
6709         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
6710         Use `concat_tg_mode' attribute to determine asm register size.
6711
6712 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
6713             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
6714             Anna Tikhonova  <anna.tikhonova@intel.com>
6715             Ilya Tocar  <ilya.tocar@intel.com>
6716             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6717             Ilya Verbin  <ilya.verbin@intel.com>
6718             Kirill Yukhin  <kirill.yukhin@intel.com>
6719             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6720
6721         * config/i386/sse.md
6722         (define_mode_iterator VI48_AVX512VL): New.
6723         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
6724         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
6725         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
6726         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
6727         with VI1): Change mode iterator.
6728         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
6729         with VI_ULOADSTORE_BW_AVX512VL): New.
6730         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
6731         with VI_ULOADSTORE_F_AVX512VL): Ditto.
6732         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
6733         with VI1): Change mode iterator.
6734         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
6735         with VI_ULOADSTORE_BW_AVX512VL): New.
6736         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
6737         with VI_ULOADSTORE_F_AVX512VL): Ditto.
6738         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
6739         with VI1): Change mode iterator.
6740         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
6741         with VI_ULOADSTORE_BW_AVX512VL): New.
6742         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
6743         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
6744         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
6745         (define_insn "<avx512>_storedqu<mode>_mask" with
6746         VI48_AVX512VL): New.
6747         (define_insn "<avx512>_storedqu<mode>_mask" with
6748         VI12_AVX512VL): Ditto.
6749
6750 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
6751             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
6752             Anna Tikhonova  <anna.tikhonova@intel.com>
6753             Ilya Tocar  <ilya.tocar@intel.com>
6754             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6755             Ilya Verbin  <ilya.verbin@intel.com>
6756             Kirill Yukhin  <kirill.yukhin@intel.com>
6757             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6758
6759         * config/i386/sse.md
6760         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
6761         (define_mode_iterator VI48_AVX512BW): New.
6762         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
6763         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
6764         with VI48_AVX2_48_AVX512F): New.
6765         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
6766         with VI2_AVX512VL): Ditto.
6767
6768 2014-08-27  Richard Biener  <rguenther@suse.de>
6769
6770         PR middle-end/62239
6771         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
6772         (fold_builtin_3): Do not fold strcat_chk here.
6773         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
6774         from builtins.c.
6775         (gimple_fold_builtin): Fold strcat_chk here.
6776
6777 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
6778
6779         * dwarf2out.h (dwarf2out_decl): Remove prototype.
6780         * dwarf2out.c (dwarf2out_decl): Make static.
6781
6782 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
6783
6784         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
6785
6786 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
6787
6788         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
6789         from rtx to rtx_insn *.
6790         (cselib_lookup_from_insn): Likewise for final param.
6791         (cselib_subst_to_values_from_insn): Likewise.
6792         (cselib_add_permanent_equiv): Likewise.
6793
6794         * cselib.c (cselib_current_insn): Likewise for this variable.
6795         (cselib_subst_to_values_from_insn): Likewise for param "insn".
6796         (cselib_lookup_from_insn): Likewise.
6797         (cselib_add_permanent_equiv): Likewise for param "insn" and local
6798         "save_cselib_current_insn".
6799         (cselib_process_insn): Replace use of NULL_RTX with NULL.
6800
6801         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
6802         from rtx to rtx_insn *.
6803
6804 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
6805
6806         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
6807         rtx_insn *.
6808
6809 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
6810
6811         * df.h (df_dump_insn_problem_function): Strengthen first param of
6812         this callback from const_rtx to const rtx_insn *.
6813         (struct df_insn_info): Strengthen field "insn" from rtx to
6814         rtx_insn *.
6815         (DF_REF_INSN): Eliminate this function, reinstating the older
6816         macro definition.
6817         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
6818         (df_reg_defined): Likewise.
6819         (df_find_use): Likewise.
6820         (df_reg_used): Likewise.
6821         (df_dump_insn_top): Strengthen param 1 from const_rtx to
6822         const rtx_insn *.
6823         (df_dump_insn_bottom): Likewise.
6824         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
6825         (df_insn_debug_regno): Likewise.
6826         (debug_df_insn): Likewise.
6827         (df_rd_simulate_one_insn): Likewise for param 2.
6828         (df_word_lr_simulate_defs): Likewise for param 1.
6829         (df_word_lr_simulate_uses): Likewise.
6830         (df_md_simulate_one_insn): Likewise for param 2.
6831         (df_simulate_find_noclobber_defs): Likewise for param 1.
6832         (df_simulate_find_defs): Likewise.
6833         (df_simulate_defs): Likewise.
6834         (df_simulate_uses): Likewise.
6835         (df_simulate_one_insn_backwards): Likewise for param 2.
6836         (df_simulate_one_insn_forwards): Likewise.
6837         (df_uses_create): Likewise for param 2.
6838         (df_insn_create_insn_record): Likewise for param 1.
6839         (df_insn_delete): Likewise.
6840         (df_insn_rescan): Likewise.
6841         (df_insn_rescan_debug_internal): Likewise.
6842         (df_insn_change_bb): Likewise.
6843         (df_notes_rescan): Likewise.
6844         * rtl.h (remove_death): Likewise for param 2.
6845         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
6846         const rtx_insn *.
6847         * sched-int.h (reemit_notes): Strengthen param from rtx to
6848         rtx_insn *.
6849         * valtrack.h (propagate_for_debug): Likewise for param 1.
6850
6851         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
6852         local "tmp_rtx" from const_rtx to const rtx_insn *.
6853         * combine.c (remove_death): Strengthen param "insn" from rtx to
6854         rtx_insn *.
6855         (move_deaths): Likewise for local "where_dead".
6856         * cse.c (delete_trivially_dead_insns): Introduce local
6857         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
6858         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
6859         rtx_insn *.
6860         (df_reg_defined): Likewise.
6861         (df_find_use): Likewise.
6862         (df_reg_used): Likewise.
6863         (df_dump_insn_problem_data): Strengthen param "insn" from
6864         const_rtx to const rtx_insn *.
6865         (df_dump_insn_top): Likewise.
6866         (df_dump_insn_bottom): Likewise.
6867         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
6868         (df_insn_debug_regno): Likewise.
6869         (debug_df_insn): Likewise.
6870         (DF_REF_INSN): Delete.
6871         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
6872         from rtx to rtx_insn *.
6873         (df_chain_insn_top_dump): Strengthen param "insn" from
6874         const_rtx to const rtx_insn *.
6875         (df_chain_insn_bottom_dump): Likewise.
6876         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
6877         rtx_insn *.
6878         (df_word_lr_simulate_uses): Likewise.
6879         (df_print_note): Likewise.
6880         (df_remove_dead_and_unused_notes): Likewise.
6881         (df_set_unused_notes_for_mw): Likewise.
6882         (df_set_dead_notes_for_mw): Likewise.
6883         (df_create_unused_note): Likewise.
6884         (df_simulate_find_defs): Likewise.
6885         (df_simulate_find_uses): Likewise.
6886         (df_simulate_find_noclobber_defs): Likewise.
6887         (df_simulate_defs): Likewise.
6888         (df_simulate_uses): Likewise.
6889         (df_simulate_one_insn_backwards): Likewise.
6890         (df_simulate_one_insn_forwards): Likewise.
6891         (df_md_simulate_one_insn): Likewise.
6892         * df-scan.c (df_uses_create): Likewise.
6893         (df_insn_create_insn_record): Likewise.
6894         (df_insn_delete): Likewise.
6895         (df_insn_rescan): Likewise.
6896         (df_insn_rescan_debug_internal): Likewise.
6897         (df_insn_change_bb): Likewise.
6898         (df_notes_rescan): Likewise.
6899         (df_refs_add_to_chains): Likewise.
6900         (df_insn_refs_verify): Likewise.
6901         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
6902         when invoking df_insn_delete.
6903         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
6904         (set_unique_reg_note): Add checked cast.
6905         * final.c (cleanup_subreg_operands): Likewise.
6906         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
6907         "insn" from rtx to rtx_insn *.
6908         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
6909         "last" from rtx to rtx_insn *.
6910         * ira-emit.c (change_regs_in_insn): New function.
6911         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
6912         Invoke change_regs_in_insn rather than change_regs.
6913         * ira.c (update_equiv_regs): Strengthen locals "insn",
6914         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
6915         for_each_rtx_in_insn rather than for_each_rtx.
6916         * recog.c (confirm_change_group): Add checked casts.
6917         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
6918         Add checked cast.
6919         (peep2_fill_buffer): Add checked cast.
6920         * rtlanal.c (remove_note): Likewise.
6921         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
6922         locals "next" "end" from rtx to rtx_insn *.
6923
6924 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
6925
6926         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
6927         to rtx_insn *.
6928         (struct reg_use_data): Likewise for field "insn".
6929         (insn_cost): Likewise for param.
6930         (real_insn_for_shadow): Likewise for return type and param.
6931         (increase_insn_priority): Likewise for param 1.
6932         (debug_dependencies): Likewise for both params.
6933
6934         * haifa-sched.c (insn_delay): Likewise for param "insn".
6935         (real_insn_for_shadow): Likewise for return type and param "insn".
6936         (update_insn_after_change): Likewise for param "insn".
6937         (recompute_todo_spec): Likewise for param "next" and locals "pro",
6938         "other".
6939         (insn_cost): Likewise for param "insn".
6940         (increase_insn_priority): Likewise.
6941         (calculate_reg_deaths): Likewise.
6942         (setup_insn_reg_pressure_info): Likewise.
6943         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
6944         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
6945         (model_recompute): Likewise.
6946         (must_restore_pattern_p): Likewise for param "next".
6947         (model_excess_cost): Likewise for param "insn".
6948         (queue_remove): Likewise.
6949         (adjust_priority): Likewise for param "prev".
6950         (update_register_pressure): Likewise for param "insn".
6951         (setup_insn_max_reg_pressure): Likewise for local "insn".
6952         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
6953         (model_add_to_schedule): Likewise.
6954         (model_reset_queue_indices): Likewise for local "insn".
6955         (unschedule_insns_until): Strengthen local "recompute_vec" from
6956         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
6957         "con" from rtx to rtx_insn *.
6958         (restore_last_backtrack_point): Likewise for both locals "x". Add
6959         checked casts.
6960         (estimate_insn_tick): Likewise for param "insn".
6961         (commit_schedule): Likewise for params "prev_head", "tail" and
6962         local "x".
6963         (verify_shadows): Likewise for locals "i1", "i2".
6964         (dump_insn_stream): Likewise for params "head", "tail" and locals
6965         "next_tail", "insn".
6966         (schedule_block): Likewise for locals "insn", "x".  Add a checked
6967         cast.
6968         (fix_inter_tick): Likewise for params "head", "tail".
6969         (create_check_block_twin): Likewise for local "jump".
6970         (haifa_change_pattern): Likewise for param "insn".
6971         (haifa_speculate_insn): Likewise.
6972         (dump_new_block_header): Likewise for params "head", "tail".
6973         (fix_jump_move): Likewise for param "jump".
6974         (move_block_after_check): Likewise.
6975         (sched_init_insn_luid): Likewise for param "insn".
6976         (sched_init_luids): Likewise for local "insn".
6977         (insn_luid): Likewise for param "insn".
6978         (init_h_i_d): Likewise.
6979         (haifa_init_h_i_d): Likewise for local "insn".
6980         (haifa_init_insn): Likewise for param "insn".
6981         * sched-deps.c (add_dependence): Likewise for local "real_pro",
6982         "other".
6983         (create_insn_reg_use): Likewise for param "insn".
6984         (setup_insn_reg_uses): Likewise.  Add a checked cast.
6985         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
6986         "tail" from rtx to rtx_insn *.
6987         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
6988         "insn", "next_tail".
6989
6990 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
6991
6992         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
6993         from rtx to rtx_insn *.
6994         (model_add_to_schedule): Likewise for locals "start", "end",
6995         "iter".
6996
6997 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
6998
6999         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
7000         rtx_insn *.
7001         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
7002         "to" and locals "insn", "next", "copy".  Remove now-redundant
7003         checked cast.
7004
7005 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
7006
7007         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
7008         rtx_insn * and param 4 from rtx * to rtx_insn **.
7009         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
7010         param 2 from rtx * to rtx_insn **.
7011
7012         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
7013         rtx_insn * and final param from rtx * to rtx_insn **.
7014
7015         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
7016         from rtx to rtx_insn *.
7017         (try_head_merge_bb): Likewise for both locals named "move_upto".
7018         * df-problems.c (can_move_insns_across): Likewise for params
7019         "from", "to", "across_from", "across_to" and locals "insn",
7020         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
7021         rtx_insn **.
7022         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
7023         from rtx to rtx_insn *.
7024         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
7025         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
7026         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
7027         rtx_insn *.
7028         (noce_try_abs): Likewise.
7029         (noce_get_condition): Likewise for param "jump".  Strengthen param
7030         "earliest" from rtx * to rtx_insn **.
7031         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
7032         rtx_insn *.
7033         (find_cond_trap): Likewise.
7034         (dead_or_predicable): Likewise for local "earliest".
7035         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
7036         checked cast.
7037         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
7038         and local "prev".  Strengthen param "earliest" from rtx * to
7039         rtx_insn **.
7040         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
7041         Strengthen param "earliest" from rtx * to rtx_insn **.
7042
7043 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
7044
7045         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
7046         "to" and local "insn" from rtx to rtx_insn *.
7047
7048 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
7049
7050         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
7051         from rtx to rtx_insn *.
7052         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
7053         (code_motion_path_driver): Likewise for local "last_insn".
7054         (simplify_changed_insns): Likewise for local "insn".
7055
7056 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
7057
7058         * rtl.h (push_to_sequence): Strengthen param from rtx to
7059         rtx_insn *.
7060         (push_to_sequence2): Likewise for both params.
7061         (delete_insns_since): Likewise for param.
7062         (reorder_insns_nobb): Likewise for all three params.
7063         (set_new_first_and_last_insn): Likewise for both params.
7064
7065         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
7066         rtx_insn *.  Remove now-redundant cast.
7067         (set_last_insn): Likewise.
7068
7069         * builtins.c (expand_builtin_return): Strengthen local
7070         "call_fusage" from rtx to rtx_insn *.
7071         * cfgrtl.c (create_basic_block_structure): Likewise for local
7072         "after".
7073         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
7074         "first", "last" and local "insn".
7075         (delete_insns_since): Likewise for param "from".
7076         (reorder_insns_nobb): Likewise for params "from", "to", "after"
7077         and local "x".
7078         (push_to_sequence): Likewise for param "first" and local "last".
7079         (push_to_sequence2): Likewise for params "first" and "last".
7080         * lra.c (emit_add3_insn): Likewise for local "last".
7081         (lra_emit_add): Likewise.
7082         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
7083         "last_insn".
7084         (process_address_1): Likewise for locals "insn", last".
7085         * modulo-sched.c (ps_first_note): Likewise for return type.
7086         * optabs.c (expand_binop_directly): Likewise for param "last".
7087
7088 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
7089
7090         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
7091         to rtx_insn*.
7092         * emit-rtl.c (get_last_insn_anywhere): Likewise.
7093
7094 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
7095
7096         * function.h (struct sequence_stack): Strengthen fields "first"
7097         and "last" from rtx to rtx_insn *.
7098         (struct emit_status): Likewise for fields "x_first_insn" and
7099         "x_last_insn".
7100
7101         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
7102         (set_first_insn): Add checked cast.
7103         (get_last_insn): Remove now-redundant checked cast.
7104         (set_last_insn): Add checked cast.
7105
7106         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
7107         "saved_first" and "saved_last" from rtx to rtx_insn *.
7108
7109 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
7110
7111         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
7112         (unlink_insn_chain): Strengthen both params from rtx to
7113         rtx_insn *.
7114
7115         * cfgrtl.c (cfg_layout_function_header): Likewise for this
7116         variable.
7117         (unlink_insn_chain): Likewise for params "first" and "last".
7118         Remove now-redundant checked cast.
7119         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
7120         (fixup_reorder_chain): Strengthen local "insn" from rtx to
7121         rtx_insn *.
7122         * emit-rtl.c (link_insn_into_chain): Likewise for all three
7123         params.
7124         (add_insn): Likewise for param "insn" and local "prev".
7125         (add_insn_after_nobb): Likewise for both params and local "next".
7126         (add_insn_before_nobb): Likewise for both params and local "prev".
7127         (add_insn_after): Rename param "after" to "uncast_after",
7128         introducing local "after" with another checked cast.
7129         (add_insn_before): Rename params "insn" and "before", giving them
7130         "uncast_" prefixes, adding the old names back using checked casts.
7131         (emit_note_after): Likewise for param "after".
7132         (emit_note_before): Likewise for param "before".
7133         (emit_label): Add a checked cast.
7134
7135 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
7136
7137         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
7138         "insn" from rtx to rtx_insn *.
7139
7140         * cselib.c (cselib_record_sets_hook): Likewise.
7141
7142         * var-tracking.c (add_with_sets): Likewise, renaming back from
7143         "uncast_insn" to "insn" and eliminating the checked cast from rtx
7144         to rtx_insn *.
7145
7146 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
7147
7148         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
7149         and "header_" from rtx to rtx_insn *.
7150         (struct basic_block_d): Likewise for field "head_" within "x"
7151         field of union basic_block_il_dependent.
7152         (BB_HEAD): Drop function...
7153         (SET_BB_HEAD): ...and this function in favor of...
7154         (BB_HEAD): ...reinstate macro.
7155         (BB_END): Drop function...
7156         (SET_BB_END): ...and this function in favor of...
7157         (BB_END): ...reinstate macro.
7158         (BB_HEADER): Drop function...
7159         (SET_BB_HEADER): ...and this function in favor of...
7160         (BB_HEADER): ...reinstate macro.
7161
7162         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
7163         (fix_crossing_unconditional_branches): Likewise.
7164         * caller-save.c (save_call_clobbered_regs): Likewise.
7165         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
7166         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
7167         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
7168         (merge_blocks_move_successor_nojumps): Likewise.
7169         (outgoing_edges_match): Update use of for_each_rtx to
7170         for_each_rtx_in_insn.
7171         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
7172         (expand_gimple_cond): Likewise.
7173         (expand_gimple_tailcall): Likewise.
7174         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
7175         SET_BB_END.
7176         (construct_exit_block): Drop use of SET_BB_END.
7177         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
7178         rtx_insn *.
7179         (delete_insn): Rename param "insn" to "uncast_insn", introducing
7180         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
7181         SET_BB_HEAD and SET_BB_END.
7182         (create_basic_block_structure): Drop use of SET_BB_HEAD and
7183         SET_BB_END.
7184         (rtl_delete_block): Drop use of SET_BB_HEAD.
7185         (rtl_split_block): Drop use of SET_BB_END.
7186         (emit_nop_for_unique_locus_between): Likewise.
7187         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
7188         (block_label): Drop use of SET_BB_HEAD.
7189         (fixup_abnormal_edges): Drop use of SET_BB_END.
7190         (record_effective_endpoints): Drop use of SET_BB_HEADER.
7191         (relink_block_chain): Likewise.
7192         (fixup_reorder_chain): Drop use of SET_BB_END.
7193         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
7194         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
7195         rtx_insn **.  Drop use of SET_BB_HEADER.
7196         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
7197         SET_BB_HEAD.
7198         (BB_HEAD): Delete this function.
7199         (SET_BB_HEAD): Likewise.
7200         (BB_END): Likewise.
7201         (SET_BB_END): Likewise.
7202         (BB_HEADER): Likewise.
7203         (SET_BB_HEADER): Likewise.
7204         * emit-rtl.c (add_insn_after):  Rename param "insn" to
7205         "uncast_insn", adding a new local "insn" and a checked cast to
7206         rtx_insn *.  Drop use of SET_BB_END.
7207         (remove_insn): Strengthen locals "next" and "prev" from rtx to
7208         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
7209         (reorder_insns): Drop use of SET_BB_END.
7210         (emit_insn_after_1): Strengthen param "first" and locals "last",
7211         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
7212         (emit_pattern_after_noloc): Add checked cast.
7213         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
7214         (restore_other_notes): Likewise.
7215         (move_insn): Likewise.
7216         (sched_extend_bb): Likewise.
7217         (fix_jump_move): Likewise.
7218         * ifcvt.c (noce_process_if_block): Likewise.
7219         (dead_or_predicable): Likewise.
7220         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
7221         * reg-stack.c (change_stack): Drop use of SET_BB_END.
7222         * sel-sched-ir.c (sel_move_insn): Likewise.
7223         * sel-sched.c (move_nop_to_previous_block): Likewise.
7224
7225         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
7226         SET_BB_END.
7227         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
7228
7229 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
7230
7231         * basic-block.h (create_basic_block_structure): Strengthen params
7232         1 "head" and 2 "end" from rtx to rtx_insn *.
7233         * cfgrtl.c (create_basic_block_structure): Likewise.
7234         (rtl_create_basic_block): Update casts from void * to rtx to
7235         rtx_insn *, so that we can pass them as rtx_insn * to
7236         create_basic_block_structure.
7237         * sel-sched-ir.c (sel_create_basic_block): Likewise.
7238
7239 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
7240
7241         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
7242         rtx_insn **.
7243         (check_for_inc_dec): Strengthen param "insn" from rtx to
7244         rtx_insn *.
7245
7246         * cselib.h (cselib_process_insn): Likewise.
7247
7248         * cselib.c (cselib_record_sets): Likewise.
7249         (cselib_process_insn): Likewise.
7250
7251         * dse.c (struct insn_info): Likewise for field "insn".
7252         (check_for_inc_dec_1): Likewise for local "insn".
7253         (check_for_inc_dec): Likewise for param "insn".
7254         (scan_insn): Likewise.
7255         (dse_step1): Likewise for local "insn".
7256
7257         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
7258         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
7259
7260 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
7261
7262         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
7263         from rtx to rtx_insn *.
7264         (DEP_PRO): Delete this function and...
7265         (SET_DEP_PRO): ...this function in favor of...
7266         (DEP_PRO): ...reinstate this macro.
7267         (DEP_CON): Delete this function and...
7268         (SET_DEP_CON): ...this function in favor of...
7269         (DEP_CON): ...reinstate this old macro.
7270         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
7271         (init_dep): Likewise.
7272         (set_priorities): Likewise for both params.
7273         (sd_copy_back_deps): Likewise for params 1 and 2.
7274
7275         * haifa-sched.c (priority): Likewise for param "insn" and local
7276         "next".
7277         (set_priorities): Likewise for params "head" and "tail" and local
7278         "insn".
7279         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
7280         local "consumer".
7281         (add_to_speculative_block): Add a checked cast.
7282         (create_check_block_twin): Drop use of SET_DEP_CON.
7283         (add_jump_dependencies): Strengthen params "insn" and "jump" from
7284         rtx to rtx_insn *.
7285
7286         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
7287         Drop use of SET_DEP_PRO
7288         (init_dep): Strengthen params "pro" and "con" from rtx to
7289         rtx_insn *.
7290         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
7291         use of SET_DEP_CON.
7292         (DEP_PRO): Delete.
7293         (DEP_CON): Delete.
7294         (SET_DEP_PRO): Delete.
7295         (SET_DEP_CON): Delete.
7296
7297 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
7298
7299         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
7300         from rtx to rtx_insn *.
7301         (VINSN_INSN_RTX): Eliminate rvalue function and...
7302         (SET_VINSN_INSN): ...lvalue function in favor of...
7303         (VINSN_INSN_RTX): reinstate this old macro.
7304
7305         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
7306         in favor of VINSN_INSN_RTX.
7307         (VINSN_INSN_RTX): Delete this function.
7308         (SET_VINSN_INSN_RTX): Likewise.
7309
7310 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
7311
7312         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
7313         (BND_TO): Delete this function and...
7314         (SET_BND_TO): ...this functions in favor of...
7315         (BND_TO): ...reinstating this macro.
7316         (struct _fence): Strengthen field "executing_insns" from
7317         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
7318         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
7319         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
7320         and param "insn" from rtx to insn_t.
7321         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
7322         rtx_insn *.
7323
7324         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
7325         vec<rtx_insn *> .
7326         (rtx_vec_t): Likewise.
7327         (struct sched_deps_info_def): Strengthen param of "start_insn"
7328         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
7329         "note_mem_dep" callback and first param of "note_dep" callback.
7330
7331         * haifa-sched.c (add_to_speculative_block): Strengthen param
7332         "insn" from rtx to rtx_insn *.
7333         (clear_priorities): Likewise.
7334         (calc_priorities): Likewise for local "insn".
7335
7336         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
7337         Remove redundant checked cast.
7338         (haifa_note_mem_dep): Likewise for param "pending_insn".
7339         (haifa_note_dep): Likewise for param "elem".
7340         (note_mem_dep): Likewise for param "e".
7341         (sched_analyze_1): Add checked casts.
7342         (sched_analyze_2): Likewise.
7343
7344         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
7345         from rtx to rtx_insn *.
7346         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
7347         from vec<rtx> * to vec<rtx_insn *> *.
7348
7349         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
7350         scaffolding.
7351         (flist_add): Strengthen param "executing_insns" from
7352         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
7353         (advance_deps_context): Remove now-redundant checked cast.
7354         (init_fences): Replace uses of NULL_RTX with NULL.
7355         (merge_fences): Strengthen params "last_scheduled_insn" and
7356         "sched_next" from rtx to rtx_insn * and "executing_insns" from
7357         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
7358         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
7359         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
7360         an instruction, rather than doing double-duty as a pattern.
7361         (return_nop_to_pool): Update for change of insn_t.
7362         (deps_init_id): Remove now-redundant checked cast.
7363         (struct sched_scan_info_def): Strengthen param of "init_insn"
7364         callback from rtx to insn_t.
7365         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
7366         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
7367         NULL.
7368         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
7369         "end" from rtx to rtx_insn *.
7370         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
7371         (rtx insn_rtx, bool force_unique_p)
7372         (BND_TO): Delete function.
7373         (SET_BND_TO): Delete function.
7374
7375         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
7376         rtx to rtx_insn *.
7377         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
7378         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
7379         rtx to rtx_insn *.
7380         (undo_transformations): Likewise for param "insn".
7381         (update_liveness_on_insn): Likewise.
7382         (compute_live_below_insn): Likewise for param "insn" and local
7383         "succ".
7384         (update_data_sets): Likewise for param "insn".
7385         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
7386         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
7387         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
7388         rtx_insn *.
7389         (move_cond_jump): Likewise for param "insn".
7390         (move_cond_jump): Drop use of SET_BND_TO.
7391         (compute_av_set_on_boundaries): Likewise.
7392         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
7393         (update_and_record_unavailable_insns): Strengthen local "bb_end"
7394         from rtx to rtx_insn *.
7395         (maybe_emit_renaming_copy): Likewise for param "insn".
7396         (maybe_emit_speculative_check): Likewise.
7397         (handle_emitting_transformations): Likewise.
7398         (remove_insn_from_stream): Likewise.
7399         (code_motion_process_successors): Strengthen local "succ" from rtx
7400         to insn_t.
7401
7402 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
7403
7404         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
7405         ilist_t, not _xlist_t;
7406         (ILIST_INSN): Define in terms of new union field "insn".
7407         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
7408         _XLIST_NEXT.
7409         (struct _list_node): Add new field "insn" to the union, of type
7410         insn_t.
7411         (ilist_add): Replace macro with an inline function, requiring an
7412         insn_t.
7413         (ilist_remove): Define this macro directly in terms of
7414         _list_remove, rather than indirectly via _xlist_remove.
7415         (ilist_clear): Likewise, in terms of _list_clear rather than
7416         _xlist_clear.
7417         (ilist_is_in_p): Replace macro with an inline function, requiring
7418         an insn_t.
7419         (_list_iter_cond_insn): New function.
7420         (ilist_iter_remove): Define this macro directly in terms of
7421         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
7422         (ilist_iterator): Define directly in terms of _list_iterator
7423         rather than indirectly through _xlist_iterator.
7424         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
7425         than in terms of _FOR_EACH_X.
7426         (FOR_EACH_INSN_1): Likewise.
7427
7428 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
7429
7430         PR target/60606
7431         PR target/61330
7432         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
7433         DECL_HARD_REGISTER and return for invalid register specifications.
7434         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
7435         DECL_HARD_REGISTER, call expand_one_error_var.
7436         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
7437         CC_REGNUM with non-MODE_CC modes.
7438         (arm_regno_class): Return NO_REGS for PC_REGNUM.
7439
7440 2014-08-26  Marek Polacek  <polacek@redhat.com>
7441
7442         PR c/61271
7443         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
7444
7445 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
7446
7447         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
7448         qi cost; add di cost.
7449         (cortexa57_addrcost_table): Likewise.
7450
7451 2014-08-26  Marek Polacek  <polacek@redhat.com>
7452
7453         PR c/61271
7454         * expr.c (is_aligning_offset): Remove logical not.
7455
7456 2014-08-26  Marek Polacek  <polacek@redhat.com>
7457
7458         PR c/61271
7459         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
7460         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
7461
7462 2014-08-26  Richard Biener  <rguenther@suse.de>
7463
7464         PR tree-optimization/62175
7465         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
7466         expand possibly trapping operations.
7467
7468 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
7469
7470         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
7471         "insn" from rtx to rtx_insn *.
7472         (permute_load): Likewise for param "insn".
7473         (permute_store): Likewise.
7474         (handle_special_swappables): Likewise for local "insn".
7475         (replace_swap_with_copy): Likewise for locals "insn" and
7476         "new_insn".
7477         (rs6000_analyze_swaps): Likewise for local "insn".
7478
7479 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7480
7481         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
7482         to rtx_insn *.
7483
7484 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7485
7486         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
7487         "note_list" from rtx to rtx_insn *.
7488         (BB_NOTE_LIST): Replace this function and...
7489         (SET_BB_NOTE_LIST): ...this function with...
7490         (BB_NOTE_LIST): ...the former macro implementation.
7491
7492         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
7493         local "from_start" from rtx to rtx_insn *.  Strengthen param
7494         "to_endp" from rtx * to rtx_insn **.
7495
7496         * haifa-sched.c (concat_note_lists): Likewise.
7497         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
7498         BB_NOTE_LIST.
7499         (sel_restore_notes): Likewise.
7500         (move_bb_info): Likewise.
7501         (BB_NOTE_LIST): Delete this function.
7502         (SET_BB_NOTE_LIST): Delete this function.
7503         * sel-sched.c (create_block_for_bookkeeping): Eliminate
7504         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
7505
7506 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7507
7508         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
7509         from rtx * to rtx_insn **.
7510         (reorder2): Likewise.
7511         (dependencies_evaluation_hook): Strengthen params "head", "tail"
7512         from rtx to rtx_insn *.
7513
7514         * doc/tm.texi: Update mechanically for above change to target.def.
7515
7516         * sched-int.h (note_list): Strengthen this variable from rtx to
7517         rtx_insn *.
7518         (remove_notes): Likewise for both params.
7519         (restore_other_notes): Likewise for return type and first param.
7520         (struct ready_list): Strengthen field "vec" from rtx * to
7521         rtx_insn **.
7522         (struct dep_replacement): Strenghten field "insn" from rtx to
7523         rtx_insn *.
7524         (struct deps_desc): Likewise for fields "last_debug_insn",
7525         "last_args_size".
7526         (struct haifa_sched_info): Likewise for callback field
7527         "can_schedule_ready_p"'s param, for first param of "new_ready"
7528         callback field, for both params of "rank" callback field, for
7529         first field of "print_insn" callback field (with a const), for
7530         both params of "contributes_to_priority" callback, for param
7531         of "insn_finishes_block_p" callback, for fields "prev_head",
7532         "next_tail", "head", "tail", for first param of "add_remove_insn"
7533         callback, for first param of "begin_schedule_ready" callback, for
7534         both params of "begin_move_insn" callback, and for second param
7535         of "advance_target_bb" callback.
7536         (add_dependence): Likewise for params 1 and 2.
7537         (sched_analyze): Likewise for params 2 and 3.
7538         (deps_analyze_insn): Likewise for param 2.
7539         (ready_element): Likewise for return type.
7540         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
7541         (try_ready): Strenghten param from rtx to rtx_insn *.
7542         (sched_emit_insn): Likewise for return type.
7543         (record_delay_slot_pair): Likewise for params 1 and 2.
7544         (add_delay_dependencies): Likewise for param.
7545         (contributes_to_priority): Likewise for both params.
7546         (find_modifiable_mems): Likewise.
7547
7548         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
7549         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
7550         "first_older_only_insn" from rtx to rtx_insn *.
7551         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
7552         rtx_insn **.
7553
7554         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
7555         "last_scheduled_iter0" from rtx to rtx_insn *.
7556         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
7557         (c6x_sched_reorder_1): Strengthen param "ready" and locals
7558         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
7559         "insn" from rtx to rtx_insn *.
7560         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
7561         rtx_insn **.
7562         (c6x_sched_reorder2): Strengthen param "ready" and locals
7563         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
7564         "insn" from rtx to rtx_insn *.
7565         (c6x_variable_issue):  Add a checked cast when assigning from insn
7566         to ss.last_scheduled_iter0.
7567         (split_delayed_branch): Strengthen param "insn" and local "i1"
7568         from rtx to rtx_insn *.
7569         (split_delayed_nonbranch): Likewise.
7570         (undo_split_delayed_nonbranch): Likewise for local "insn".
7571         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
7572         "entry_after", "end_packet", "head_insn", "tail_insn",
7573         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
7574         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
7575         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
7576         but add a checked cast on loop->start_label.  Consolidate calls to
7577         avoid assigning result of gen_spkernel to "insn", now an
7578         rtx_insn *.
7579
7580         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
7581         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
7582         rtx to rtx_insn *.
7583         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
7584         rtx_insn **.  Strengthen locals "top", "next" from rtx to
7585         rtx_insn *.
7586         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
7587         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
7588         (add_parameter_dependencies): Strengthen params "call", "head" and
7589         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
7590         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
7591         (add_dependee_for_func_arg): Likewise for param "arg" and local
7592         "insn".
7593         (ix86_dependencies_evaluation_hook): Likewise for params "head",
7594         "tail" and locals "insn", "first_arg".
7595
7596         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
7597         for params "head", "tail" and locals "insn", "next", "next_tail".
7598         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
7599         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
7600         "insn", "lowest", "highest" from rtx to rtx_insn *.
7601         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
7602         rtx_insn **.
7603         (ia64_sched_reorder2): Likewise.
7604
7605         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
7606         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
7607         from rtx * to rtx_insn **.
7608         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
7609         rtx_insn **.
7610         (mep_print_sched_insn): Strengthen param "insn" from rtx to
7611         rtx_insn *.
7612         (mep_sched_reorder): Strengthen param "ready" from rtx * to
7613         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
7614         to rtx_insn *.
7615
7616         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
7617         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
7618         to rtx_insn *.
7619         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
7620         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
7621         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
7622         rtx_insn **.
7623         (vr4130_reorder): Likewise.
7624         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
7625         rtx to rtx_insn *.
7626         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
7627         rtx_insn **.
7628         (mips_sched_reorder): Likewise.
7629         (mips_sched_reorder2): Likewise.
7630
7631         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
7632
7633         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
7634         Strengthen local "tmp" from rtx to rtx_insn *.
7635         (rs6000_sched_reorder2): Likewise.
7636
7637         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
7638         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
7639         (s390_sched_reorder): Strengthen param "ready" from rtx * to
7640         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
7641
7642         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
7643         "tmp2" from rtx to rtx_insn *.
7644         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
7645         Strengthen local "insn" from rtx to rtx_insn *.
7646         (ready_reorder): Strengthen param "ready" from rtx * to
7647         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
7648         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
7649         (sh_reorder2): Likewise.
7650
7651         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
7652         local "insn" from rtx to rtx_insn *.
7653
7654         * haifa-sched.c (note_list): Strengthen this variable from rtx to
7655         rtx_insn *.
7656         (scheduled_insns): Strengthen this variable from vec<rtx> to
7657         vec<rtx_insn *>.
7658         (set_modulo_params): Likewise for locals "i1", "i2".
7659         (record_delay_slot_pair): Likewise for params "i1", "i2".
7660         (add_delay_dependencies): Likewise for param "insn".
7661         (cond_clobbered_p): Likewise.
7662         (recompute_todo_spec): Likewise for local "prev".
7663         (last_scheduled_insn): Likewise for this variable.
7664         (nonscheduled_insns_begin): Likewise.
7665         (model_set_excess_costs): Strengthen param "insns" from rtx * to
7666         rtx_insn **.
7667         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
7668         rtx_insn *.
7669         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
7670         Strengthen local "insn" from rtx to rtx_insn *.
7671         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
7672         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
7673         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
7674         (ready_remove_first): Likewise for return type and local "t".
7675         (ready_element): Likewise for return type.
7676         (ready_remove): Likewise for return type and local "t".
7677         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
7678         (check_clobbered_conditions): Strengthen local "x" from rtx to
7679         rtx_insn *, adding a checked cast.
7680         (schedule_insn): Likewise for param "insn".
7681         (remove_notes): Likewise for params "head", "tail" and locals
7682         "next_tail", "insn", "next".
7683         (struct haifa_saved_data): Likewise for fields
7684         "last_scheduled_insn", "nonscheduled_insns_begin".
7685         (save_backtrack_point): Update for change to field "vec" of
7686         struct ready_list.
7687         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
7688         rtx_insn **.
7689         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
7690         from rtx to rtx_insn *
7691         (resolve_dependencies): Strengthen param "insn" from rtx to
7692         rtx_insn *
7693         (restore_other_notes): Likewise for return type, for param "head"
7694         and local "note_head".
7695         (undo_all_replacements): Likewise for local "insn".
7696         (first_nonscheduled_insn): Likewise for return type and local "insn".
7697         (queue_to_ready): Likewise for local "insn", adding checked casts.
7698         (early_queue_to_ready): Likewise for local "insn".
7699         (debug_ready_list_1): Strengthen local "p" from rtx * to
7700         rtx_insn **.
7701         (move_insn): Strengthen param "insn" and local "note" from rtx to
7702         rtx_insn *
7703         (insn_finishes_cycle_p): Likewise for param "insn".
7704         (max_issue): Likewise for local "insn".
7705         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
7706         to rtx_insn **.
7707         (commit_schedule): Strengthen param "prev_head" and local "insn"
7708         from rtx to rtx_insn *
7709         (prune_ready_list): Likewise for local "insn".
7710         (schedule_block): Likewise for locals "prev_head", "head", "tail",
7711         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
7712         (set_priorities): Likewise for local "prev_head".
7713         (try_ready): Likewise for param "next".
7714         (fix_tick_ready): Likewise.
7715         (change_queue_index): Likewise.
7716         (sched_extend_ready_list): Update for change to field "vec" of
7717         struct ready_list.
7718         (generate_recovery_code): Strengthen param "insn" from rtx to
7719         rtx_insn *.
7720         (begin_speculative_block): Likewise.
7721         (create_check_block_twin): Likewise for param "insn" and locals
7722         "label", "check", "twin".  Introduce local "check_pat" to avoid
7723         "check" being used as a plain rtx before being used as an insn.
7724         (fix_recovery_deps): Add a checked cast to rtx_insn * when
7725         extracting elements from ready_list.
7726         (sched_remove_insn): Strengthen param "insn" from rtx to
7727         rtx_insn *.
7728         (sched_emit_insn): Likewise for return type.
7729         (ready_remove_first_dispatch): Likewise for return type and local
7730         "insn".
7731
7732         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
7733
7734         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
7735         const rtx_insn *.
7736
7737         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
7738         from rtx to rtx_insn *.
7739         (add_dependence_list): Likewise for param "insn".  Add a checked
7740         cast.
7741         (add_dependence_list_and_free): Strengthen param "insn" from rtx
7742         to rtx_insn *.  Strengthen param "list_p" from rtx * to
7743         rtx_insn **.
7744         (chain_to_prev_insn): Strengthen param "insn" and locals
7745         "prec_nonnote", "i" from rtx to rtx_insn *.
7746         (flush_pending_lists): Likewise for param "insn".
7747         (cur_insn): Likewise for this variable.
7748         (haifa_start_insn): Add a checked cast.
7749         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
7750         (sched_analyze_reg): Likewise for param "insn".
7751         (sched_analyze_1): Likewise.
7752         (sched_analyze_2): Likewise.  Add checked casts.
7753         (sched_analyze_insn): Likewise.  Also for local "prev".
7754         (deps_analyze_insn): Likewise for param "insn".
7755         (sched_analyze): Likewise for params "head", "tail" and local "insn".
7756         (add_dependence_1): Likewise for params "insn", "elem".
7757         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
7758         (parse_add_or_inc): Likewise for param "insn".
7759         (find_inc): Likewise for local "inc_cand".
7760         (find_modifiable_mems): Likewise for params "head", "tail" and
7761         locals "insn", "next_tail".
7762
7763         * sched-ebb.c (init_ready_list): Likewise for local "insn".
7764         (begin_schedule_ready): Likewise for param "insn".
7765         (begin_move_insn): Likewise for params "insn" and "last".
7766         (ebb_print_insn): Strengthen param "insn" from const_rtx to
7767         const rtx_insn *.
7768         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
7769         (ebb_contributes_to_priority): Likewise for params "next", "insn".
7770         (ebb_add_remove_insn): Likewise for param "insn".
7771         (advance_target_bb): Likewise.
7772
7773         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
7774         "insn".
7775         (check_live): Likewise for param "insn".
7776         (init_ready_list): Likewise for local "insn".
7777         (can_schedule_ready_p): Likewise for param "insn".
7778         (begin_schedule_ready): Likewise.
7779         (new_ready): Likewise for param "next".
7780         (rgn_print_insn): Likewise for param "insn".
7781         (rgn_rank): Likewise for params "insn1", "insn2".
7782         (contributes_to_priority): Likewise for params "next", "insn".
7783         (rgn_insn_finishes_block_p): Likewise for param "insn".
7784         (add_branch_dependences): Likewise for params "head", "tail" and
7785         locals "insn", "last".
7786         (rgn_add_remove_insn): Likewise for param "insn".
7787         (advance_target_bb): Likewise.
7788
7789         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
7790         const_rtx to const rtx_insn *.
7791
7792         * sel-sched-dump.h (sel_print_insn): Likewise.
7793
7794         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
7795         (deps_init_id): Likewise.
7796
7797         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
7798         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
7799         rtx_insn **.
7800
7801 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7802
7803         * output.h (final_start_function): Strengthen param 1 from rtx to
7804         rtx_insn *.
7805
7806         * final.c (final_start_function): Likewise, renaming back from
7807         "uncast_first" to "first", and dropping the checked cast from rtx
7808         to rtx_insn *.
7809
7810 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7811
7812         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
7813         * final.c (final): Likewise.  Rename param back from
7814         "uncast_first" to "first" and eliminate the checked cast from rtx
7815         to rtx_insn *.
7816
7817 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7818
7819         * output.h (shorten_branches): Strengthen param from rtx to
7820         rtx_insn *.
7821
7822         * final.c (shorten_branches): Likewise, renaming param back from
7823         "uncast_first" to "first", and dropping the checked cast from rtx
7824         to rtx_insn *.
7825
7826         * genattr.c (gen_attr): Likewise when writing out the prototype of
7827         shorten_branches.
7828
7829 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7830
7831         * sched-int.h (struct haifa_sched_info): Strengthen fields
7832         "prev_head" and "next_tail" from rtx to rtx_insn *.
7833
7834 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7835
7836         * rtl.h (rtx_jump_table_data::get_labels): New method.
7837         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
7838         with use of the new rtx_jump_table_data::get_labels method.
7839         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
7840         to rtx_jump_table_data *.  Simplify by using get_labels method.
7841         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
7842         a dyn_cast, introducing local "table", using it to replace
7843         label-lookup logic with a get_labels method call.
7844         (patch_jump_insn): Simplify using get_labels method.
7845         * dwarf2cfi.c (create_trace_edges): Likewise.
7846         * rtlanal.c (label_is_jump_target_p): Likewise.
7847
7848 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7849
7850         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
7851         to rtx_insn *.
7852
7853         * emit-rtl.c (unshare_all_rtl_1): Likewise.
7854         (unshare_all_rtl_again): Likewise, also for local "p".
7855
7856 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7857
7858         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
7859         to rtx_insn *.
7860         * cfgrtl.c (delete_insn_and_edges): Likewise.
7861
7862 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7863
7864         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
7865         from rtx to rtx_insn *.
7866
7867         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
7868
7869 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7870
7871         * function.c (thread_prologue_and_epilogue_insns): Likewise for
7872         locals "returnjump", "epilogue_end", "insn", "next".
7873
7874         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
7875         "returnjump" from rtx * to rtx_insn **.
7876         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
7877
7878 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7879
7880         * basic-block.h (struct edge_def). Strengthen "r" within
7881         union edge_def_insns from rtx to rtx_insn *.
7882
7883         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
7884         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
7885         rtx_insn *.
7886         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
7887         from rtx to rtx_insn *.
7888         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
7889         rtx_insn *.
7890         * postreload-gcse.c (reg_killed_on_edge): Likewise.
7891         (reg_used_on_edge): Likewise.
7892         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
7893         (gt_pch_nx): New overload for rtx_insn *&.
7894         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
7895         from rtx to rtx_insn *.
7896
7897 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7898
7899         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
7900         from rtx to rtx_insn *.
7901         (BB_FOOTER): Replace function with access macro.
7902         (SET_BB_FOOTER): Delete.
7903
7904         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
7905         with BB_FOOTER.
7906         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
7907         (emit_barrier_after_bb): Likewise.
7908         (record_effective_endpoints): Likewise.
7909         (relink_block_chain): Likewise.
7910         (fixup_fallthru_exit_predecessor): Likewise.
7911         (cfg_layout_duplicate_bb): Likewise.
7912         (cfg_layout_split_block): Likewise.
7913         (cfg_layout_delete_block): Likewise.
7914         (cfg_layout_merge_blocks): Likewise.
7915         (BB_FOOTER): Delete function.
7916         (SET_BB_FOOTER): Delete function.
7917         * combine.c (update_cfg_for_uncondjump): Replace uses of
7918         SET_BB_FOOTER with BB_FOOTER.
7919
7920 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7921
7922         * except.h (struct eh_landing_pad_d): Strengthen field
7923         "landing_pad" from rtx to rtx_code_label *.
7924
7925         * except.c (sjlj_emit_dispatch_table): Likewise for param
7926         "dispatch_label"
7927         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
7928
7929 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7930
7931         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
7932         first param from rtx to rtx_insn *.
7933         * config/xtensa/xtensa.c (struct machine_function): Likewise for
7934         field "set_frame_ptr_insn".
7935         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
7936         "csend" from rtx to rtx_code_label *.
7937         (xtensa_expand_atomic): Likewise for local "csloop".
7938         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
7939         rtx_insn *.
7940         (xtensa_call_tls_desc): Likewise for return type and locals
7941         "call_insn", "insns".
7942         (xtensa_legitimize_tls_address): Likewise for local "insns".
7943         (xtensa_expand_prologue): Likewise for locals "insn", "first".
7944
7945 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7946
7947         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
7948         first param from rtx to rtx_insn *.
7949         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
7950         "insn".
7951
7952 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7953
7954         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
7955         Strengthen param 1 from rtx to rtx_insn *.
7956         (tilepro_output_cbranch): Likewise.
7957         (tilepro_adjust_insn_length): Likewise.
7958         (tilepro_final_prescan_insn): Likewise for sole param.
7959
7960         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
7961         Likewise for local "last".
7962         (cbranch_predicted_p): Likewise for param "insn".
7963         (tilepro_output_simple_cbranch_with_opcode): Likewise.
7964         (tilepro_output_cbranch_with_opcode): Likewise.
7965         (tilepro_output_cbranch): Likewise.
7966         (frame_emit_load): Likewise for return type and locals "seq",
7967         "insn".
7968         (emit_sp_adjust): Likewise for return type and local "insn".
7969         (tilepro_expand_epilogue): Likewise for locals "last_insn",
7970         "insn".
7971         (tilepro_adjust_insn_length): Likewise for param "insn".
7972         (next_insn_to_bundle): Likewise for return type and params
7973         "r", "end".
7974         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
7975         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
7976         local "new_insns".
7977         (match_addli_pcrel): Likewise for param "insn".
7978         (replace_addli_pcrel): Likewise.
7979         (match_auli_pcrel): Likewise.
7980         (replace_auli_pcrel): Likewise.
7981         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
7982         "next_insn".
7983         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
7984         "queue", "next_queue", "prev".
7985         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
7986         (tilepro_final_prescan_insn): Likewise for param "insn".
7987
7988 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7989
7990         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
7991         Strengthen param 1 from rtx to rtx_insn *.
7992         (tilegx_output_cbranch): Likewise.
7993         (tilegx_adjust_insn_length): Likewise.
7994         (tilegx_final_prescan_insn): Likewise for sole param.
7995
7996         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
7997         or local "last".
7998         (cbranch_predicted_p): Likewise for param "insn".
7999         (tilegx_output_simple_cbranch_with_opcode): Likewise.
8000         (tilegx_output_cbranch_with_opcode): Likewise.
8001         (tilegx_output_cbranch): Likewise.
8002         (frame_emit_load): Likewise for return type.
8003         (set_frame_related_p): Likewise for locals "seq", "insn".
8004         (emit_sp_adjust): Likewise for return type, and for local "insn".
8005         Introduce local "pat" for use in place of "insn" where the latter
8006         isn't an instruction.
8007         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
8008         from rtx to rtx_insn *.
8009         (tilegx_adjust_insn_length): Likewise for param "insn".
8010         (next_insn_to_bundle): Likewise for return type and params "r" and
8011         "end".
8012         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
8013         "end".
8014         (replace_insns): Likewise for params "old_insn", "new_insns".
8015         (replace_mov_pcrel_step1): Likewise for param "insn" and local
8016         "new_insns".
8017         (replace_mov_pcrel_step2): Likewise.
8018         (replace_mov_pcrel_step3): Likewise.
8019         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
8020         "next_insn".
8021         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
8022         "queue", "next_queue", "prev".
8023         (tilegx_output_mi_thunk): Likewise for local "insn".
8024         (tilegx_final_prescan_insn): Likewise for param "insn".
8025
8026 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8027
8028         * config/spu/spu.c (frame_emit_store): Strengthen return type from
8029         rtx to rtx_insn *.
8030         (frame_emit_load): Likewise.
8031         (frame_emit_add_imm): Likewise, also for local "insn".
8032         (spu_expand_prologue): Likewise for local "insn".
8033         (struct spu_bb_info): Likewise for field "prop_jump".
8034         (emit_nop_for_insn): Likewise for param "insn" and local
8035         "new_insn".
8036         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
8037         "hbr_insn".
8038         (spu_emit_branch_hint): Likewise for params "before", "branch" and
8039         locals "hint", "insn".
8040         (get_branch_target): Likewise for param "branch".
8041         (insn_clobbers_hbr): Likewise for param "insn".
8042         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
8043         locals "insn", "before_4", "before_16".
8044         (insert_hbrp): Likewise for local "insn".
8045         (spu_machine_dependent_reorg): Likewise for locals "branch",
8046         "insn", "next", "bbend".
8047         (uses_ls_unit): Likewise for param "insn".
8048         (get_pipe): Likewise.
8049         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
8050         introducing a checked cast.
8051         (spu_sched_adjust_cost): Likewise for params "insn" and
8052         "dep_insn".
8053         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
8054         (spu_sms_res_mii): Likewise.
8055
8056 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8057
8058         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
8059         from rtx to rtx_insn *.
8060         (output_cbranch): Likewise for param 6.
8061         (output_return): Likewise for param 1.
8062         (output_sibcall): Likewise.
8063         (output_v8plus_shift): Likewise.
8064         (output_v8plus_mult): Likewise.
8065         (output_v9branch): Likewise for param 7.
8066         (output_cbcond):  Likewise for param 3.
8067
8068         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
8069         for local "insn".
8070         (sparc_legitimize_pic_address): Likewise.
8071         (sparc_emit_call_insn): Likewise.
8072         (emit_save_or_restore_regs): Likewise.
8073         (emit_window_save): Likewise for return type and local "insn".
8074         (sparc_expand_prologue): Likewise for local "insn".
8075         (sparc_flat_expand_prologue): Likewise.
8076         (output_return): Likewise for param "insn".
8077         (output_sibcall): Likewise for param "insn" and local "delay".
8078         (output_ubranch): Likewise for param "insn".
8079         (output_cbranch): Likewise.
8080         (output_cbcond): Likewise.
8081         (output_v9branch): Likewise.
8082         (output_v8plus_shift): Likewise.
8083         (sparc_output_mi_thunk): Likewise for local "insn".
8084         (get_some_local_dynamic_name): Likewise.
8085         (output_v8plus_mult): Likewise for param "insn".
8086
8087 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8088
8089         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
8090         from rtx to rtx_insn *.
8091         (output_branchy_insn): Likewise for param 3.
8092         (output_far_jump): Likewise for param 1.
8093         (final_prescan_insn): Likewise.
8094         (sh_insn_length_adjustment): Likewise for sole param.
8095
8096         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
8097         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
8098         rtx_code_label *.
8099         (sh_emit_compare_and_set): Likewise for local "lab".
8100         (output_far_jump): Strengthen param "insn" and local "prev" from
8101         rtx to rtx_insn *.
8102         (output_branchy_insn): Likewise for param "insn" and local
8103         "next_insn".
8104         (output_ieee_ccmpeq): Likewise for param "insn".
8105         (struct label_ref_list_d): Strengthen field "label" from rtx to
8106         rtx_code_label *.
8107         (pool_node): Likewise.
8108         (pool_window_label): Likewise for this global.
8109         (add_constant): Likewise for return type and locals "lab", "new_rtx".
8110         (dump_table): Strengthen params "start", "barrier" and local
8111         "scan" from rtx to rtx_insn *.
8112         (broken_move): Likewise for param "insn".
8113         (untangle_mova): Likewise for params "first_mova" and "new_mova".
8114         Strengthen param "first_mova" from rtx * to rtx_insn **.
8115         (mova_p): Likewise for param "insn".
8116         (fixup_mova): Likewise for param "mova".
8117         (find_barrier): Likewise for return type, params "mova" and
8118         "from", and locals "barrier_before_mova", "found_barrier",
8119         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
8120         "label" from rtx to rtx_code_label *.
8121         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
8122         rtx to rtx_insn *.
8123         (sh_reorg): Likewise for locals "link", "scan", "barrier".
8124         (split_branches): Likewise for param "first" and local "insn".
8125         (final_prescan_insn): Likewise for param "insn".
8126         (sequence_insn_p): Likewise for locals "prev", "next".
8127         (sh_insn_length_adjustment): Likewise for param "insn".
8128         (sh_can_redirect_branch): Likewise for local "insn".
8129         (find_r0_life_regions): Likewise for locals "end", "insn".
8130         (sh_output_mi_thunk): Likewise for local "insns".
8131
8132 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8133
8134         * config/score/score.c (score_output_mi_thunk): Strengthen local
8135         "insn" from rtx to rtx_insn *.
8136         (score_prologue): Likewise.
8137
8138 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8139
8140         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
8141         1 from rtx to rtx_insn *.
8142         (s390_emit_jump): Likewise for return type.
8143         (s390_emit_call): Likewise.
8144         (s390_load_got): Likewise.
8145
8146         * config/s390/s390.c (last_scheduled_insn): Likewise for this
8147         variable.
8148         (s390_match_ccmode): Likewise for param "insn".
8149         (s390_emit_jump): Likewise for return type.
8150         (s390_split_branches): Likewise for local "label".
8151         (struct constant): Strengthen field "label" from rtx to
8152         rtx_code_label *.
8153         (struct constant_pool): Likewise for field "label".  Strengthen
8154         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
8155         rtx_insn *.
8156         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
8157         insns.
8158         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
8159         (s390_end_pool): Likewise.
8160         (s390_dump_pool): Likewise for local "insn".
8161         (s390_mainpool_start): Likewise.
8162         (s390_chunkify_start): Likewise.
8163         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
8164         with insns.  Strengthen locals "label", "jump", "barrier", "next",
8165         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
8166         (s390_chunkify_finish): Strengthen local "insn" from rtx to
8167         rtx_insn *.
8168         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
8169         "jump", "label", "next_insn".
8170         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
8171         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
8172         "tbegin_insn".
8173         (s390_load_got): Likewise for return type and local "insns".
8174         (s390_save_gprs_to_fprs): Likewise for local "insn".
8175         (s390_restore_gprs_from_fprs): Likewise.
8176         (pass_s390_early_mach::execute): Likewise.
8177         (s390_emit_prologue): Likewise for local "insns".
8178         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
8179         rtx_code_label *.
8180         (s390_emit_call): Strengthen return type and local "insn" from
8181         rtx to rtx_insn *.
8182         (s390_emit_tpf_eh_return): Likewise for local "insn".
8183         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
8184         "next_insn", introducing locals "s_pat", "rpat" to allow this.
8185         (s390_fix_long_loop_prediction): Likewise for param "insn" and
8186         local "cur_insn".
8187         (s390_non_addr_reg_read_p): Likewise for param "insn".
8188         (find_cond_jump): Likewise for return type and param "insn".
8189         (s390_swap_cmp): Likewise for param "insn".
8190         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
8191         "prev_insn", "next_insn".
8192         (s390_reorg): Likewise for locals "insn", "target".
8193         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
8194         (s390_sched_variable_issue): For now, rename param "insn" to
8195         "uncast_insn", introducing a checked cast.
8196         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
8197         insn.
8198         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
8199         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
8200
8201 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8202
8203         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
8204         param from rtx to rtx_insn *.
8205         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
8206
8207 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8208
8209         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
8210         4 from rtx to rtx_insn *.
8211         (rs6000_final_prescan_insn): Likewise for first param.
8212         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
8213         local "insn".
8214         (rs6000_get_some_local_dynamic_name): Likewise.
8215         (output_cbranch): Likewise for param "insn".
8216         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
8217         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
8218         (rs6000_emit_allocate_stack): Likewise for local "insn".
8219         (load_cr_save): Likewise.
8220         (restore_saved_cr): Likewise.
8221         (restore_saved_lr): Likewise.
8222         (emit_cfa_restores): Likewise.
8223         (rs6000_output_function_epilogue): Likewise for locals "insn" and
8224         "deleted_debug_label".
8225         (rs6000_output_mi_thunk): Likewise for local "insn".
8226         (rs6000_final_prescan_insn): Likewise for param "insn".
8227
8228 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8229
8230         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
8231         Strengthen param "insn" from rtx to rtx_insn *.
8232         * config/picochip/picochip.c (picochip_current_prescan_insn):
8233         Likewise for this variable.
8234         (picochip_final_prescan_insn): Likewise for param "insn".
8235
8236 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8237
8238         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
8239         from rtx to rtx_insn *.
8240         (pa_output_indirect_call): Likewise.
8241         (pa_adjust_insn_length): Likewise.
8242         (pa_attr_length_millicode_call): Likewise.
8243         (pa_attr_length_call): Likewise.
8244         (pa_attr_length_indirect_call): Likewise.
8245
8246         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
8247         "insn".
8248         (pa_attr_length_millicode_call): Likewise.
8249         (pa_attr_length_call): Likewise.
8250         (pa_output_call): Likewise.
8251         (pa_attr_length_indirect_call): Likewise.
8252         (pa_output_indirect_call): Likewise.
8253
8254 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8255
8256         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
8257         Strengthen first param from rtx to rtx_insn *.
8258         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
8259         param "insn".
8260
8261 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8262
8263         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
8264         type from rtx to rtx_insn *.
8265         (mips_expand_call): Likewise.
8266         (mips_adjust_insn_length): Likewise for first param.
8267         (mips_output_conditional_branch): Likewise.
8268         (mips_output_order_conditional_branch): Likewise.
8269         (mips_final_prescan_insn): Likewise.
8270
8271         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
8272         rtx_insn * for the SEQUENCE case.
8273         (SEQ_END): Likewise.
8274         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
8275         (mips_emit_call_insn): Likewise, also for local "insn".
8276         (mips16_gp_pseudo_reg): Likewise for local "scan".
8277         (mips16_build_call_stub): Likewise for return type and for local
8278         "insn".  Introduce a new local "pattern" so that "insn" can indeed
8279         be an insn.
8280         (mips_expand_call): Strengthen return type and local "insn" from
8281         rtx to rtx_insn *.
8282         (mips_block_move_loop): Strengthen local "label" from rtx to
8283         rtx_code_label *.
8284         (mips_expand_synci_loop): Likewise for locals "label",
8285         "end_label".
8286         (mips_set_frame_expr): Strengthen local "insn" from rtx to
8287         rtx_insn *.
8288         (mips16e_collect_argument_saves): Likewise for locals "insn",
8289         "next".
8290         (mips_find_gp_ref): Likewise for param of callback for "pred"
8291         param, and for local "insn".
8292         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
8293         (mips_insn_has_flexible_gp_ref_p): Likewise.
8294         (mips_epilogue_emit_cfa_restores): Likewise for return type and
8295         local "insn".
8296         (mips_epilogue_set_cfa): Likewise for local "insn".
8297         (mips_expand_epilogue): Likewise.
8298         (mips_adjust_insn_length): Likewise for param "insn".
8299         (mips_output_conditional_branch): Likewise.
8300         (mips_output_order_conditional_branch): Likewise.
8301         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
8302         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
8303         "falu2_turn_enabled_insn".
8304         (mips_builtin_branch_and_move): Strengthen locals "true_label",
8305         "done_label" from rtx to rtx_code_label *.
8306         (struct mips16_constant): Likewise for field "label".
8307         (mips16_add_constant): Likewise for return type.
8308         (mips16_emit_constants_1): Strengthen return type and param "insn"
8309         from rtx to rtx_insn *.
8310         (mips16_emit_constants): Likewise for param "insn".
8311         (mips16_insn_length): Likewise.
8312         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
8313         to rtx_code_label *.
8314         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
8315         from rtx to rtx_insn *.
8316         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
8317         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
8318         (r10k_simplify_address): Strengthen param "insn" and local
8319         "def_insn" from rtx to rtx_insn *.
8320         (r10k_safe_address_p): Strengthen param "insn" from rtx to
8321         rtx_insn *.
8322         (r10k_needs_protection_p_1): Update target type of cast of data
8323         from to rtx to rtx_insn *.
8324         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
8325         rtx * to rtx_insn **.
8326         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
8327         rtx_insn *.
8328         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
8329         (mips_call_expr_from_insn): Likewise for param "insn".
8330         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
8331         (mips_find_pic_call_symbol): Likewise for param "insn".
8332         (mips_annotate_pic_calls): Likewise for local "insn".
8333         (mips_sim_insn): Likewise for this variable.
8334         (struct mips_sim): Likewise for field "insn" within elements of
8335         last_set array.
8336         (mips_sim_wait_reg): Likewise for param "insn".
8337         (mips_sim_wait_regs): Likewise.
8338         (mips_sim_wait_units): Likewise.
8339         (mips_sim_wait_insn): Likewise.
8340         (mips_sim_issue_insn): Likewise.
8341         (mips_sim_finish_insn): Likewise.
8342         (mips_seq_time): Likewise for param "seq" and local "insn".
8343         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
8344         locals "first", "second".
8345         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
8346         "last", "last2", "next".
8347         (mips_avoid_hazard): Likewise for params "after", "insn".
8348         (mips_reorg_process_insns): Likewise for locals "insn",
8349         "last_insn", "subinsn", "next_insn".
8350         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
8351         (mips16_split_long_branches): Likewise for locals "insn" "jump",
8352         "jump_sequence".
8353         (mips_output_mi_thunk): Likewise for local "insn".
8354         (mips_final_prescan_insn): Likewise for param "insn".
8355
8356 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8357
8358         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
8359         Strengthen return type and local "insns" from rtx to rtx_insn *.
8360         (microblaze_legitimize_tls_address): Likewise for local "insns".
8361         (microblaze_block_move_loop): Strengthen local "label" from rtx
8362         to rtx_code_label *.
8363         (microblaze_expand_prologue): Strengthen two locals named "insn"
8364         from rtx to rtx_insn *.
8365         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
8366         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
8367         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
8368         to rtx_code_label *.
8369
8370 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8371
8372         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
8373         param from rtx to rtx_insn *.
8374         (mep_reuse_lo): Likewise for third param.
8375         (mep_use_post_modify_p): Likewise for first param.
8376         (mep_core_address_length): Likewise.
8377         (mep_cop_address_length): Likewise.
8378         (mep_final_prescan_insn): Likewise.
8379         (mep_store_data_bypass_p): Likewise for both params.
8380         (mep_mul_hilo_bypass_p): Likewise.
8381         (mep_ipipe_ldc_p): Likewise for param.
8382
8383         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
8384         (mep_rewrite_mult): Likewise.
8385         (mep_rewrite_mulsi3): Likewise.
8386         (mep_rewrite_maddsi3): Likewise.
8387         (mep_reuse_lo_p_1): Likewise.
8388         (mep_reuse_lo_p): Likewise.
8389         (mep_frame_expr): Likewise.
8390         (mep_make_parallel): Likewise for both params.
8391         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
8392         local "insn".
8393         (mep_use_post_modify_p): Likewise for param "insn".
8394         (mep_core_address_length): Likewise.
8395         (mep_cop_address_length): Likewise.
8396         (mep_reg_set_in_function): Likewise for local "insn".
8397         (mep_asm_without_operands_p): Likewise.
8398         (F): Likewise for return type and param "x".
8399         (add_constant): Likewise for local "insn".
8400         (maybe_dead_move): Likewise for return type and local "insn".
8401         (mep_expand_prologue): Likewise for local "insn".
8402         (mep_final_prescan_insn): Likewise for param "insn".
8403         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
8404         "next", "follow", "x".
8405         (mep_insert_repeat_label_last): Likewise for return type, param
8406         "last_insn", and locals "next", "prev".  Strengthen param "label"
8407         from rtx to rtx_code_label *.
8408         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
8409         rtx_insn *.
8410         (struct mep_doloop_end): Likewise for fields "insn" and
8411         "fallthrough".
8412         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
8413         Strengthen local "repeat_label" from rtx to rtx_code_label *.
8414         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
8415         rtx_insn *.
8416         (mep_invert_branch): Likewise for params "insn" and "after".
8417         (mep_reorg_erepeat): Likewise for param "insns" and locals
8418         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
8419         "l" from rtx to rtx_code_label *.
8420         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
8421         from rtx to rtx_insn *.
8422         (mep_reorg_addcombine): Likewise for param "insns" and locals
8423         "i", "n".
8424         (add_sp_insn_p): Likewise for param "insn".
8425         (mep_reorg_noframe): Likewise for param "insns" and locals
8426         "start_frame_insn", "end_frame_insn", "next".
8427         (mep_reorg): Likewise for local "insns".
8428         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
8429         cast.
8430         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
8431         (mep_mul_hilo_bypass_p): Likewise.
8432         (mep_ipipe_ldc_p): Likewise for param "insn".
8433         (mep_make_bundle): Likewise for return type, param "cop" and local
8434         "insn", splitting out the latter into a new local "seq" for when it
8435         is a SEQUENCE rather than an insn.
8436         (core_insn_p): Likewise for param "insn".
8437         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
8438         "last", "first", "note", "prev", "core_insn".
8439
8440 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8441
8442         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
8443         rtx to rtx_insn *.
8444         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
8445         (m68k_final_prescan_insn): Likewise for first param.
8446
8447         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
8448         (m68k_set_frame_related): Likewise for param "insn".
8449         (output_btst): Likewise for param "insn".
8450         (m68k_final_prescan_insn): Likewise.
8451         (m68k_move_to_reg): Likewise for local "insn".
8452         (m68k_call_tls_get_addr): Likewise for local "insns".
8453         (m68k_call_m68k_read_tp): Likewise.
8454         (strict_low_part_peephole_ok): Likewise for param "first_insn".
8455         (m68k_output_mi_thunk): Likewise for local "insn".
8456
8457 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8458
8459         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
8460         first param from rtx to rtx_insn *.
8461         (iq2000_adjust_insn_length): Likewise.
8462         (iq2000_output_conditional_branch): Likewise.
8463         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
8464         "insn" and local "nop_insn".
8465         (iq2000_annotate_frame_insn): Likewise for param "insn".
8466         (iq2000_expand_prologue): Likewise for both locals "insn".
8467         (iq2000_adjust_insn_length): Likewise for param "insn".
8468         (iq2000_output_conditional_branch): Likewise.
8469
8470 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8471
8472         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
8473         "insns" from rtx to rtx_insn *.
8474         (ia64_emit_cond_move): Likewise for locals "insn", "first".
8475         (struct spill_fill_data): Likewise for field "init_after" and for
8476         elements of array field "prev_insn".
8477         (spill_restore_mem): Likewise for locals "insn", "first".
8478         (do_spill): Likewise for local "insn".
8479         (do_restore): Likewise.
8480         (ia64_expand_prologue): Likewise.
8481         (ia64_expand_epilogue): Likewise.
8482         (emit_insn_group_barriers): Likewise for locals "insn",
8483         "last_label".
8484         (emit_all_insn_group_barriers): Likewise for locals "insn",
8485         "last".
8486         (dfa_stop_insn): Likewise for this global.
8487         (dfa_pre_cycle_insn): Likewise.
8488         (ia64_nop): Likewise.
8489         (final_emit_insn_group_barriers): Likewise for locals "insn",
8490         "last".
8491         (emit_predicate_relation_info): Likewise for locals "head", "n",
8492         "insn", "b", "a".
8493         (ia64_reorg): Likewise for local "insn".
8494         (ia64_output_mi_thunk): Likewise.
8495         (expand_vec_perm_interleave_2): Likewise for local "seq".
8496
8497 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8498
8499         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
8500         param 1 "insn" from rtx to rtx_insn *.
8501         (ix86_use_lea_for_mov): Likewise.
8502         (ix86_avoid_lea_for_addr): Likewise.
8503         (ix86_split_lea_for_addr): Likewise.
8504         (ix86_lea_for_add_ok): Likewise.
8505         (ix86_output_call_insn): Likewise.
8506
8507         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
8508         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
8509         (ix86_output_function_epilogue): Likewise for locals "insn",
8510         "deleted_debug_label".
8511         (legitimize_tls_address): Likewise for local "insn".
8512         (get_some_local_dynamic_name): Likewise.
8513         (increase_distance): Likewise for params "prev", "next".
8514         (distance_non_agu_define_in_bb): Likewise for params "insn",
8515         "start" and locals "prev", "next".
8516         (distance_non_agu_define): Likewise for param "insn".
8517         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
8518         locals "next", "prev".
8519         (distance_agu_use): Likewise for param "insn".
8520         (ix86_lea_outperforms): Likewise.
8521         (ix86_ok_to_clobber_flags): Likewise.
8522         (ix86_avoid_lea_for_add): Likewise.
8523         (ix86_use_lea_for_mov): Likewise.
8524         (ix86_avoid_lea_for_addr): Likewise.
8525         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
8526         (ix86_split_lea_for_addr): Likewise for param "insn".
8527         (ix86_lea_for_add_ok): Likewise for param "insn".
8528         (ix86_expand_carry_flag_compare): Likewise for local
8529         "compare_seq".
8530         (ix86_expand_int_movcc): Likewise.
8531         (ix86_output_call_insn): Likewise for param "insn".
8532         (ix86_output_call_insn): Likewise for local "i".
8533         (x86_output_mi_thunk): Introduce local "insn", using it in place
8534         of "tmp" when dealing with insns.
8535         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
8536         "start".
8537         (ix86_pad_returns): Likewise for locals "ret", "prev".
8538         (ix86_count_insn_bb): Likewise for local "insn".
8539         (ix86_pad_short_function): Likewise for locals "ret", "insn".
8540         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
8541         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
8542         (expand_vec_perm_interleave2): Likewise for local "seq".
8543         (expand_vec_perm_vperm2f128_vblend): Likewise.
8544         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
8545         call to for_each_rtx with for_each_rtx_in_insn.
8546
8547 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8548
8549         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
8550         "label" from rtx to rtx_code_label *.
8551         (ix86_expand_prologue): Likewise.
8552         (ix86_expand_split_stack_prologue): Likewise for locals "label",
8553         "varargs_label".
8554         (ix86_split_idivmod): Likewise for locals "end_label" and
8555         "qimode_label".
8556         (ix86_expand_branch): Likewise for local "label2".
8557         (ix86_expand_aligntest): Likewise for return type and local "label".
8558         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
8559         "top_label".
8560         (expand_movmem_epilogue): Likewise for the various locals named
8561         "label".
8562         (expand_setmem_epilogue): Likewise.
8563         (expand_small_movmem_or_setmem): Likewise for local "label".
8564         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
8565         Strengthen param "done_label" from rtx * to rtx_code_label **.
8566         Strengthen locals "loop_label" and "label" from rtx to
8567         rtx_code_label *.
8568         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
8569         Likewise for locals "loop_label", "label".
8570         (ix86_expand_set_or_movmem): Likewise for locals "label",
8571         "jump_around_label", "hot_label".
8572         (ix86_expand_strlensi_unroll_1): Likewise for locals
8573         "align_2_label", align_3_label", "align_4_label", "end_0_label",
8574         "end_2_label".
8575         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
8576         (void ix86_emit_i387_log1p): Likewise for locals "label1",
8577         "label2", "jump_label".
8578         (ix86_expand_sse_compare_and_jump): Likewise for return type and
8579         local "label".
8580         (ix86_expand_lfloorceil): Likewise for local "label".
8581         (ix86_expand_rint): Likewise.
8582         (ix86_expand_floorceildf_32): Likewise.
8583         (ix86_expand_floorceil): Likewise.
8584         (ix86_expand_rounddf_32): Likewise.
8585         (ix86_expand_trunc): Likewise.
8586         (ix86_expand_truncdf_32): Likewise.
8587         (ix86_expand_round): Likewise.
8588
8589 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8590
8591         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
8592         first param from rtx to rtx_insn *.
8593         (h8300_insn_length_from_table): Likewise.
8594         * config/h8300/h8300.c (F): Likewise for return type and param
8595         "x".
8596         (Fpa): Add a checked cast to rtx_insn *.
8597         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
8598         rtx_insn *.
8599         (final_prescan_insn): Likewise for param "insn".
8600         (h8300_binary_length): Likewise.
8601         (h8300_insn_length_from_table): Likewise.
8602
8603 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8604
8605         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
8606         Strengthen first param "insn" from rtx to rtx_insn *.
8607
8608         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
8609         Likewise.
8610         (frame_insn): Likewise for return type.  Introduce local "insn"
8611         for use in place of local "x" for use as an rtx_insn *.
8612         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
8613         (epiphany_expand_prologue): Likewise for local "insn".
8614         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
8615         * config/epiphany/resolve-sw-modes.c
8616         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
8617         "seq".
8618
8619 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8620
8621         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
8622         param from rtx to rtx_insn *.
8623         (c6x_final_prescan_insn): Likewise for first param.
8624
8625         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
8626         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
8627         (c6x_expand_compare): Strengthen local "insns" from rtx to
8628         rtx_insn *.
8629         (c6x_get_unit_specifier): Likewise for param "insn".
8630         (c6x_print_unit_specifier_field): Likewise.
8631         (c6x_final_prescan_insn): Likewise.
8632         (emit_add_sp_const): Likewise for local "insn".
8633         (c6x_expand_prologue): Likewise.
8634
8635 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8636
8637         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
8638         param 1 from rtx to rtx_insn *.
8639         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
8640         the various locals named "insn".
8641         (expand_epilogue_reg_restore): Likewise.
8642         (frame_related_constant_load): Likewise.
8643         (add_to_reg): Likewise.
8644         (emit_link_insn): Likewise.
8645         (do_link): Likewise.
8646         (expand_interrupt_handler_prologue): Likewise.
8647         (branch_dest): Likewise for param "branch".
8648         (asm_conditional_branch): Likewise for param "insn".
8649         (gen_one_bundle): Likewise for elements of param "slot" and local
8650         "t".
8651         (bfin_gen_bundles): Likewise for locals "insn", "next" and
8652         elements of local "slot".
8653         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
8654         "queue", "next_queue", "prev".
8655         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
8656         (add_sched_insns_for_speculation): Likewise for local "insn".
8657
8658 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8659
8660         * config/avr/avr-protos.h (output_movqi): Strengthen first param
8661         from rtx to rtx_insn *.
8662         (output_movhi): Likewise.
8663         (output_movsisf): Likewise.
8664         (avr_out_tstsi): Likewise.
8665         (avr_out_tsthi): Likewise.
8666         (avr_out_tstpsi): Likewise.
8667         (avr_out_compare): Likewise.
8668         (avr_out_compare64): Likewise.
8669         (avr_out_movpsi): Likewise.
8670         (ashlqi3_out): Likewise.
8671         (ashlhi3_out): Likewise.
8672         (ashlsi3_out): Likewise.
8673         (ashrqi3_out): Likewise.
8674         (ashrhi3_out): Likewise.
8675         (ashrsi3_out): Likewise.
8676         (lshrqi3_out): Likewise.
8677         (lshrhi3_out): Likewise.
8678         (lshrsi3_out): Likewise.
8679         (avr_out_ashlpsi3): Likewise.
8680         (avr_out_ashrpsi3): Likewise.
8681         (avr_out_lshrpsi3): Likewise.
8682         (avr_out_fract): Likewise.
8683         (avr_out_sbxx_branch): Likewise.
8684         (avr_out_round): Likewise.
8685         (avr_out_xload): Likewise.
8686         (avr_out_movmem): Likewise.
8687         (adjust_insn_length): Likewise.
8688         (avr_out_lpm): Likewise.
8689         (reg_unused_after): Likewise.
8690         (_reg_unused_after): Likewise.
8691         (avr_jump_mode): Likewise for second param.
8692         (jump_over_one_insn): Likewise for first param.
8693         (avr_final_prescan_insn): Likewise.
8694         (out_shift_with_cnt): Likewise for second param.
8695
8696         * config/avr/avr.c (get_sequence_length): Likewise for param
8697         "insns" and local "insn".
8698         (emit_push_byte): Likewise for local "insn".
8699         (emit_push_sfr): Likewise.
8700         (avr_prologue_setup_frame): Likewise for locals "insn",
8701         "fp_plus_insns", "sp_plus_insns".
8702         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
8703         "sp_plus_insns".
8704         (avr_jump_mode): Likewise for param "insn".
8705         (avr_final_prescan_insn): Likewise.
8706         (avr_find_unused_d_reg): Likewise.
8707         (avr_out_lpm_no_lpmx): Likewise.
8708         (avr_out_lpm): Likewise.
8709         (avr_out_xload): Likewise.
8710         (output_movqi): Likewise.
8711         (output_movhi): Likewise.
8712         (out_movqi_r_mr): Likewise.
8713         (out_movhi_r_mr): Likewise.
8714         (out_movsi_r_mr): Likewise.
8715         (out_movsi_mr_r): Likewise.
8716         (output_movsisf): Likewise.
8717         (avr_out_load_psi): Likewise.
8718         (avr_out_store_psi): Likewise.
8719         (avr_out_movpsi): Likewise.
8720         (out_movqi_mr_r): Likewise.
8721         (avr_out_movhi_mr_r_xmega): Likewise.
8722         (out_movhi_mr_r): Likewise.
8723         (compare_condition): Likewise for param "insn" and local "next".
8724         (compare_sign_p): Likewise for param "insn".
8725         (compare_diff_p): Likewise.
8726         (compare_eq_p): Likewise.
8727         (avr_out_compare): Likewise.
8728         (avr_out_compare64): Likewise.
8729         (avr_out_tsthi): Likewise.
8730         (avr_out_tstpsi): Likewise.
8731         (avr_out_tstsi): Likewise.
8732         (out_shift_with_cnt): Likewise.
8733         (ashlqi3_out): Likewise.
8734         (ashlhi3_out): Likewise.
8735         (avr_out_ashlpsi3): Likewise.
8736         (ashlsi3_out): Likewise.
8737         (ashrqi3_out): Likewise.
8738         (ashrhi3_out): Likewise.
8739         (avr_out_ashrpsi3): Likewise.
8740         (ashrsi3_out): Likewise.
8741         (lshrqi3_out): Likewise.
8742         (lshrhi3_out): Likewise.
8743         (avr_out_lshrpsi3): Likewise.
8744         (lshrsi3_out): Likewise.
8745         (avr_out_fract): Likewise.
8746         (avr_out_round): Likewise.
8747         (avr_adjust_insn_length): Likewise.
8748         (reg_unused_after): Likewise.
8749         (_reg_unused_after): Likewise.
8750         (avr_compare_pattern): Likewise.
8751         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
8752         and locals "branch1", "branch2", "insn2", "jump".
8753         (avr_reorg): Likewise for local "insn".
8754         (avr_2word_insn_p): Likewise for param "insn".
8755         (jump_over_one_insn_p): Likewise.
8756         (avr_out_sbxx_branch): Likewise.
8757         (avr_out_movmem): Likewise.
8758
8759 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8760
8761         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
8762         param from rtx to rtx_insn *.
8763         (thumb1_final_prescan_insn): Likewise.
8764         (thumb2_final_prescan_insn): Likewise.
8765
8766         * config/arm/arm.c (emit_set_insn): Strengthen return type from
8767         rtx to rtx_insn *.
8768         (struct minipool_node): Likewise for field "insn".
8769         (dump_minipool): Likewise for param "scan".
8770         (create_fix_barrier): Likewise for local "from".  Strengthen local
8771         "label" from rtx to rtx_code_label *.
8772         (push_minipool_barrier): Strengthen param "insn" from rtx to
8773         rtx_insn *.
8774         (push_minipool_fix): Likewise.
8775         (note_invalid_constants): Likewise.
8776         (thumb2_reorg): Likewise for local "insn".
8777         (arm_reorg): Likewise.
8778         (thumb2_final_prescan_insn): Likewise for param
8779         "insn" and local "first_insn".
8780         (arm_final_prescan_insn): Likewise for param "insn" and locals
8781         "start_insn", "this_insn".
8782         (arm_debugger_arg_offset): Likewise for param "insn".
8783         (thumb1_emit_multi_reg_push): Likewise for return type and local
8784         "insn".
8785         (thumb1_final_prescan_insn): Likewise for param "insn".
8786         (thumb_far_jump_used_p): Likewise for local "insn".
8787         (thumb1_expand_prologue): Likewise.
8788         (arm_expand_epilogue_apcs_frame): Likewise.
8789         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
8790         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
8791         from rtx to rtx_code_label *.
8792         (arm_split_atomic_op): Likewise for local "label".
8793         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
8794
8795 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8796
8797         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
8798         first param from rtx to rtx_insn *.
8799         (arc_verify_short): Likewise.
8800         (arc_short_long): Likewise.
8801         (arc_need_delay): Likewise.
8802
8803         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
8804         "target_insn".
8805         (arc_ccfsm_advance): Likewise for param "insn" and locals
8806         "start_insn", "this_insn".
8807         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
8808         (arc_ccfsm_post_advance): Likewise for param "insn".
8809         (arc_next_active_insn): Likewise for return type and param "insn".
8810         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
8811         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
8812         (output_short_suffix): Likewise for local "insn".
8813         (arc_final_prescan_insn): Likewise for param "insn".  Remove
8814         now-redundant checked cast.
8815         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
8816         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
8817         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
8818         for use where lc_set became an insn.
8819         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
8820         rtx to rtx_insn *.
8821         (arc_get_insn_variants): Likewise for local "prev".
8822         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
8823         "next".
8824         (arc_predicate_delay_insns): Likewise for local "insn".
8825         (arc_pad_return): Likewise for local "prev".  For now, add a
8826         checked cast when extracting the insn from "final_sequence".
8827         (arc_short_long): Likewise for param "insn".
8828         (arc_need_delay): Likewise for param "insn" and local "next".
8829         (arc_label_align): Likewise for locals "prev", "next".
8830
8831 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8832
8833         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
8834         "insn" from rtx to rtx_insn *.
8835         (alpha_gp_save_rtx): Likewise for local "seq".
8836         (alpha_instantiate_decls): Likewise for local "top".
8837         (get_some_local_dynamic_name): Likewise for local "insn".
8838         (alpha_does_function_need_gp): Likewise.
8839         (set_frame_related_p): Likewise for return type and for locals
8840         "seq" and "insn".
8841         (emit_frame_store_1): Likewise for local "insn".
8842         (alpha_expand_prologue): Likewise for locals "insn", "seq".
8843         (alpha_end_function): Likewise for local "insn".
8844         (alpha_output_mi_thunk_osf): Likewise.
8845         (alphaev4_insn_pipe): Likewise for param "insn".
8846         (alphaev5_insn_pipe): Likewise.
8847         (alphaev4_next_group): Likewise for return type and param 1
8848         "insn".
8849         (alphaev5_next_group): Likewise.
8850         (alpha_align_insns_1): Likewise for return type and param 1 of
8851         callback param "next_group", and for locals "i", "next", "prev",
8852         "where", "where2", "insn".
8853
8854 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
8855
8856         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
8857         rather than modifying the stmt.
8858
8859 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8860
8861         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
8862         cgraph_state conversion.
8863
8864 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
8865
8866         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
8867         Strengthen local "insns" from rtx to rtx_insn *.
8868         (aarch64_set_frame_expr): Likewise for local "insn".
8869         (aarch64_save_or_restore_fprs): Likewise.
8870         (aarch64_save_or_restore_callee_save_registers): Likewise.
8871         (aarch64_expand_prologue): Likewise.
8872         (aarch64_expand_epilogue): Likewise.
8873         (aarch64_output_mi_thunk): Likewise.
8874         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
8875         "label2" from rtx to rtx_code_label *.
8876         (aarch64_split_atomic_op): Likewise for local "label".
8877
8878 2014-08-25  Martin Liska  <mliska@suse.cz>
8879
8880         * cgraph.h (symtab_node):
8881         (bool needed_p (void)): created from decide_is_symbol_needed
8882         (bool referred_to_p (void)): created from referred_to_p
8883         (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
8884         * cgraph.h (cgraph_node):
8885         (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
8886         (void expand (void)): created from expand_function
8887         (static void finalize_function (tree, bool)): created from cgraph_finalize_function
8888         (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
8889         (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
8890         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
8891         * cgraph.h (varpool_node):
8892         (static void add (tree decl): created from varpool_add_new_variable
8893         * cgraph.h (cgraph_edge):
8894         void remove (void);
8895         (void remove_caller (void)): created from cgraph_edge_remove_caller
8896         (void remove_callee (void)): created from cgraph_edge_remove_callee
8897         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
8898           created from cgraph_set_call_stmt
8899         (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
8900         (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
8901         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
8902           gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
8903         (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
8904           created from cgraph_speculative_call_info
8905         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
8906           int freq_scale, bool update_original)): created from cgraph_clone_edge
8907         (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
8908         (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
8909         (bool recursive_p (void)): created from cgraph_edge_recursive_p
8910         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
8911         (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
8912         (static void rebuild_references (void)): created from cgraph_rebuild_references
8913         * cgraph.h (symbol_table):
8914         (create_reference): renamed from add_reference
8915         (maybe_create_reference): renamed from maybe_add_reference
8916         (void register_symbol (symtab_node *node)): new function
8917         (void clear_asm_symbols (void)): new function
8918         (void unregister (symtab_node *node)): new function
8919         (void release_symbol (cgraph_node *node, int uid)): new function
8920         (cgraph_node * allocate_cgraph_symbol (void)): new function
8921         (void initialize (void)): created from cgraph_init
8922         (symtab_node *first_symbol (void)):new function
8923         (asm_node *first_asm_symbol (void)):new function
8924         (symtab_node *first_defined_symbol (void)):new function
8925         (varpool_node *first_variable (void)):new function
8926         (varpool_node *next_variable (varpool_node *node)):new function
8927         (varpool_node *first_static_initializer (void)):new function
8928         (varpool_node *next_static_initializer (varpool_node *node)):new function
8929         (varpool_node *first_defined_variable (void)):new function
8930         (varpool_node *next_defined_variable (varpool_node *node)):new function
8931         (cgraph_node *first_defined_function (void)):new function
8932         (cgraph_node *next_defined_function (cgraph_node *node)):new function
8933         (cgraph_node *first_function (void)):new function
8934         (cgraph_node *next_function (cgraph_node *node)):new function
8935         (cgraph_node *first_function_with_gimple_body (void)):new function
8936         (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
8937         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
8938           created from symtab_remove_unreachable_nodes
8939         (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
8940         (void process_new_functions (void)): created from cgraph_process_new_functions
8941         (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
8942         (bool output_variables (void)): created from varpool_node::output_variables
8943         (void output_asm_statements (void)): created from output_asm_statements
8944         (void finalize_compilation_unit (void)): created from finalize_compilation_unit
8945         (void compile (void)): created from compile
8946         (void output_weakrefs (void)): created from output_weakrefs
8947         (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
8948         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
8949           gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
8950         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
8951         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
8952           created from cgraph_next_function_with_gimple_body
8953         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
8954           created from cgraph_remove_edge_removal_hook
8955         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
8956           created from cgraph_add_node_removal_hook
8957         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
8958           created from cgraph_remove_node_removal_hook
8959         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
8960           created from varpool_add_node_removal_hook
8961         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
8962           created from varpool_remove_node_removal_hook
8963         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
8964           created from cgraph_add_function_insertion_hook
8965         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
8966           created from cgraph_remove_function_insertion_hook
8967         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
8968           created from varpool_add_variable_insertion_hook
8969         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
8970           created from varpool_remove_variable_insertion_hook
8971         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
8972           created from cgraph_add_edge_duplication_hook
8973         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
8974           created from cgraph_remove_edge_duplication_hook
8975         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
8976           created from cgraph_add_node_duplication_hook
8977         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
8978           created from cgraph_remove_node_duplication_hook
8979         (void call_edge_removal_hooks (cgraph_edge *e)):
8980           created from cgraph_call_edge_removal_hooks
8981         (void call_cgraph_insertion_hooks (cgraph_node *node)):
8982           created from call_function_insertion_hooks 
8983         (void call_cgraph_removal_hooks (cgraph_node *node)):
8984           created from cgraph_call_node_removal_hooks 
8985         (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
8986           created from cgraph_node::call_duplication_hooks 
8987         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
8988           created from cgraph_call_edge_duplication_hooks
8989         (void call_varpool_removal_hooks (varpool_node *node)):
8990           created from varpool_call_node_removal_hooks
8991         (void call_varpool_insertion_hooks (varpool_node *node)):
8992           created from varpool_call_variable_insertion_hooks
8993         (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
8994           created from insert_to_assembler_name_hash
8995         (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
8996           created from unlink_from_assembler_name_hash
8997         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
8998           created from symtab_prevail_in_asm_name_hash
8999         (void symtab_initialize_asm_name_hash (void)):
9000           created from symtab_initialize_asm_name_hash
9001         (void change_decl_assembler_name (tree decl, tree name)):
9002           created from change_decl_assembler_name
9003         (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
9004         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
9005           created from decl_assembler_name_hash
9006         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
9007           created from decl_assembler_name_equal
9008         (static hashval_t hash_node_by_assembler_name (const void *p)):
9009           created from hash_node_by_assembler_name
9010         (static int eq_assembler_name (const void *p1, const void *p2)):
9011           created from eq_assembler_name
9012
9013 2014-08-25  Marek Polacek  <polacek@redhat.com>
9014
9015         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
9016
9017 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
9018
9019         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
9020         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
9021         SWI1248_AVX512BW mode iterator.
9022
9023 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
9024
9025         PR target/62111
9026         * config/sh/predicates.md (general_extend_operand): Disable
9027         TRUNCATE before reload completes.
9028
9029 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
9030
9031         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
9032
9033 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
9034
9035         PR target/61996
9036         * config/sh/sh.opt (musermode): Allow negative form.
9037         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
9038         targets that don't support it.
9039         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
9040         Document -mno-usermode option.
9041
9042 2014-08-24  Kito Cheng  <kito@0xlab.org>
9043
9044         * system.h (CALLER_SAVE_PROFITABLE): Poison.
9045         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
9046         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
9047         * doc/tm.texi: Regenerate.
9048
9049 2014-08-24  Kito Cheng  <kito@0xlab.org>
9050
9051         * ira.c: Fix typo in comment.
9052
9053 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
9054
9055         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
9056         Deprecate c++1y. Change language to reflect greater confidence in C++14.
9057
9058 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
9059
9060         PR target/62038
9061         * config/pa/pa.c (pa_output_function_epilogue): Don't set
9062         last_address when the current function is a thunk.
9063         (pa_asm_output_mi_thunk): When we don't have named sections or they
9064         are not being used, check that thunk can reach the stub table with a
9065         short branch.
9066
9067 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
9068
9069         * web.c (union_match_dups): Strengthen param "insn" from rtx to
9070         rtx_insn *.
9071         (pass_web::execute): Likewise for local "insn".
9072
9073 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
9074
9075         * var-tracking.c (struct micro_operation_def): Strengthen field
9076         "insn" from rtx to rtx_insn *.
9077         (struct emit_note_data_def): Likewise.
9078         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
9079         (vt_stack_adjustments): Likewise for local "insn".
9080         (adjust_insn): Likewise for param "insn".
9081         (val_store): Likewise.
9082         (val_resolve): Likewise.
9083         (struct count_use_info): Likewise for field "insn".
9084         (log_op_type): Likewise for param "insn".
9085         (reverse_op): Likewise.
9086         (prepare_call_arguments): Likewise.
9087         (add_with_sets):  The initial param takes an insn, but we can't
9088         yet strengthen it from rtx to rtx_insn * since it's used as a
9089         cselib_record_sets_hook callback.  For now rename initial param
9090         from "insn" to "uncast_insn", and introduce a local "insn" of
9091         the stronger rtx_insn * type, with a checked cast.
9092         (compute_bb_dataflow): Strengthen local "insn" from rtx to
9093         rtx_insn *.
9094         (emit_note_insn_var_location): Likewise.
9095         (emit_notes_for_changes): Likewise.
9096         (emit_notes_for_differences): Likewise.
9097         (next_non_note_insn_var_location): Likewise for return type and
9098         for param "insn".
9099         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
9100         (vt_initialize): Likewise for local "insn".
9101         (delete_debug_insns): Likewise for locals "insn" and "next".
9102
9103 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
9104
9105         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
9106         rtx_insn *.
9107         (mark_constant_pool): Likewise for local "insn".
9108
9109 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
9110
9111         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
9112         rtx to rtx_insn *.
9113         (dead_debug_promote_uses): Likewise.
9114         (dead_debug_insert_temp): Likewise.
9115
9116 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
9117
9118         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
9119         from const_rtx to const rtx_insn *.
9120         (store_killed_after): Likewise.  Strengthen locals "last", "act"
9121         from rtx to rtx_insn *.
9122         (store_killed_before): Strengthen param "insn" from const_rtx to
9123         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
9124         (find_moveable_store): Strengthen param "insn" from rtx to
9125         rtx_insn *.
9126         (compute_store_table): Likewise for local "insn".
9127         (insert_insn_start_basic_block): Likewise for param "insn" and
9128         locals "prev", "before", "insn".
9129         (insert_store): For now, add a checked cast to rtx_insn * on the
9130         result of gen_move_insn.
9131         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
9132         to rtx_insn *.
9133         (replace_store_insn): Likewise.  For now, add a checked cast to
9134         rtx_insn * on the result of gen_move_insn.
9135
9136 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9137
9138         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
9139         rtx_insn *.
9140         (expand_sjlj_dispatch_table): Likewise.
9141
9142 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9143
9144         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
9145         "insn" from rtx to rtx_insn *.
9146
9147 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9148
9149         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
9150         "insn" from rtx to rtx_insn *.
9151         (dup_block_and_redirect): Likewise for param 3 "before".
9152
9153         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
9154         from rtx to rtx_insn *.
9155         (move_insn_for_shrink_wrap): Likewise.
9156         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
9157         (dup_block_and_redirect): Likewise for param "before" and local
9158         "insn".
9159         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
9160         "end".
9161         (convert_to_simple_return): Likewise for local "start".
9162
9163         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
9164         Strengthen local "insn" from rtx to rtx_insn *, for use when
9165         invoking requires_stack_frame_p.
9166
9167 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9168
9169         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
9170         rtx_insn *.
9171         (speculate_expr): Likewise for locals "orig_insn_rtx",
9172         "spec_insn_rtx".
9173         (eq_transformed_insns): Likewise for locals "i1", "i2".
9174         (check_for_new_jump): Likewise for return type and local "end".
9175         (find_new_jump): Likewise for return type and local "jump".
9176         (sel_split_edge): Likewise for local "jump".
9177         (sel_create_recovery_block): Likewise.
9178         (sel_redirect_edge_and_branch_force): Likewise.
9179         (sel_redirect_edge_and_branch): Likewise.
9180
9181 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9182
9183         * sel-sched.c (substitute_reg_in_expr): Strengthen local
9184         "new_insn" from rtx to rtx_insn *.
9185         (create_insn_rtx_with_rhs): Likewise for return type and for local
9186         "insn_rtx".
9187         (create_insn_rtx_with_lhs): Likewise.
9188         (create_speculation_check): Likewise for local "insn_rtx".
9189         (implicit_clobber_conflict_p): Likewise for local "insn".
9190         (get_expr_cost): Likewise.
9191         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
9192         (move_cond_jump): Likewise for locals "next", "prev", "link",
9193         "head", "from", "to".
9194
9195 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9196
9197         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
9198         "next" from rtx to rtx_insn *.
9199         (find_conditional_protection): Likewise for local "next".
9200         (is_conditionally_protected): Likewise for local "insn1".
9201         (is_pfree): Likewise for locals "insn1", "insn2".
9202
9203 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9204
9205         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
9206         from rtx to rtx_insn *.
9207
9208         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
9209         locals "insn1", "insn2" from rtx to rtx_insn *.
9210         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
9211         locals "insn", "prev", "last_jump", "next_tail".
9212         (schedule_ebb): Likewise for params "head", "tail".
9213         (schedule_ebbs): Likewise for locals "tail", "head".
9214
9215         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
9216         to rtx_insn on "last_insn" in one of the invocations of
9217         schedule_ebb.
9218
9219 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9220
9221         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
9222         "elem", "insn" from rtx to rtx_insn *.
9223         (change_spec_dep_to_hard): Likewise.
9224         (get_back_and_forw_lists): Likewise for local "con".
9225         (sd_add_dep): Likewise for locals "elem", "insn".
9226         (sd_resolve_dep): Likewise for locals "pro", "con".
9227         (sd_unresolve_dep): Likewise.
9228         (sd_delete_dep): Likewise.
9229         (chain_to_prev_insn): Likewise for local "pro".
9230         (find_inc): Likewise for locals "pro", "con".
9231
9232 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9233
9234         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
9235         to rtx_insn *.
9236         (reg_set_between_p): Strengthen local "insn" from const_rtx to
9237         const rtx_insn *.
9238         (modified_between_p): Strengthen local "insn" from rtx to
9239         rtx_insn *.
9240         (remove_reg_equal_equiv_notes_for_regno): Likewise.
9241         (keep_with_call_p): Strengthen local "i2" from const_rtx to
9242         const rtx_insn *.
9243
9244 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9245
9246         * resource.c (next_insn_no_annul): Strengthen local "next" from
9247         rtx to rtx_insn *.
9248         (mark_referenced_resources): Likewise for local "insn".
9249
9250 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9251
9252         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
9253         to rtx_insn *.
9254         (find_reloads): Likewise for param 1.
9255         (subst_reloads): Likewise for sole param.
9256         (find_equiv_reg): Likwise for param 2.
9257         (regno_clobbered_p): Likwise for param 2.
9258         (reload): Likewise for param 1.
9259
9260         * caller-save.c (save_call_clobbered_regs): Strengthen local
9261         "insn" from rtx to rtx_insn *.
9262         (insert_one_insn): Likewise for local "insn".
9263
9264         * reload.c (this_insn): Likewise for this global.
9265         (find_reloads): Likewise for param "insn".
9266         (find_reloads_toplev): Likewise.
9267         (find_reloads_address): Likewise.
9268         (subst_reg_equivs): Likewise.
9269         (update_auto_inc_notes): Likewise.
9270         (find_reloads_address_1): Likewise.
9271         (find_reloads_subreg_address): Likewise.
9272         (subst_reloads): Likewise.
9273         (find_equiv_reg): Likewise, also for local "p".
9274         (regno_clobbered_p): Likewise for param "insn".
9275
9276         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
9277         array.
9278         (spill_reg_store): Likewise for the elements of this array.
9279         (remove_init_insns): Likewise for local "equiv_insn".
9280         (will_delete_init_insn_p): Likewise for param "insn".
9281         (reload): Likewise for param ""first" and local "insn".
9282         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
9283         rtx_insn *.
9284         (calculate_elim_costs_all_insns): Likewise.
9285         (delete_caller_save_insns): Likewise.
9286         (spill_failure): Likewise for param "insn".
9287         (delete_dead_insn): Likewise.
9288         (set_label_offsets): Likewise.
9289         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
9290         "prev_insn".
9291         (elimination_costs_in_insn): Likewise for param "insn".
9292         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
9293         when referring to an insn.
9294         (set_initial_label_offsets): Likewise.
9295         (set_offsets_for_label): Strengthen param "insn" from rtx to
9296         rtx_insn *.
9297         (init_eliminable_invariants): Likewise for param "first" and local
9298         "insn".
9299         (fixup_eh_region_note): Likewise for param "insn".
9300         (reload_as_needed): Likewise for locals "prev", "insn",
9301         "old_next", "old_prev", "next".
9302         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
9303         "last".
9304         (reload_inheritance_insn): Strengthen elements of this array from
9305         rtx to rtx_insn *.
9306         (failed_reload): Likewise for param "insn".
9307         (choose_reload_regs): Likewise for local "insn".  Replace use of
9308         NULL_RTX with NULL when referring to an insn.
9309         (input_reload_insns): Strengthen elements of this array from rtx
9310         to rtx_insn *.
9311         (other_input_address_reload_insns): Likewise for this global.
9312         (other_input_reload_insns): Likewise for this global.
9313         (input_address_reload_insns): Likwise for the elements of this
9314         array.
9315         (inpaddr_address_reload_insns): Likwise for the elements of this
9316         array.
9317         (output_reload_insns): Likewise for the elements of this array.
9318         (output_address_reload_insns): Likewise for the elements of this
9319         array.
9320         (outaddr_address_reload_insns): Likewise for the elements of this
9321         array.
9322         (operand_reload_insns): Likewise for this global.
9323         (other_operand_reload_insns): Likewise for this global.
9324         (other_output_reload_insns): Likewise for the elements of this
9325         array.
9326         (new_spill_reg_store): Likewise for the elements of this
9327         array.
9328         (emit_input_reload_insns): Likewise for locals "insn", "temp".
9329         Strengthen local "where" from rtx * to rtx_insn **.
9330         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
9331         from rtx to rtx_insn *.
9332         (do_input_reload): Likewise for local "insn".
9333         (do_output_reload): Likewise for local "insn".
9334         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
9335         (emit_insn_if_valid_for_reload): Likewise for return type and local
9336         "last".  Add checked cast to rtx_insn when returning "insn" since
9337         this has been through emit_insn.
9338         (gen_reload): Strengthen return type and locals "last", "insn", "set"
9339         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
9340         returning "insn" since it's been through
9341         emit_insn_if_valid_for_reload at this point.
9342         (delete_output_reload): Strengthen param "insn" and locals
9343         "output_reload_insn", "i2" from rtx to rtx_insn *.
9344         (delete_address_reloads): Likewise for params "dead_insn",
9345         "current_insn" and locals "prev", "next".
9346         (delete_address_reloads_1): Likewise for params "dead_insn",
9347         "current_insn" and locals "prev", "i2".
9348         (inc_for_reload): Likewise for locals "last", "add_insn".
9349         (add_auto_inc_notes): Strengthen param "insn" from rtx to
9350         rtx_insn *.
9351
9352         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
9353         param of this duplicate of the prototype from reload.h
9354
9355 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9356
9357         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
9358         rtx to rtx_insn *.
9359         (regstat_bb_compute_calls_crossed): Likewise.
9360
9361 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9362
9363         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
9364         to rtx_insn *.
9365         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
9366         with an insn.
9367         (regrename_analyze): Strengthen local "insn" from rtx to
9368         rtx_insn *.
9369         (scan_rtx_reg): Likewise for param "insn".
9370         (scan_rtx_address): Likewise.
9371         (scan_rtx): Likewise.
9372         (restore_operands): Likewise.
9373         (record_out_operands): Likewise.
9374         (build_def_use): Likewise for local "insn".  Replace use of
9375         NULL_RTX with NULL when dealing with an insn.
9376
9377 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9378
9379         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
9380         * reginfo.c (reg_scan): Likewise, also for local "insn".
9381         (reg_scan_mark_refs): Likewise for param "insn".
9382         (init_subregs_of_mode): Likewise for local "insn".
9383
9384 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9385
9386         * regcprop.c (struct queued_debug_insn_change): Strengthen field
9387         "insn" from rtx to rtx_insn *.
9388         (replace_oldest_value_reg): Likewise for param "insn".
9389         (replace_oldest_value_addr): Likewise.
9390         (replace_oldest_value_mem): Likewise.
9391         (apply_debug_insn_changes): Likewise for local "last_insn".
9392         (copyprop_hardreg_forward_1): Likewise for local "insn".
9393
9394 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9395
9396         * reg-stack.c (next_flags_user): Strengthen return type and param
9397         "insn" from rtx to rtx_insn *.
9398         (straighten_stack): Likewise for param "insn".
9399         (check_asm_stack_operands): Likewise.
9400         (remove_regno_note): Likewise.
9401         (emit_pop_insn): Likewise for return type, param "insn", local
9402         "pop_insn".
9403         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
9404         "limit" from rtx to rtx_insn *.
9405         (swap_to_top): Likewise for param "insn".
9406         (move_for_stack_reg): Likewise.
9407         (move_nan_for_stack_reg): Likewise.
9408         (swap_rtx_condition): Likewise.
9409         (compare_for_stack_reg): Likewise.
9410         (subst_all_stack_regs_in_debug_insn): Likewise.
9411         (subst_stack_regs_pat): Likewise, and local "insn2".
9412         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
9413         rtx_insn *.
9414         (subst_stack_regs): Likewise.
9415         (change_stack): Likewise.
9416         (convert_regs_1): Likewise for locals "insn", "next".
9417
9418 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9419
9420         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
9421         rtx_insn *.
9422         (combine_set_extension): Likewise for param "curr_insn".
9423         (transform_ifelse): Likewise for param "def_insn".
9424         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
9425         from vec<rtx> * to vec<rtx_insn *> *.
9426         (is_cond_copy_insn): Likewise for param "insn".
9427         (struct ext_state): Strengthen the four vec fields from vec<rtx>
9428         to vec<rtx_insn *>.
9429         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
9430         local "def_insn" from rtx to rtx_insn *.
9431         (get_sub_rtx): Likewise for param "def_insn".
9432         (merge_def_and_ext): Likewise.
9433         (combine_reaching_defs): Likewise.
9434         (add_removable_extension): Likewise for param "insn".
9435         (find_removable_extensions): Likewise for local "insn".
9436         (find_and_remove_re): Likewise for locals "curr_insn" and
9437         "def_insn".  Strengthen locals "reinsn_del_list" and
9438         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
9439
9440 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9441
9442         * recog.c (split_insn): Strengthen param "insn" and locals
9443         "first", "last" from rtx to rtx_insn *.
9444         (split_all_insns): Likewise for locals "insn", "next".
9445         (split_all_insns_noflow): Likewise.
9446
9447 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9448
9449         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
9450         const rtx_insn *.
9451         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
9452         (debug_rtx_find): Likewise for param 1 "x".
9453
9454         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
9455         const_rtx to const rtx_insn *.  Likewise for local "insn".
9456         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
9457         (debug_rtx_find): Likewise for param 1 "x".
9458         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
9459         from const_rtx to const rtx_insn * within the appropriate cases of
9460         the switch statement.
9461
9462         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
9463         Strengthen local "insns" from rtx to rtx_insn * since this is
9464         passed to a call to debug_rtx_list.
9465
9466 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9467
9468         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
9469         to rtx_insn *.
9470
9471         * function.c (stack_protect_epilogue): Add checked cast to
9472         rtx_insn for now when invoking predict_insn_def.
9473
9474         * predict.c (predict_insn): Strengthen param "insn" from rtx to
9475         rtx_insn *.
9476         (predict_insn_def): Likewise.
9477         (rtl_predict_edge): Likewise for local "last_insn".
9478         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
9479         const rtx_insn *.
9480         (combine_predictions_for_insn): Strengthen param "insn" from rtx
9481         to rtx_insn *.
9482         (bb_estimate_probability_locally): Likewise for local "last_insn".
9483         (expensive_function_p): Likewise for local "insn".
9484
9485         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
9486         local "jmp", since this is used when invoking predict_insn_def.
9487
9488 2014-08-22  Marek Polacek  <polacek@redhat.com>
9489
9490         PR c++/62199
9491         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
9492
9493 2014-08-22  Marek Polacek  <polacek@redhat.com>
9494
9495         PR c/61271
9496         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
9497         a comparison in parens.
9498         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
9499         in parens.
9500
9501 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9502
9503         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
9504         rtx_insn *.
9505
9506         * cprop.c (fis_get_condition): Likewise.
9507
9508         * postreload.c (reload_cse_regs): Likewise for param "first".
9509         (reload_cse_simplify): Likewise for param "insn".
9510         (reload_cse_regs_1): Likewise for local "insn".
9511         (reload_cse_simplify_set): Likewise for param "insn".
9512         (reload_cse_simplify_operands): Likewise.
9513         (struct reg_use): Likewise for field "insn".
9514         (reload_combine_purge_insn_uses): Likewise for param "insn".
9515         (fixup_debug_insns): Likewise for params "from", "to" and local
9516         "insn".
9517         (try_replace_in_use): Likewise for local "use_insn".
9518         (reload_combine_recognize_const_pattern): Likewise for param
9519         "insn" and locals "add_moved_after_insn", "use_insn".
9520         (reload_combine_recognize_pattern): Likewise for param "insn" and
9521         local "prev".
9522         (reload_combine): Likewise for locals "insn", "prev".
9523         (reload_combine_note_use): Likewise for param "insn".
9524         (move2add_use_add2_insn): Likewise.
9525         (move2add_use_add3_insn): Likewise.
9526         (reload_cse_move2add): Likewise, also for local "next".
9527         (move2add_note_store): Likewise for local "insn".
9528
9529 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9530
9531         * postreload-gcse.c (struct occr): Strengthen field "insn" from
9532         rtx to rtx_insn *.
9533         (struct unoccr): Likewise.
9534         (struct modifies_mem): Likewise.
9535         (alloc_mem): Likewise for local "insn".
9536         (insert_expr_in_table): Likewise for param "insn".
9537         (dump_expr_hash_table_entry): Likewise for local "insn".
9538         (oprs_unchanged_p): Likewise for param "insn".
9539         (load_killed_in_block_p): Likewise for local "setter".
9540         (record_last_reg_set_info): Likewise for param "insn".
9541         (record_last_reg_set_info_regno): Likewise.
9542         (record_last_mem_set_info): Likewise.
9543         (record_last_set_info): Likewise for local "last_set_insn".
9544         (record_opr_changes): Likewise for param "insn".
9545         (hash_scan_set): Likewise.
9546         (compute_hash_table): Likewise for local "insn".
9547         (get_avail_load_store_reg): Likewise for param "insn".
9548         (eliminate_partially_redundant_load): Likewise, also for locals
9549         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
9550         RTX for insns.
9551         (eliminate_partially_redundant_loads): Likewise for local "insn".
9552
9553 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9554
9555         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
9556         rtx to rtx_insn *.
9557         (expand_binop): Likewise for locals "entry_last", "last", "insns"
9558         (expand_twoval_unop): Likewise for locals entry_last", "last".
9559         (expand_twoval_binop): Likewise.
9560         (expand_twoval_binop_libfunc): Likewise for local "insns".
9561         (widen_leading): Likewise for local "last".
9562         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
9563         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
9564         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
9565         (expand_parity): Likewise for locals "last" and "seq".
9566         (expand_ffs): Likewise for local "seq".  Strengthen local
9567         "nonzero_label" from rtx to rtx_code_label *.
9568         (expand_absneg_bit): Strengthen local "insns" from rtx to
9569         rtx_insn *.
9570         (expand_unop_direct): Likewise for local "last".
9571         (expand_unop): Likewise for locals "last", "insns".
9572         (expand_abs_nojump): Likewise for local "last".
9573         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
9574         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
9575         rtx_insn *.
9576         (expand_copysign_absneg): Strengthen local "label" from rtx to
9577         rtx_code_label *.
9578         (expand_copysign_bit): Strengthen local "insns" from rtx to
9579         rtx_insn *.
9580         (struct no_conflict_data): Likewise for fields "first", "insn".
9581         (emit_libcall_block_1): Likewise for param "insns" and locals
9582         "next", "last", "insn".
9583         (emit_libcall_block): For now, add a checked cast to rtx_insn *
9584         on "insns" when invoking emit_libcall_block_1.  Ultimately we
9585         want to strengthen insns itself.
9586         (prepare_cmp_insn): Strengthen local "last" from rtx to
9587         rtx_insn *.
9588         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
9589         (prepare_float_lib_cmp): Likewise for local "insns".
9590         (emit_conditional_move): Likewise for local "last".
9591         (emit_conditional_add): Likewise.
9592         (have_sub2_insn): Likewise for local "seq".
9593         (expand_float): Likewise for local "insns".  Strengthen locals
9594         "label", "neglabel" from rtx to rtx_code_label *.
9595         (expand_fix): Likewise for locals "last", "insn", "insns" (to
9596         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
9597         (expand_fixed_convert): Likewise for local "insns" (to
9598         rtx_insn *).
9599         (expand_sfix_optab): Likewise for local "last".
9600         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
9601         to rtx_code_label *.
9602         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
9603         from rtx to rtx_insn *.
9604         (expand_atomic_fetch_op): Likewise for local "insn".
9605         (maybe_legitimize_operand_same_code): Likewise for local "last".
9606         (maybe_legitimize_operands): Likewise.
9607
9608 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9609
9610         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
9611         "insn" from rtx to rtx_insn *.
9612         (ps_rtl_insn): Likewise for return type.
9613         (doloop_register_get): Likewise for params "head", "tail" and
9614         locals "insn", "first_insn_not_to_check".
9615         (schedule_reg_move): Likewise for local "this_insn".
9616         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
9617         of gen_move_insn for now.
9618         (reset_sched_times): Strengthen local "insn" from rtx to
9619         rtx_insn *.
9620         (permute_partial_schedule): Likewise.
9621         (duplicate_insns_of_cycles): Likewise for local "u_insn".
9622         (dump_insn_location): Likewise for param "insn".
9623         (loop_canon_p): Likewise for local "insn".
9624         (sms_schedule): Likewise.
9625         (print_partial_schedule): Likewise.
9626         (ps_has_conflicts): Likewise.
9627
9628 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9629
9630         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
9631         "tailp" from rtx * to rtx_insn **.
9632
9633         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
9634         from rtx to rtx_insn *.
9635         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
9636         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
9637         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
9638         rtx to rtx_insn *.
9639         * modulo-sched.c (const_iteration_count): Strengthen return type
9640         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
9641         use of NULL_RTX with NULL when working with insns.
9642         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
9643         to rtx_insn *.
9644         (sms_schedule): Likewise.
9645         * sched-rgn.c (init_ready_list): Likewise, also for locals
9646         "src_head" and "src_next_tail".
9647         (compute_block_dependences): Likewise.
9648         (free_block_dependencies): Likewise.
9649         (debug_rgn_dependencies): Likewise.
9650         (free_rgn_deps): Likewise.
9651         (compute_priorities): Likewise.
9652         (schedule_region): Likewise.
9653         * sel-sched.c (find_ebb_boundaries): Likewise.
9654
9655         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
9656         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
9657
9658 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9659
9660         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
9661         from rtx to rtx_insn *.
9662         (new_seginfo): Likewise for param "insn".
9663         (create_pre_exit): Likewise for locals "last_insn",
9664         "before_return_copy", "return_copy".
9665         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
9666         "mode_set".
9667
9668 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9669
9670         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
9671         from rtx to rtx_insn *.
9672         (lra_push_insn): Likewise for 1st param.
9673         (lra_push_insn_and_update_insn_regno_info): Likewise.
9674         (lra_pop_insn): Likewise for return type.
9675         (lra_invalidate_insn_data): Likewise for 1st param.
9676         (lra_set_insn_deleted): Likewise.
9677         (lra_delete_dead_insn): Likewise.
9678         (lra_process_new_insns): Likewise for first 3 params.
9679         (lra_set_insn_recog_data): Likewise for 1st param.
9680         (lra_update_insn_recog_data): Likewise.
9681         (lra_set_used_insn_alternative): Likewise.
9682         (lra_invalidate_insn_regno_info): Likewise.
9683         (lra_update_insn_regno_info): Likewise.
9684         (lra_former_scratch_operand_p): Likewise.
9685         (lra_eliminate_regs_1): Likewise.
9686         (lra_get_insn_recog_data): Likewise.
9687
9688         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
9689         rtx to rtx_insn *.
9690
9691         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
9692         "mv1" and "mv2".
9693         (substitute_within_insn): New.
9694         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
9695         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
9696         Replace call to "substitute" with call to substitute_within_insn.
9697
9698         * lra-constraints.c (curr_insn): Strengthen from rtx to
9699         rtx_insn *.
9700         (get_equiv_with_elimination): Likewise for param "insn".
9701         (match_reload): Strengthen params "before" and "after" from rtx *
9702         to rtx_insn **.
9703         (emit_spill_move): Likewise for return type.  Add a checked cast
9704         to rtx_insn * on result of gen_move_insn for now.
9705         (check_and_process_move): Likewise for local "before".  Replace
9706         NULL_RTX with NULL when referring to insns.
9707         (process_addr_reg): Strengthen params "before" and "after" from
9708         rtx * to rtx_insn **.
9709         (insert_move_for_subreg): Likewise.
9710         (simplify_operand_subreg): Strengthen locals "before" and "after"
9711         from rtx to rtx_insn *.
9712         (process_address_1): Strengthen params "before" and "after" from
9713         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
9714         rtx to rtx_insn *.
9715         (process_address): Strengthen params "before" and "after" from
9716         rtx * to rtx_insn **.
9717         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
9718         (curr_insn_transform): Strengthen locals "before" and "after"
9719         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
9720         to insns.
9721         (loc_equivalence_callback): Update cast of "data", changing
9722         resulting type from rtx to rtx_insn *.
9723         (substitute_pseudo_within_insn): New.
9724         (inherit_reload_reg): Strengthen param "insn" from rtx to
9725         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
9726         NULL when referring to insns.  Add a checked cast to rtx_insn *
9727         when using usage_insn to invoke lra_update_insn_regno_info.
9728         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
9729         likewise for locals "restore", "save".  Add checked casts to
9730         rtx_insn * when using usage_insn to invoke
9731         lra_update_insn_regno_info and lra_process_new_insns.  Replace
9732         NULL_RTX with NULL when referring to insns.
9733         (split_if_necessary): Strengthen param "insn" from rtx to
9734         rtx_insn *.
9735         (update_ebb_live_info): Likewise for params "head", "tail" and local
9736         "prev_insn".
9737         (get_last_insertion_point): Likewise for return type and local "insn".
9738         (get_live_on_other_edges): Likewise for local "last".
9739         (inherit_in_ebb): Likewise for params "head", "tail" and locals
9740         "prev_insn", "next_insn", "restore".
9741         (remove_inheritance_pseudos): Likewise for local "prev_insn".
9742         (undo_optional_reloads): Likewise for local "insn".
9743
9744         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
9745         "insn".
9746         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
9747         insns.
9748         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
9749         rtx_insn *.
9750         (spill_pseudos): Likewise for local "insn".
9751         (init_elimination): Likewise.
9752         (process_insn_for_elimination): Likewise for param "insn".
9753
9754         * lra-lives.c (curr_insn): Likewise.;
9755
9756         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
9757         (remove_pseudos): Likewise for param "insn".
9758         (spill_pseudos): Likewise for local "insn".
9759         (lra_final_code_change): Likewise for locals "insn", "curr".
9760
9761         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
9762         (lra_set_insn_deleted): Likewise.
9763         (lra_delete_dead_insn): Likewise, and for local "prev".
9764         (new_insn_reg): Likewise for param "insn".
9765         (lra_set_insn_recog_data): Likewise.
9766         (lra_update_insn_recog_data): Likewise.
9767         (lra_set_used_insn_alternative): Likewise.
9768         (get_insn_freq): Likewise.
9769         (invalidate_insn_data_regno_info): Likewise.
9770         (lra_invalidate_insn_regno_info): Likewise.
9771         (lra_update_insn_regno_info): Likewise.
9772         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
9773         vec<rtx_insn *>.
9774         (lra_push_insn_1): Strengthen param "insn" from rtx to
9775         rtx_insn *.
9776         (lra_push_insn): Likewise.
9777         (lra_push_insn_and_update_insn_regno_info): Likewise.
9778         (lra_pop_insn): Likewise for return type and local "insn".
9779         (push_insns): Likewise for params "from", "to", and local "insn".
9780         (setup_sp_offset): Likewise for params "from", "last" and locals
9781         "before", "insn".
9782         (lra_process_new_insns): Likewise for params "insn", "before",
9783         "after" and local "last".
9784         (struct sloc): Likewise for field "insn".
9785         (lra_former_scratch_operand_p): Likewise for param "insn".
9786         (remove_scratches): Likewise for locals "insn", "last".
9787         (check_rtl): Likewise for local "insn".
9788         (add_auto_inc_notes): Likewise for param "insn".
9789         (update_inc_notes): Likewise for local "insn".
9790         (lra): Replace NULL_RTX with NULL when referring to insn.
9791
9792 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9793
9794         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
9795         to rtx_insn *.
9796         (resolve_reg_notes): Likewise.
9797         (resolve_simple_move): Likewise for return type, param "insn", and
9798         locals "insns", "minsn".
9799         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
9800         (resolve_use): Likewise.
9801         (resolve_debug): Likewise.
9802         (find_decomposable_shift_zext): Likewise.
9803         (resolve_shift_zext): Likewise for return type, param "insn", and
9804         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
9805         (decompose_multiword_subregs): Likewise for local "insn",
9806         "orig_insn", "decomposed_shift", "end".
9807
9808 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9809
9810         * basic-block.h (basic_block split_edge_and_insert): Strengthen
9811         param "insns" from rtx to rtx_insn *.
9812
9813         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
9814         rtx to rtx_insn *.
9815         (struct iv_to_split): Likewise.
9816         (loop_exit_at_end_p): Likewise for local "insn".
9817         (split_edge_and_insert): Likewise for param "insns".
9818         (compare_and_jump_seq): Likewise for return type, param "cinsn",
9819         and locals "seq", "jump".
9820         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
9821         "branch_code"; update invocations of compare_and_jump_seq to
9822         eliminate NULL_RTX in favor of NULL.
9823         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
9824         rtx to rtx_insn *.
9825         (reset_debug_uses_in_loop): Likewise.
9826         (analyze_insn_to_expand_var): Likewise for param "insn".
9827         (analyze_iv_to_split_insn): Likewise.
9828         (analyze_insns_in_loop): Likewise for local "insn".
9829         (insert_base_initialization): Likewise for param
9830         "insn" and local "seq".
9831         (split_iv): Likewise for param "insn" and local "seq".
9832         (expand_var_during_unrolling): Likewise for param "insn".
9833         (insert_var_expansion_initialization): Likewise for local "seq".
9834         (combine_var_copies_in_loop_exit): Likewise.
9835         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
9836         "insn".
9837         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
9838         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
9839         "next".
9840
9841 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9842
9843         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
9844         rtx_insn *.
9845         (iv_analyze_result): Likewise.
9846         (iv_analyze_expr): Likewise.
9847         (biv_p): Likewise.
9848
9849         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
9850         local "def_insn" from rtx to rtx_insn *.
9851         (get_biv_step_1): Likewise for local "insn".
9852         (iv_analyze_expr): Likewise for param "insn".
9853         (iv_analyze_def): Likewise for local "insn".
9854         (iv_analyze_op): Likewise for param "insn".
9855         (iv_analyze): Likewise.
9856         (iv_analyze_result): Likewise.
9857         (biv_p): Likewise.
9858         (suitable_set_for_replacement): Likewise.
9859         (simplify_using_initial_values): Likewise for local "insn".
9860         (iv_number_of_iterations): Likewise for param "insn".
9861         (check_simple_exit): Add checked cast to rtx_insn when invoking
9862         iv_number_of_iterations for now (until get_condition is
9863         strengthened).
9864
9865         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
9866         "insn" from rtx to rtx_insn *.
9867         (analyze_insns_in_loop): Likewise for local "insn".
9868
9869 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9870
9871         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
9872         to rtx_insn *.
9873         (struct invariant): Likewise.
9874         (hash_invariant_expr_1): Likewise for param "insn".
9875         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
9876         (find_exits): Likewise for local "insn".
9877         (create_new_invariant): Likewise for param "insn".
9878         (check_dependencies): Likewise.
9879         (find_invariant_insn): Likewise.
9880         (record_uses): Likewise.
9881         (find_invariants_insn): Likewise.
9882         (find_invariants_bb): Likewise for local "insn".
9883         (get_pressure_class_and_nregs): Likewise for param "insn".
9884         (calculate_loop_reg_pressure): Likewise for local "insn".
9885
9886 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9887
9888         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
9889         to rtx_insn *.
9890         (add_test): Likewise for locals "seq", "jump".
9891         (doloop_modify): Likewise for locals "sequence", "jump_insn".
9892
9893 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9894
9895         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
9896         rtx_insn *.
9897         (rebuild_jump_labels_chain): Likewise for param "chain".
9898
9899         * cfgexpand.c (pass_expand::execute): Add checked cast to
9900         rtx_insn * when calling rebuild_jump_labels_chain in region where
9901         we know e->insns.r is non-NULL.
9902
9903         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
9904         rtx_insn *.
9905         (rebuild_jump_labels): Likewise.
9906         (rebuild_jump_labels_chain): Likewise for param "chain".
9907         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
9908         (init_label_info): Likewise for param "f".
9909         (maybe_propagate_label_ref): Likewise for params "jump_insn",
9910         "prev_nonjump_insn".
9911         (mark_all_labels): Likewise for param "f" and locals "insn",
9912         "prev_nonjump_insn".
9913
9914 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9915
9916         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
9917         from rtx to rtx_insn *insn.
9918         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
9919         (ira_add_allocno_copy): Likewise.
9920         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
9921         rtx to rtx_insn *.
9922         (ira_create_copy): Likewise.
9923         (ira_add_allocno_copy): Likewise.
9924         (create_bb_allocnos): Likewise for local "insn".
9925         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
9926         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
9927         process_regs_for_copy for rtx_insn * param.
9928         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
9929         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
9930         process_regs_for_copy for rtx_insn * param.
9931         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
9932         * ira-costs.c (record_reg_classes): Likewise for param "insn".
9933         (record_operand_costs): Likewise.
9934         (scan_one_insn): Likewise for return type, and for param "insn".
9935         (process_bb_for_costs): Likewise for local "insn".
9936         (process_bb_node_for_hard_reg_moves): Likewise.
9937         * ira-emit.c (struct move): Likewise for field "insn".
9938         (create_move): Eliminate use of NULL_RTX when dealing with an
9939         rtx_insn *.
9940         (emit_move_list): Strengthen return type and locals "result",
9941         "insn" from rtx to rtx_insn *insn.
9942         (emit_moves): Likewise for locals "insns", "tmp".
9943         (ira_emit): Likewise for local "insn".
9944         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
9945         "insn".
9946         (find_call_crossed_cheap_reg): Likewise.
9947         (process_bb_node_lives): Likewise for local "insn".
9948         * ira.c (decrease_live_ranges_number): Likewise.
9949         (compute_regs_asm_clobbered): Likewise.
9950         (build_insn_chain): Likewise.
9951         (find_moveable_pseudos): Likewise, also locals "def_insn",
9952         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
9953         to rtx_insn **.  Add a checked cast when assigning from
9954         "closest_use" into closest_uses array in a region where we know
9955         it's a non-NULL insn.
9956         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
9957         to rtx_insn *.
9958         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
9959         "last_interesting_insn", "uin".
9960         (move_unallocated_pseudos): Likewise for locals "def_insn",
9961         "move_insn", "newinsn".
9962
9963 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9964
9965         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
9966         Strengthen locals "done_label", "do_error" from rtx to
9967         rtx_code_label *.
9968         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
9969         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
9970         rtx_code_label *.
9971         (ubsan_expand_si_overflow_neg_check): Likewise for locals
9972         "done_label", "do_error" to rtx_code_label * and local  "last" to
9973         rtx_insn *.
9974         (ubsan_expand_si_overflow_mul_check): Likewise for locals
9975         "done_label", "do_error", "large_op0", "small_op0_large_op1",
9976         "one_small_one_large", "both_ops_large", "after_hipart_neg",
9977         "after_lopart_neg", "do_overflow", "hipart_different"  to
9978         rtx_code_label * and local  "last" to rtx_insn *.
9979
9980 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9981
9982         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
9983         "insn" and "move_insn" from rtx to rtx_insn *.
9984
9985 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9986
9987         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
9988         rtx_insn *.
9989         (cheap_bb_rtx_cost_p): Likewise.
9990         (first_active_insn): Likewise for return type and local "insn".
9991         (last_active_insn):  Likewise for return type and locals "insn",
9992         "head".
9993         (struct noce_if_info): Likewise for fields "jump", "insn_a",
9994         "insn_b".
9995         (end_ifcvt_sequence): Likewise for return type and locals "insn",
9996         "seq".
9997         (noce_try_move): Likewise for local "seq".
9998         (noce_try_store_flag): Likewise.
9999         (noce_try_store_flag_constants): Likewise.
10000         (noce_try_addcc): Likewise.
10001         (noce_try_store_flag_mask): Likewise.
10002         (noce_try_cmove): Likewise.
10003         (noce_try_minmax): Likewise.
10004         (noce_try_abs): Likewise.
10005         (noce_try_sign_mask): Likewise.
10006         (noce_try_bitop): Likewise.
10007         (noce_can_store_speculate_p): Likewise for local "insn".
10008         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
10009         seq".
10010         (check_cond_move_block): Likewise for local "insn".
10011         (cond_move_convert_if_block): Likewise.
10012         (cond_move_process_if_block): Likewise for locals "seq",
10013         "loc_insn".
10014         (noce_find_if_block): Likewise for local "jump".
10015         (merge_if_block): Likewise for local "last".
10016         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
10017         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
10018         (block_has_only_trap): Likewise for return type and local "trap".
10019         (find_if_case_1): Likewise for local "jump".
10020         (dead_or_predicable): Likewise for locals "head", "end", "jump",
10021         "insn".
10022
10023 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10024
10025         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
10026         "last_insn", "loop_end" from rtx to rtx_insn *.
10027
10028         * hw-doloop.c (scan_loop): Likewise for local "insn".
10029         (discover_loop): Likewise for param "tail_insn".
10030         (discover_loops): Likewise for local "tail".
10031
10032         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
10033         cast to rtx_insn * when assigning from an rtx local to a
10034         hwloop_info's "last_insn" field.
10035
10036 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10037
10038         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
10039         (add_delay_dependencies): Strengthen local "pro" from rtx to
10040         rtx_insn *.
10041         (recompute_todo_spec): Likewise.
10042         (dep_cost_1): Likewise for locals "insn", "used".
10043         (schedule_insn): Likewise for local "dbg".
10044         (schedule_insn): Likewise for locals "pro", "next".
10045         (unschedule_insns_until): Likewise for local "con".
10046         (restore_pattern): Likewise for local "next".
10047         (estimate_insn_tick): Likewise for local "pro".
10048         (resolve_dependencies): Likewise for local "next".
10049         (fix_inter_tick): Likewise.
10050         (fix_tick_ready): Likewise for local "pro".
10051         (add_to_speculative_block): Likewise for locals "check", "twin",
10052         "pro".
10053         (sched_extend_bb): Likewise for locals "end", "insn".
10054         (init_before_recovery): Likewise for local "x".
10055         (sched_create_recovery_block): Likewise for local "barrier".
10056         (create_check_block_twin): Likewise for local "pro".
10057         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
10058         "consumer".
10059         (unlink_bb_notes): Update for change to type of bb_header.
10060         Strengthen locals "prev", "label", "note", "next" from rtx to
10061         rtx_insn *.
10062         (clear_priorities): Likewise for local "pro".
10063
10064 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10065
10066         * gcse.c (struct occr): Strengthen field "insn" from rtx to
10067         rtx_insn *.
10068         (test_insn): Likewise for this global.
10069         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
10070         const rtx_insn *.
10071         (oprs_anticipatable_p): Likewise.
10072         (oprs_available_p): Likewise.
10073         (insert_expr_in_table): Strengthen param "insn" from  rtx to
10074         rtx_insn *.
10075         (hash_scan_set): Likewise.
10076         (hash_scan_clobber): Likewise.
10077         (hash_scan_call): Likewise.
10078         (hash_scan_insn): Likewise.
10079         (compute_hash_table_work): Likewise for local "insn".
10080         (process_insert_insn): Likewise for return type and local "pat".
10081         (insert_insn_end_basic_block): Likewise for locals "new_insn",
10082         "pat", "pat_end", "maybe_cc0_setter".
10083         (pre_edge_insert): Likewise for local "insn".
10084         (pre_insert_copy_insn): Likewise for param "insn".
10085         (pre_insert_copies): Likewise for local "insn".
10086         (struct set_data): Likewise for field "insn".
10087         (single_set_gcse): Likewise for param "insn".
10088         (gcse_emit_move_after): Likewise.
10089         (pre_delete): Likewise for local "insn".
10090         (update_bb_reg_pressure): Likewise for param "from" and local
10091         "insn".
10092         (should_hoist_expr_to_dom): Likewise for param "from".
10093         (hoist_code): Likewise for local "insn".
10094         (get_pressure_class_and_nregs): Likewise for param "insn".
10095         (calculate_bb_reg_pressure): Likewise for local "insn".
10096         (compute_ld_motion_mems): Likewise.
10097
10098 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10099
10100         * genpeep.c (main): Rename param back from "uncast_ins1" to
10101         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
10102         checked cast.
10103
10104         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
10105
10106 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
10107
10108         PR target/62195
10109         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
10110         documentation to state it is only for VSX operations.
10111
10112         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
10113         constraint only active if VSX.
10114
10115         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
10116         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
10117         (lfiwzx): Likewise.
10118
10119 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10120
10121         * fwprop.c (single_def_use_dom_walker::before_dom_children):
10122         Strengthen local "insn" from rtx to rtx_insn *.
10123         (use_killed_between): Likewise for param "target_insn".
10124         (all_uses_available_at): Likewise for param "target_insn" and
10125         local "next".
10126         (update_df_init): Likewise for params "def_insn", "insn".
10127         (update_df): Likewise for param "insn".
10128         (try_fwprop_subst): Likewise for param "def_insn" and local
10129         "insn".
10130         (free_load_extend): Likewise for param "insn".
10131         (forward_propagate_subreg): Likewise for param "def_insn" and
10132         local "use_insn".
10133         (forward_propagate_asm): Likewise for param "def_insn" and local
10134         "use_insn".
10135         (forward_propagate_and_simplify): Likewise for param "def_insn"
10136         and local "use_insn".
10137         (forward_propagate_into): Likewise for locals "def_insn" and
10138         "use_insn".
10139
10140 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10141
10142         * function.c (emit_initial_value_sets): Strengthen local "seq"
10143         from rtx to rtx_insn *.
10144         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
10145         local "seq".
10146         (instantiate_virtual_regs): Likewise for local "insn".
10147         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
10148         (reorder_blocks_1): Likewise for param "insns" and local "insn".
10149         (expand_function_end): Likewise for locals "insn" and "seq".
10150         (epilogue_done): Likewise for local "insn".
10151         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
10152         "last", "trial".
10153         (reposition_prologue_and_epilogue_notes): Likewise for locals
10154         "insn", "last", "note", "first".
10155         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
10156         (pass_match_asm_constraints::execute): Likewise for local "insn".
10157
10158 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10159
10160         * output.h (final_scan_insn): Strengthen return type from rtx to
10161         rtx_insn *.
10162         (final_forward_branch_p): Likewise for param.
10163         (current_output_insn): Likewise for this global.
10164
10165         * final.c (rtx debug_insn): Likewise for this variable.
10166         (current_output_insn): Likewise.
10167         (get_attr_length_1): Rename param "insn" to "uncast_insn",
10168         adding "insn" back in as an rtx_insn * with a checked cast, so
10169         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
10170         first param.
10171         (compute_alignments): Strengthen local "label" from rtx to
10172         rtx_insn *.
10173         (shorten_branches): Rename param from "first" to "uncast_first",
10174         introducing a new local rtx_insn * "first" using a checked cast to
10175         effectively strengthen "first" from rtx to rtx_insn * without
10176         affecting the type signature.  Strengthen locals "insn", "seq",
10177         "next", "label" from rtx to rtx_insn *.
10178         (change_scope): Strengthen param "orig_insn" and local "insn" from
10179         rtx to rtx_insn *.
10180         (final_start_function): Rename param from "first" to "uncast_first",
10181         introducing a new local rtx_insn * "first" using a checked cast to
10182         effectively strengthen "first" from rtx to rtx_insn * without
10183         affecting the type signature.  Strengthen local "insn" from rtx to
10184         rtx_insn *.
10185         (dump_basic_block_info): Strengthen param "insn" from rtx to
10186         rtx_insn *.
10187         (final): Rename param from "first" to "uncast_first",
10188         introducing a new local rtx_insn * "first" using a checked cast to
10189         effectively strengthen "first" from rtx to rtx_insn * without
10190         affecting the type signature.  Strengthen locals "insn", "next"
10191         from rtx to rtx_insn *.
10192         (output_alternate_entry_point): Strengthen param "insn" from rtx to
10193         rtx_insn *.
10194         (call_from_call_insn): Strengthen param "insn" from rtx to
10195         rtx_call_insn *.
10196         (final_scan_insn): Rename param from "insn" to "uncast_insn",
10197         introducing a new local rtx_insn * "insn" using a checked cast to
10198         effectively strengthen "insn" from rtx to rtx_insn * without
10199         affecting the type signature.  Strengthen return type and locals
10200         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
10201         now-redundant checked cast to rtx_insn * from both invocations of
10202         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
10203         introducing a local "call_insn" for use when invoking
10204         call_from_call_insn.
10205         (notice_source_line): Strengthen param "insn" from rtx to
10206         rtx_insn *.
10207         (leaf_function_p): Likewise for local "insn".
10208         (final_forward_branch_p): Likewise.
10209         (leaf_renumber_regs): Likewise for param "first".
10210         (rest_of_clean_state): Likewise for locals "insn" and "next".
10211         (self_recursive_call_p): Likewise for param "insn".
10212         (collect_fn_hard_reg_usage): Likewise for local "insn".
10213         (get_call_fndecl): Likewise for param "insn".
10214         (get_call_cgraph_rtl_info): Likewise.
10215         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
10216         introducing a new local rtx_insn * "insn" using a checked cast to
10217         effectively strengthen "insn" from rtx to rtx_insn * without
10218         affecting the type signature.
10219
10220         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
10221         cast when assigning from param "insn" to current_output_insn.
10222         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
10223         so that we can assign it back to current_output_insn.
10224
10225 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
10226
10227         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
10228         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
10229         atmxt540s and atmxt540sreva devices.
10230         * config/avr/avr-tables.opt: Regenerate.
10231         * config/avr/t-multilib: Regenerate.
10232         * doc/avr-mmcu.texi: Regenerate.
10233
10234 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10235
10236         * expr.c (convert_move): Strengthen local "insns" from rtx to
10237         rtx_insn *.
10238         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
10239         "top_label" from rtx to rtx_code_label *.
10240         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
10241         rtx_insn *.
10242         (emit_single_push_insn): Likewise for locals "prev", "last".
10243         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
10244         to rtx_code_label *.
10245         (store_constructor): Likewise for locals "loop_start", "loop_end".
10246         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
10247         rtx_insn *.
10248         (expand_expr_real_2): Likewise.
10249         (expand_expr_real_1): Strengthen local "label" from rtx to
10250         rtx_code_label *.
10251
10252 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10253
10254         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
10255         from rtx to rtx_insn *.
10256         (store_bit_field_1): Likewise.
10257         (extract_bit_field_1): Likewise.
10258         (expand_mult_const): Likewise for local "insns".
10259         (expmed_mult_highpart): Strengthen local "label" from rtx to
10260         rtx_code_label *.
10261         (expand_smod_pow2): Likewise.
10262         (expand_sdiv_pow2): Likewise.
10263         (expand_divmod): Strengthen locals "last", "insn" from rtx to
10264         rtx_insn *.  Strengthen locals "label", "label1", "label2",
10265         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
10266         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
10267         (emit_store_flag): Likewise.
10268         (emit_store_flag_force): Strengthen local "label" from rtx to
10269         rtx_code_label *.
10270         (do_cmp_and_jump): Likewise for param "label".
10271
10272 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10273
10274         * explow.c (force_reg): Strengthen local "insn" from rtx to
10275         rtx_insn *.
10276         (adjust_stack_1): Likewise.
10277         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
10278         "final_label", "available_label", "space_available" from rtx to
10279         rtx_code_label *.
10280         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
10281         (anti_adjust_stack_and_probe): Likewise.
10282
10283 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10284
10285         * except.h (sjlj_emit_function_exit_after): Strengthen param
10286         "after" from rtx to rtx_insn *.  This is only called with
10287         result of get_last_insn (in function.c) so type-change should be
10288         self-contained.
10289
10290         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
10291         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
10292         to rtx_insn *.  These fields are only used from except.c so this
10293         type-change should be self-contained to this patch.
10294
10295         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
10296         local "last" from rtx to rtx_insn *.
10297         (dw2_build_landing_pads): Likewise for local "seq".
10298         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
10299         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
10300         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
10301         rtx to rtx_insn *.
10302         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
10303         to rtx_insn *.
10304         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
10305         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
10306         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
10307         referring to an insn.  Strengthen local "dispatch_label" from
10308         rtx to rtx_code_label *.
10309         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
10310         rtx_insn *.
10311         (expand_eh_return): Strengthen local "around_label" from
10312         rtx to rtx_code_label *.
10313         (convert_to_eh_region_ranges): Strengthen locals "iter",
10314         "last_action_insn", "first_no_action_insn",
10315         "first_no_action_insn_before_switch",
10316         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
10317
10318 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10319
10320         * dwarf2out.c (last_var_location_insn): Strengthen this variable
10321         from rtx to rtx_insn *.
10322         (cached_next_real_insn): Likewise.
10323         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
10324         working with insns.
10325         (dwarf2out_var_location): Strengthen locals "next_real",
10326         "next_note", "expected_next_loc_note", "last_start", "insn" from
10327         rtx to rtx_insn *.
10328
10329 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10330
10331         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
10332         from rtx to rtx_insn *.
10333         (create_pseudo_cfg): Likewise for local "insn".
10334
10335 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10336
10337         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
10338         from rtx to rtx_insn *.
10339         (df_bb_regno_last_def_find): Likewise.
10340
10341         * df-problems.c (df_rd_bb_local_compute): Likewise.
10342         (df_lr_bb_local_compute): Likewise.
10343         (df_live_bb_local_compute): Likewise.
10344         (df_chain_remove_problem): Likewise.
10345         (df_chain_create_bb): Likewise.
10346         (df_word_lr_bb_local_compute): Likewise.
10347         (df_remove_dead_eq_notes): Likewise for param "insn".
10348         (df_note_bb_compute): Likewise for local "insn".
10349         (simulate_backwards_to_point): Likewise.
10350         (df_md_bb_local_compute): Likewise.
10351
10352         * df-scan.c (df_scan_free_bb_info): Likewise.
10353         (df_scan_start_dump): Likewise.
10354         (df_scan_start_block): Likewise.
10355         (df_install_ref_incremental): Likewise for local "insn".
10356         (df_insn_rescan_all): Likewise.
10357         (df_reorganize_refs_by_reg_by_insn): Likewise.
10358         (df_reorganize_refs_by_insn_bb): Likewise.
10359         (df_recompute_luids): Likewise.
10360         (df_bb_refs_record): Likewise.
10361         (df_update_entry_exit_and_calls): Likewise.
10362         (df_bb_verify): Likewise.
10363
10364 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10365
10366         * ddg.h (struct ddg_node): Strengthen fields "insn" and
10367         "first_note" from rtx to rtx_insn *.
10368         (get_node_of_insn): Likewise for param 2 "insn".
10369         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
10370
10371         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
10372         rtx_insn *.
10373         (mem_write_insn_p): Likewise.
10374         (mem_access_insn_p): Likewise.
10375         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
10376         (def_has_ccmode_p): Likewise for param "insn".
10377         (add_cross_iteration_register_deps): Likewise for locals
10378         "def_insn" and "use_insn".
10379         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
10380         (build_intra_loop_deps): Likewise for local "src_insn".
10381         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
10382         to rtx_insn *.
10383         (get_node_of_insn): Likewise for param "insn".
10384
10385 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10386
10387         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
10388         (deletable_insn_p): Strengthen param "insn" from rtx to
10389         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
10390         find_call_stack_args, since this is guarded by CALL_P (insn).
10391         (marked_insn_p): Strengthen param "insn" from rtx to
10392         rtx_insn *.
10393         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
10394         invoking find_call_stack_args, since this is guarded by
10395         CALL_P (insn).
10396         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
10397         rtx_insn *; we know this is an insn since this was called by
10398         mark_nonreg_stores.
10399         (mark_nonreg_stores_2): Likewise.
10400         (mark_nonreg_stores): Strengthen param "insn" from rtx to
10401         rtx_insn *.
10402         (find_call_stack_args): Strengthen param "call_insn" from rtx to
10403         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
10404         to rtx_insn *.
10405         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
10406         from rtx to rtx_insn *.
10407         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
10408         "next", "ref_insn".
10409         (delete_unmarked_insns): Likewise for locals "insn", "next".
10410         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
10411         (mark_reg_dependencies): Likewise for param "insn".
10412         (rest_of_handle_ud_dce): Likewise for local "insn".
10413         (word_dce_process_block): Likewise.
10414         (dce_process_block): Likewise.
10415
10416 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10417
10418         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
10419         from rtx to rtx_insn *.
10420         (struct change_cc_mode_args): Likewise for field "insn".
10421         (this_insn): Strengthen from rtx to rtx_insn *.
10422         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
10423         with insn.
10424         (validate_canon_reg): Strengthen param "insn" from rtx to
10425         rtx_insn *.
10426         (canon_reg): Likewise.
10427         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
10428         dealing with insn.
10429         (record_jump_equiv): Strengthen param "insn" from rtx to
10430         rtx_insn *.
10431         (try_back_substitute_reg): Likewise, also for locals "prev",
10432         "bb_head".
10433         (find_sets_in_insn): Likewise for param "insn".
10434         (canonicalize_insn): Likewise.
10435         (cse_insn): Likewise.  Add a checked cast.
10436         (invalidate_from_clobbers): Likewise for param "insn".
10437         (invalidate_from_sets_and_clobbers): Likewise.
10438         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
10439         dealing with insn.
10440         (cse_prescan_path): Strengthen local "insn" from rtx to
10441         rtx_insn *.
10442         (cse_extended_basic_block): Likewise for locals "insn" and
10443         "prev_insn".
10444         (cse_main): Likewise for param "f".
10445         (check_for_label_ref): Likewise for local "insn".
10446         (set_live_p): Likewise for second param ("insn").
10447         (insn_live_p): Likewise for first param ("insn") and for local
10448         "next".
10449         (cse_change_cc_mode_insn): Likewise for first param "insn".
10450         (cse_change_cc_mode_insns): Likewise for first and second params
10451         "start" and "end".
10452         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
10453         and "end".
10454         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
10455         "cc_src_insn".
10456
10457 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10458             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10459             Anna Tikhonova  <anna.tikhonova@intel.com>
10460             Ilya Tocar  <ilya.tocar@intel.com>
10461             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10462             Ilya Verbin  <ilya.verbin@intel.com>
10463             Kirill Yukhin  <kirill.yukhin@intel.com>
10464             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10465
10466         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
10467         New.
10468         * config/i386/sse.md
10469         (define_mode_iterator VI248_AVX2): Delete.
10470         (define_mode_iterator VI2_AVX2_AVX512BW): New.
10471         (define_mode_iterator VI48_AVX2): Ditto.
10472         (define_insn <shift_insn><mode>3): Delete.
10473         (define_insn "<shift_insn><mode>3<mask_name>" with
10474         VI2_AVX2_AVX512BW): New.
10475         (define_insn "<shift_insn><mode>3<mask_name>" with
10476         VI48_AVX2): Ditto.
10477
10478 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10479             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10480             Anna Tikhonova  <anna.tikhonova@intel.com>
10481             Ilya Tocar  <ilya.tocar@intel.com>
10482             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10483             Ilya Verbin  <ilya.verbin@intel.com>
10484             Kirill Yukhin  <kirill.yukhin@intel.com>
10485             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10486
10487         * config/i386/sse.md
10488         (define_mode_iterator VI4F_BRCST32x2): New.
10489         (define_mode_attr 64x2_mode): Ditto.
10490         (define_mode_attr 32x2mode): Ditto.
10491         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
10492         with VI4F_BRCST32x2): Ditto.
10493         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
10494         with V16FI mode iterator): Ditto.
10495         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
10496         with V16FI): Ditto.
10497         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
10498         with VI8F_BRCST64x2): Ditto.
10499
10500 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10501             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10502             Anna Tikhonova  <anna.tikhonova@intel.com>
10503             Ilya Tocar  <ilya.tocar@intel.com>
10504             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10505             Ilya Verbin  <ilya.verbin@intel.com>
10506             Kirill Yukhin  <kirill.yukhin@intel.com>
10507             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10508
10509         * config/i386/sse.md
10510         (define_mode_iterator VI8_AVX512VL): New.
10511         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
10512
10513 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
10514
10515         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
10516         (define_mode_iterator V48_AVX512VL): New.
10517         (define_mode_iterator V12_AVX512VL): Ditto.
10518         (define_insn <avx512>_load<mode>_mask): Split into two similar
10519         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
10520         Refactor output template.
10521         (define_insn "<avx512>_store<mode>_mask"): Ditto.
10522
10523 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10524
10525         * cprop.c (struct occr): Strengthen field "insn" from rtx to
10526         rtx_insn *.
10527         (reg_available_p): Likewise for param "insn".
10528         (insert_set_in_table): Likewise.
10529         (hash_scan_set): Likewise.
10530         (hash_scan_insn): Likewise.
10531         (make_set_regs_unavailable): Likewise.
10532         (compute_hash_table_work): Likewise for local "insn".
10533         (reg_not_set_p): Strengthen param "insn" from const_rtx to
10534         const rtx_insn *.
10535         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
10536         (try_replace_reg): Likewise.
10537         (find_avail_set): Likewise.
10538         (cprop_jump): Likewise for params "setcc", "jump".
10539         (constprop_register): Likewise for param "insn".
10540         (cprop_insn): Likewise.
10541         (do_local_cprop): Likewise.
10542         (local_cprop_pass): Likewise for local "insn".
10543         (bypass_block): Likewise for params "setcc" and "jump".
10544         (bypass_conditional_jumps): Likewise for locals "setcc" and
10545         "insn".
10546         (one_cprop_pass): Likewise for local "insn".
10547
10548 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10549
10550         * compare-elim.c (struct comparison_use): Strengthen field "insn"
10551         from rtx to rtx_insn *.
10552         (struct comparison): Likewise, also for field "prev_clobber".
10553         (conforming_compare): Likewise for param "insn".
10554         (arithmetic_flags_clobber_p): Likewise.
10555         (find_flags_uses_in_insn): Likewise.
10556         (find_comparison_dom_walker::before_dom_children): Likewise for
10557         locals "insn", "next", "last_clobber".
10558         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
10559
10560 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
10561
10562         * combine-stack-adj.c (struct csa_reflist): Strengthen field
10563         "insn" from rtx to rtx_insn *.
10564         (single_set_for_csa): Likewise for param "insn".
10565         (record_one_stack_ref): Likewise.
10566         (try_apply_stack_adjustment): Likewise.
10567         (struct record_stack_refs_data): Likewise for field "insn".
10568         (maybe_move_args_size_note): Likewise for params "last" and "insn".
10569         (prev_active_insn_bb): Likewise for return type and param "insn".
10570         (next_active_insn_bb): Likewise.
10571         (force_move_args_size_note): Likewise for params "prev" and "last"
10572         and locals "test", "next_candidate", "prev_candidate".
10573         (combine_stack_adjustments_for_block): Strengthen locals
10574         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
10575         rtx_insn *.
10576
10577 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10578
10579         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
10580         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
10581         (subst_insn): Likewise for this variable.
10582         (added_links_insn): Likewise.
10583         (struct insn_link): Likewise for field "insn".
10584         (alloc_insn_link): Likewise for param "insn".
10585         (struct undobuf): Likewise for field "other_insn".
10586         (find_single_use): Likewise for param "insn" and local "next".
10587         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
10588         (delete_noop_moves): Likewise for locals "insn", "next".
10589         (create_log_links): Likewise for locals "insn", "use_insn".
10590         Strengthen local "next_use" from rtx * to rtx_insn **.
10591         (insn_a_feeds_b): Likewise for params "a", "b".
10592         (combine_instructions): Likewise for param "f" and locals "insn",
10593         "next", "prev", "first", "last_combined_insn", "link", "link1",
10594         "temp".  Replace use of NULL_RTX with NULL when referring to
10595         insns.
10596         (setup_incoming_promotions): Likewise for param "first"
10597         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
10598         (can_combine_p): Likewise for params "insn", "i3", "pred",
10599         "pred2", "succ", "succ2" and for local "p".
10600         (combinable_i3pat): Likewise for param "i3".
10601         (cant_combine_insn_p): Likewise for param "insn".
10602         (likely_spilled_retval_p): Likewise.
10603         (adjust_for_new_dest): Likewise.
10604         (update_cfg_for_uncondjump): Likewise, also for local "insn".
10605         (try_combine): Likewise for return type and for params "i3", "i2",
10606         "i1", "i0", "last_combined_insn", and for locals "insn",
10607         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
10608         "i0_insn".  Eliminate local "tem" in favor of new locals
10609         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
10610         checked cast for now to rtx_insn * on the return type of
10611         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
10612         insns.
10613         (find_split_point): Strengthen param "insn" from rtx to
10614         rtx_insn *.
10615         (simplify_set): Likewise for local "other_insn".
10616         (recog_for_combine): Likewise for param "insn".
10617         (record_value_for_reg): Likewise.
10618         (record_dead_and_set_regs_1): Likewise for local
10619         "record_dead_insn".
10620         (record_dead_and_set_regs): Likewise for param "insn".
10621         (record_promoted_value): Likewise.
10622         (check_promoted_subreg): Likewise.
10623         (get_last_value_validate): Likewise.
10624         (reg_dead_at_p): Likewise.
10625         (move_deaths): Likewise for param "to_insn".
10626         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
10627         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
10628         in favor of new locals "tem_note" and "tem_insn", the latter being
10629         an rtx_insn *.
10630         (distribute_links): Strengthen locals "place", "insn" from rtx to
10631         rtx_insn *.
10632
10633 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10634
10635         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
10636         than a const_rtx.
10637         (can_delete_label_p): Require a const rtx_code_label * rather than
10638         a const_rtx.
10639         (delete_insn): Add checked cast to rtx_code_label * when we know
10640         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
10641         rtx to rtx_insn *.
10642         (delete_insn_chain): Strengthen locals "prev" and "current" from
10643         rtx to rtx_insn *.  Add a checked cast when assigning from
10644         "finish" (strengthening the params will come later).  Add a
10645         checked cast to rtx_note * in region where we know
10646         NOTE_P (current).
10647         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
10648         rtx_insn *.
10649         (compute_bb_for_insn): Likewise.
10650         (free_bb_for_insn): Likewise for local "insn".
10651         (compute_bb_for_insn): Likewise.
10652         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
10653         local "insn" from rtx to rtx_insn *
10654         (flow_active_insn_p): Require a const rtx_insn * rather than a
10655         const_rtx.
10656         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
10657         rtx_insn *.
10658         (can_fallthru): Likewise for locals "insn" and "insn2".
10659         (bb_note): Likewise for local "note".
10660         (first_insn_after_basic_block_note): Likewise for local "note" and
10661         for return type.
10662         (rtl_split_block): Likewise for locals "insn" and "next".
10663         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
10664         "end".
10665         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
10666         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
10667         "prev", "tmp".
10668         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
10669         them), "kill_from", "barrier", "new_insn".
10670         (patch_jump_insn): Likewise for params "insn", "old_label".
10671         (redirect_branch_edge): Likewise for locals "old_label", "insn".
10672         (force_nonfallthru_and_redirect): Likewise for locals "insn",
10673         "old_label", "new_label".
10674         (rtl_tidy_fallthru_edge): Likewise for local "q".
10675         (rtl_split_edge): Likewise for locals "before", "last".
10676         (commit_one_edge_insertion): Likewise for locals "before",
10677         "after", "insns", "tmp", "last", adding a checked cast where
10678         currently necessary.
10679         (commit_edge_insertions): Likewise.
10680         (rtl_dump_bb): Likewise for locals "insn", "last".
10681         (print_rtl_with_bb): Likewise for local "x".
10682         (rtl_verify_bb_insns): Likewise for local "x".
10683         (rtl_verify_bb_pointers): Likewise for local "insn".
10684         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
10685         "head", "end".
10686         (rtl_verify_fallthru): Likewise for local "insn".
10687         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
10688         (purge_dead_edges): Likewise for local "insn".
10689         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
10690         (skip_insns_after_block): Likewise for return type and for locals
10691         "insn", "last_insn", "next_head", "prev".
10692         (record_effective_endpoints): Likewise for locals "next_insn",
10693         "insn", "end".
10694         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
10695         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
10696         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
10697         (duplicate_insn_chain): For now, add checked cast from rtx to
10698         rtx_insn * when returning insn.
10699         (cfg_layout_duplicate_bb): Likewise for local "insn".
10700         (cfg_layout_delete_block): Likewise for locals "insn", "next",
10701         "prev", "remaints".
10702         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
10703         (rtl_block_empty_p): Likewise.
10704         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
10705         "split_point", "last".
10706         (rtl_block_ends_with_call_p): Likewise for local "insn".
10707         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
10708         const rtx_insn *.
10709         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
10710         "split_at_insn" from rtx to rtx_insn *.
10711         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
10712         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
10713         to const rtx_insn *.
10714         (rtl_account_profile_record): Likewise.
10715
10716 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10717
10718         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
10719         rtx to rtx_insn *.
10720         (average_num_loop_insns): Likewise.
10721         (init_set_costs): Likewise for local "seq".
10722         (seq_cost): Likewise for param "seq", from const_rtx to const
10723         rtx_insn *.
10724
10725 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10726
10727         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
10728         rtx to rtx_insn *.
10729
10730 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10731
10732         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
10733         "f1" and "f2" from rtx * to rtx_insn **.
10734         (flow_find_head_matching_sequence): Likewise.
10735
10736         * cfgcleanup.c (try_simplify_condjump): Strengthen local
10737         "cbranch_insn" from rtx to rtx_insn *.
10738         (thread_jump): Likewise for local "insn".
10739         (try_forward_edges): Likewise for local "last".
10740         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
10741         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
10742         "real_b_end".
10743         (can_replace_by): Likewise for params "i1", "i2".
10744         (old_insns_match_p): Likewise.
10745         (merge_notes): Likewise.
10746         (walk_to_nondebug_insn): Likewise for param "i1".
10747         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
10748         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
10749         "afterlast1", "afterlast2" from rtx to rtx_insn *.
10750         (flow_find_head_matching_sequence): Strengthen params "f1" and
10751         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
10752         "last1", "last2", "beforelast1", "beforelast2" from rtx to
10753         rtx_insn *.
10754         (outgoing_edges_match): Likewise for locals "last1", "last2".
10755         (try_crossjump_to_edge): Likewise for local "insn".
10756         Replace call to for_each_rtx with for_each_rtx_in_insn.
10757
10758         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
10759         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
10760         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
10761         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
10762         (try_optimize_cfg): Strengthen local "last" from rtx to
10763         rtx_insn *.
10764         (delete_dead_jumptables): Likewise for locals "insn", "next",
10765         "label".
10766
10767         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
10768         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
10769         "rtx else_first_tail", to reflect the basic-block.h changes above.
10770
10771 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10772
10773         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
10774         rtx_insn *.
10775         (purge_dead_tablejump_edges): Likewise.
10776         (find_bb_boundaries): Likewise for locals "insn", "end",
10777         "flow_transfer_insn".
10778
10779 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10780
10781         * caller-save.c (save_call_clobbered_regs): Strengthen locals
10782         "ins" and "prev" from rtx to rtx_insn *.
10783
10784 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10785
10786         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
10787         rtx_insn *.
10788         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
10789         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
10790         "scan_start".
10791         (load_register_parameters): Likewise for local "before_arg".
10792         (check_sibcall_argument_overlap): Likewise for param "insn".
10793         (expand_call): Likewise for locals "normal_call_insns",
10794         "tail_call_insns", "insns", "before_call", "after_args",
10795         "before_arg", "last", "prev".  Strengthen one of the "last" from
10796         rtx to rtx_call_insn *.
10797         (fixup_tail_calls): Strengthen local "insn" from rtx to
10798         rtx_insn *.
10799         (emit_library_call_value_1): Likewise for locals "before_call" and
10800         "last".
10801
10802 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10803
10804         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
10805         and "last" from rtx to rtx_insn *.
10806         (expand_builtin_nonlocal_goto): Likewise for local "insn".
10807         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
10808         rtx_call_insn *.
10809         (expand_errno_check): Strengthen local "lab" from rtx to
10810         rtx_code_label *.
10811         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
10812         rtx_insn *.
10813         (expand_builtin_mathfn_2): Likewise.
10814         (expand_builtin_mathfn_ternary): Likewise.
10815         (expand_builtin_mathfn_3): Likewise.
10816         (expand_builtin_interclass_mathfn): Likewise for local "last".
10817         (expand_builtin_int_roundingfn): Likewise for local "insns".
10818         (expand_builtin_int_roundingfn_2): Likewise.
10819         (expand_builtin_strlen): Likewise for local "before_strlen".
10820         (expand_builtin_strncmp): Likewise for local "seq".
10821         (expand_builtin_signbit): Likewise for local "last".
10822         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
10823         from rtx to rtx_code_label *.
10824         (expand_stack_restore):  Strengthen local "prev" from rtx to
10825         rtx_insn *.
10826
10827 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10828
10829         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
10830         to rtx_insn *.
10831         (struct btr_def_s): Likewise.
10832         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
10833         const rtx_insn *.
10834         (add_btr_def): Likewise.
10835         (new_btr_user): Likewise.
10836         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
10837         rtx to rtx_insn *.
10838         (link_btr_uses): Likewise.
10839         (move_btr_def): Likewise for locals "insp", "old_insn",
10840         "new_insn".  Add checked cast to rtx_insn * for now on result of
10841         gen_move_insn.
10842         (can_move_up): Strengthen param "insn" from const_rtx to
10843         const rtx_insn *.
10844
10845 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10846
10847         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
10848         rtx_insn *.
10849         (get_uncond_jump_length): Likewise for locals "label", "jump".
10850         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
10851         "jump", "insn".
10852         (add_labels_and_missing_jumps): Likewise for local "new_jump".
10853         (fix_up_fall_thru_edges): Likewise for local "old_jump".
10854         (find_jump_block): Likewise for local "insn".
10855         (fix_crossing_conditional_branches): Likewise for locals
10856         "old_jump", "new_jump".
10857         (fix_crossing_unconditional_branches): Likewise for locals
10858         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
10859         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
10860
10861 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10862
10863         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
10864         rtx to rtx_insn *.
10865         (struct mem_insn): Likewise for field "insn".
10866         (reg_next_use): Strengthen from rtx * to rtx_insn **.
10867         (reg_next_inc_use): Likewise.
10868         (reg_next_def): Likewise.
10869         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
10870         from rtx to rtx_insn *.
10871         (move_insn_before): Likewise for param "next_insn" and local "insns".
10872         (attempt_change): Likewise for local "mov_insn".
10873         (try_merge): Likewise for param "last_insn".
10874         (get_next_ref): Likewise for return type and local "insn".
10875         Strengthen param "next_array" from rtx * to rtx_insn **.
10876         (parse_add_or_inc): Strengthen param "insn" from rtx to
10877         rtx_insn *.
10878         (find_inc): Likewise for locals "insn" and "other_insn" (three of
10879         the latter).
10880         (merge_in_block): Likewise for locals "insn", "curr",
10881         "other_insn".
10882         (pass_inc_dec::execute): Update allocations of the arrays to
10883         reflect the stronger types.
10884
10885 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10886
10887         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
10888         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
10889         from rtx to rtx_code_label *.
10890
10891 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10892
10893         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
10894         to rtx_insn *.
10895
10896 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
10897
10898         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
10899         generated a warning and prevented bootstrapping the compiler.
10900
10901 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10902
10903         * rtl.h (delete_related_insns): Strengthen return type from rtx to
10904         rtx_insn *.
10905
10906         * jump.c (delete_related_insns): Likewise, also for locals "next"
10907         and "prev".
10908
10909 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10910
10911         * genautomata.c (output_internal_insn_latency_func): When writing
10912         the function "internal_insn_latency" to insn-automata.c,
10913         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
10914         allowing the optional guard function of (define_bypass) clauses to
10915         expect a pair of rtx_insn *, rather than a pair of rtx.
10916         (output_insn_latency_func): When writing the function
10917         "insn_latency", add an "uncast_" prefix to params "insn" and
10918         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
10919         using checked casts from the params, thus enabling the above
10920         change to the generated "internal_insn_latency" function.
10921
10922 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
10923
10924         PR tree-optimization/62091
10925         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
10926         handle correctly arrays.
10927         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
10928         inheritance binfos.
10929         (record_known_type): Walk into inner type.
10930         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
10931         condition on no type changes.
10932
10933 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10934
10935         * genattrtab.c (write_attr_get): Within the generated get_attr_
10936         functions, rename param "insn" to "uncast_insn" and reintroduce
10937         "insn" as an local rtx_insn * using a checked cast, so that "insn"
10938         is an rtx_insn * within insn-attrtab.c
10939
10940 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10941
10942         * output.h (peephole): Strengthen return type from rtx to
10943         rtx_insn *.
10944         * rtl.h (delete_for_peephole): Likewise for both params.
10945         * genpeep.c (main): In generated "peephole" function, strengthen
10946         return type and local "insn" from rtx to rtx_insn *.  For now,
10947         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
10948         rtx_insn *, with a checked cast.
10949         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
10950         locals "insn", "next", "prev" from rtx to rtx_insn *.
10951
10952 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
10953
10954         PR tree-optimization/62112
10955         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
10956         * gimple-iterator.h (gsi_replace): Return bool.
10957         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
10958         moved from ref_may_alias_global_p.
10959         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
10960         New overloads.
10961         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
10962         (stmt_kills_ref_p_1): Rename...
10963         (stmt_kills_ref_p): ... to this.
10964         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
10965         stmt_kills_ref_p): Declare.
10966         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
10967         Move the self-assignment case...
10968         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
10969
10970 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10971
10972         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
10973
10974         * emit-rtl.c (try_split): Likewise, also for locals "before" and
10975         "after".  For now, don't strengthen param "trial", which requires
10976         adding checked casts when returning it.
10977
10978 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
10979
10980         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
10981         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
10982         "var_location" hook from rtx to rtx_insn *.
10983         (debug_nothing_rtx): Delete in favor of...
10984         (debug_nothing_rtx_code_label): New prototype.
10985         (debug_nothing_rtx_rtx): Delete unused prototype.
10986         (debug_nothing_rtx_insn): New prototype.
10987
10988         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
10989         invoking debug_hooks->var_location (in two places, one in a NOTE
10990         case of a switch statement, the other guarded by a CALL_P
10991         conditional.  Add checked cast to rtx_code_label * when invoking
10992         debug_hooks->label (within CODE_LABEL case of switch statement).
10993
10994         * dbxout.c (dbx_debug_hooks): Update "label" hook from
10995         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
10996         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
10997         (xcoff_debug_hooks): Likewise.
10998         * debug.c (do_nothing_debug_hooks): Likewise.
10999         (debug_nothing_rtx): Delete in favor of...
11000         (debug_nothing_rtx_insn): New function.
11001         (debug_nothing_rtx_rtx): Delete unused function.
11002         (debug_nothing_rtx_code_label): New function.
11003         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
11004         debug_nothing_rtx to debug_nothing_rtx_code_label.
11005         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
11006         to rtx_insn *.
11007         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
11008         debug_nothing_rtx to debug_nothing_rtx_insn.
11009         (sdbout_label): Strengthen param "insn" from rtx to
11010         rtx_code_label *.
11011         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
11012         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
11013         "var_location" hook from debug_nothing_rtx to
11014         debug_nothing_rtx_insn.
11015
11016 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
11017
11018         * recog.h (insn_output_fn): Update this function typedef to match
11019         the changes below to the generated output functions, strengthening
11020         the 2nd param from rtx to rtx_insn *.
11021
11022         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
11023         insn when invoking an output function, to match the new signature
11024         of insn_output_fn with a stronger second param.
11025
11026         * genconditions.c (write_header): In the generated code for
11027         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
11028         to match the other changes in this patch.
11029
11030         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
11031         the generated "gen_" functions from rtx to rtx_insn * within their
11032         implementations.
11033
11034         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
11035         the subfunctions within the generated "recog_", "split", "peephole2"
11036         function trees from rtx to rtx_insn *.  For now, the top-level
11037         generated functions ("recog", "split", "peephole2") continue to
11038         take a plain rtx for "insn", to avoid introducing dependencies on
11039         other patches.  Rename this 2nd param from "insn" to
11040         "uncast_insn", and reintroduce "insn" as a local variable of type
11041         rtx_insn *, initialized at the top of the generated function with
11042         a checked cast on "uncast_insn".
11043         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
11044         the generated "gen_" functions from rtx to rtx_insn * within their
11045         prototypes.
11046
11047         * genoutput.c (process_template): Strengthen the 2nd param within
11048         the generated "output_" functions "insn" from rtx to rtx_insn *.
11049
11050 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
11051
11052         * tree-profile.c (tree_profiling): Skip external functions
11053         when doing coverage instrumentation.
11054         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
11055
11056 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11057
11058         * config/rs6000/altivec.h (vec_cpsgn): New #define.
11059         (vec_mergee): Likewise.
11060         (vec_mergeo): Likewise.
11061         (vec_cntlz): Likewise.
11062         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
11063         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
11064         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
11065         VMRGEW, and VMRGOW.
11066         * doc/extend.texi: Document various forms of vec_cpsgn,
11067         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
11068         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
11069         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
11070         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
11071         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
11072
11073 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11074
11075         * config/rs6000/rs6000.c (context.h): New include.
11076         (tree-pass.h): Likewise.
11077         (make_pass_analyze_swaps): New decl.
11078         (rs6000_option_override): Register pass_analyze_swaps.
11079         (swap_web_entry): New subsclass of web_entry_base (df.h).
11080         (special_handling_values): New enum.
11081         (union_defs): New function.
11082         (union_uses): Likewise.
11083         (insn_is_load_p): Likewise.
11084         (insn_is_store_p): Likewise.
11085         (insn_is_swap_p): Likewise.
11086         (rtx_is_swappable_p): Likewise.
11087         (insn_is_swappable_p): Likewise.
11088         (chain_purpose): New enum.
11089         (chain_contains_only_swaps): New function.
11090         (mark_swaps_for_removal): Likewise.
11091         (swap_const_vector_halves): Likewise.
11092         (adjust_subreg_index): Likewise.
11093         (permute_load): Likewise.
11094         (permute_store): Likewise.
11095         (handle_special_swappables): Likewise.
11096         (replace_swap_with_copy): Likewise.
11097         (dump_swap_insn_table): Likewise.
11098         (rs6000_analyze_swaps): Likewise.
11099         (pass_data_analyze_swaps): New pass_data.
11100         (pass_analyze_swaps): New rtl_opt_pass.
11101         (make_pass_analyze_swaps): New function.
11102         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
11103
11104 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
11105
11106         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
11107         type from rtx to rtx_insn *.
11108         (create_copy_of_insn_rtx): Likewise.
11109         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
11110         (create_copy_of_insn_rtx): Likewise, also for local "res".
11111
11112 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
11113
11114         * rtl.h (find_first_parameter_load): Strengthen return type from
11115         rtx to rtx_insn *.
11116         * rtlanal.c (find_first_parameter_load): Strengthen return type
11117         from rtx to rtx_insn *.  Add checked cast for now, to postpone
11118         strengthening the params.
11119
11120 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11121
11122         PR fortran/44054
11123         * diagnostic.c: Set default caret.
11124         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
11125         line is needed.
11126         * diagnostic.h (struct diagnostic_context):
11127
11128 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
11129
11130         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
11131         (sel_bb_head): Strengthen return type insn_t (currently just an
11132         rtx) to rtx_insn *.
11133         (sel_bb_end): Likewise.
11134
11135         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
11136         (sel_bb_head): Strengthen return type and local "head" from
11137         insn_t (currently just an rtx) to rtx_insn *.
11138         (sel_bb_end): Likewise for return type.
11139         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
11140         working with insn.
11141
11142 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
11143
11144         * basic-block.h (get_last_bb_insn): Strengthen return type from
11145         rtx to rtx_insn *.
11146         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
11147         end".
11148
11149 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11150
11151         PR fortran/44054
11152         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
11153          to here ...
11154         (diagnostic_report_diagnostic): ... from here.
11155         * toplev.c (general_init): Move code to c-family.
11156
11157 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11158
11159         * df.h (web_entry_base): Replace existing struct web_entry with a
11160         new class web_entry_base with only the predecessor member.
11161         (unionfind_root): Remove declaration and move to class member.
11162         (unionfind_union): Remove declaration and move to friend
11163         function.
11164         (union_defs): Remove declaration.
11165         * web.c (web_entry_base::unionfind_root): Modify to be member
11166         function and adjust accessors.
11167         (unionfind_union): Modify to be friend function and adjust
11168         accessors.
11169         (web_entry): New subclass of web_entry_base containing the reg
11170         member.
11171         (union_match_dups): Modify for struct -> class changes.
11172         (union_defs): Likewise.
11173         (entry_register): Likewise.
11174         (pass_web::execute): Likewise.
11175
11176 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
11177
11178         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
11179         builtin define __VEC_ELEMENT_REG_ORDER__.
11180
11181 2014-08-20  Martin Jambor  <mjambor@suse.cz>
11182             Wei Mi  <wmi@google.com>
11183
11184         PR ipa/60449
11185         PR middle-end/61776
11186         * tree-ssa-operands.c (update_stmt_operands): Remove
11187         MODIFIED_NORETURN_CALLS.
11188         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
11189         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
11190         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
11191         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
11192         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
11193         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
11194         (gimple_call_set_ctrl_altering): New func.
11195         (gimple_call_ctrl_altering_p): Ditto.
11196         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
11197         (make_blocks): Use gimple_call_initialize_ctrl_altering.
11198         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
11199         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
11200         remove MODIFIED_NORETURN_CALLS.
11201
11202 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
11203
11204         * coverage.c (coverage_compute_profile_id): Return non-0;
11205         also handle symbols with unique name.
11206         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
11207
11208 2014-08-20  Steve Ellcey  <sellcey@mips.com>
11209
11210         PR middle-end/49191
11211         * doc/sourcebuild.texi (non_strict_align): New.
11212
11213 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
11214
11215         * cgraphunit.c (ipa_passes, compile): Reshedule
11216         symtab_remove_unreachable_nodes passes; update comments.
11217         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
11218         TODO_remove_functions before the pass; the functions ought to be
11219         already removed.
11220         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
11221         TODO_remove_functions.
11222         * passes.c (pass_data_early_local_passes): Do not schedule function
11223         removal.
11224         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
11225
11226 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11227
11228         PR c/59304
11229         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
11230         before setting the option.
11231         * diagnostic.c (diagnostic_classify_diagnostic): Record
11232         command-line status.
11233
11234 2014-08-20  Richard Biener  <rguenther@suse.de>
11235
11236         PR lto/62190
11237         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
11238         to build uint{16,32,64}_type_node.
11239
11240 2014-08-20  Terry Guo  <terry.guo@arm.com>
11241
11242         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
11243         with immediate_operand.
11244
11245 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
11246
11247         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
11248         "insn" from an as_a to a safe_as_a, for the case when "insn" is
11249         NULL.
11250
11251 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11252
11253         PR preprocessor/51303
11254         * incpath.c (remove_duplicates): Use cpp_warning.
11255
11256 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11257
11258         PR c/60975
11259         PR c/53063
11260         * doc/options.texi (CPP): Document it.
11261         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
11262         * optc-gen.awk: Handle CPP.
11263         * opth-gen.awk: Likewise.
11264
11265 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11266
11267         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
11268         rtx_insn *.
11269         (duplicate_insn_chain): Likewise.
11270         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
11271         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
11272         checked cast for now (until we can strengthen the params in the
11273         same way).
11274         (duplicate_insn_chain): Likewise.
11275
11276 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11277
11278         * rtl.h (next_cc0_user): Strengthen return type from rtx to
11279         rtx_insn *.
11280         (prev_cc0_setter): Likewise.
11281
11282         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
11283         rtx_insn *, adding checked casts for now as necessary.
11284         (prev_cc0_setter): Likewise.
11285
11286 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11287
11288         * expr.h (emit_move_insn): Strengthen return type from rtx to
11289         rtx_insn *.
11290         (emit_move_insn_1): Likewise.
11291         (emit_move_complex_push): Likewise.
11292         (emit_move_complex_parts): Likewise.
11293
11294         * expr.c (emit_move_via_integer): Strengthen return type from rtx
11295         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
11296         with insns.
11297         (emit_move_complex_push): Strengthen return type from rtx to
11298         rtx_insn *.
11299         (emit_move_complex): Likewise, also for local "ret".
11300         (emit_move_ccmode): Likewise.
11301         (emit_move_multi_word): Likewise for return type and locals
11302         "last_insn", "seq".
11303         (emit_move_insn_1): Likewise for return type and locals "result",
11304         "ret".
11305         (emit_move_insn): Likewise for return type and local "last_insn".
11306         (compress_float_constant): Likewise.
11307
11308 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11309
11310         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
11311         from rtx to rtx_insn *.
11312
11313         * rtl.h (emit_insn_before): Likewise.
11314         (emit_insn_before_noloc): Likewise.
11315         (emit_insn_before_setloc): Likewise.
11316         (emit_jump_insn_before): Likewise.
11317         (emit_jump_insn_before_noloc): Likewise.
11318         (emit_jump_insn_before_setloc): Likewise.
11319         (emit_call_insn_before): Likewise.
11320         (emit_call_insn_before_noloc): Likewise.
11321         (emit_call_insn_before_setloc): Likewise.
11322         (emit_debug_insn_before): Likewise.
11323         (emit_debug_insn_before_noloc): Likewise.
11324         (emit_debug_insn_before_setloc): Likewise.
11325         (emit_label_before): Likewise.
11326         (emit_insn_after): Likewise.
11327         (emit_insn_after_noloc): Likewise.
11328         (emit_insn_after_setloc): Likewise.
11329         (emit_jump_insn_after): Likewise.
11330         (emit_jump_insn_after_noloc): Likewise.
11331         (emit_jump_insn_after_setloc): Likewise.
11332         (emit_call_insn_after): Likewise.
11333         (emit_call_insn_after_noloc): Likewise.
11334         (emit_call_insn_after_setloc): Likewise.
11335         (emit_debug_insn_after): Likewise.
11336         (emit_debug_insn_after_noloc): Likewise.
11337         (emit_debug_insn_after_setloc): Likewise.
11338         (emit_label_after): Likewise.
11339         (emit_insn): Likewise.
11340         (emit_debug_insn): Likewise.
11341         (emit_jump_insn): Likewise.
11342         (emit_call_insn): Likewise.
11343         (emit_label): Likewise.
11344         (gen_clobber): Likewise.
11345         (emit_clobber): Likewise.
11346         (gen_use): Likewise.
11347         (emit_use): Likewise.
11348         (emit): Likewise.
11349
11350         (emit_barrier_before): Strengthen return type from rtx to
11351         rtx_barrier *.
11352         (emit_barrier_after): Likewise.
11353         (emit_barrier): Likewise.
11354
11355         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
11356         from rtx to rtx_insn *.  Add checked casts for now when converting
11357         "last" from rtx to rtx_insn *.
11358         (emit_insn_before_noloc): Likewise for return type.
11359         (emit_jump_insn_before_noloc): Likewise.
11360         (emit_call_insn_before_noloc): Likewise.
11361         (emit_debug_insn_before_noloc): Likewise.
11362         (emit_barrier_before): Strengthen return type and local "insn"
11363         from rtx to rtx_barrier *.
11364         (emit_label_before): Strengthen return type from rtx to
11365         rtx_insn *.  Add checked cast for now when returning param
11366         (emit_pattern_after_noloc): Strengthen return type from rtx to
11367         rtx_insn *.  Add checked casts for now when converting "last" from
11368         rtx to rtx_insn *.
11369         (emit_insn_after_noloc): Strengthen return type from rtx to
11370         rtx_insn *.
11371         (emit_jump_insn_after_noloc): Likewise.
11372         (emit_call_insn_after_noloc): Likewise.
11373         (emit_debug_insn_after_noloc): Likewise.
11374         (emit_barrier_after): Strengthen return type from rtx to
11375         rtx_barrier *.
11376         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
11377         Add checked cast for now when converting "label" from rtx to
11378         rtx_insn *.
11379         (emit_pattern_after_setloc): Strengthen return type from rtx to
11380         rtx_insn *.  Add checked casts for now when converting "last" from
11381         rtx to rtx_insn *.
11382         (emit_pattern_after): Strengthen return type from rtx to
11383         rtx_insn *.
11384         (emit_insn_after_setloc): Likewise.
11385         (emit_insn_after): Likewise.
11386         (emit_jump_insn_after_setloc): Likewise.
11387         (emit_jump_insn_after): Likewise.
11388         (emit_call_insn_after_setloc): Likewise.
11389         (emit_call_insn_after): Likewise.
11390         (emit_debug_insn_after_setloc): Likewise.
11391         (emit_debug_insn_after): Likewise.
11392         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
11393         when converting "last" from rtx to rtx_insn *.
11394         (emit_pattern_before): Strengthen return type from rtx to
11395         rtx_insn *.
11396         (emit_insn_before_setloc): Likewise.
11397         (emit_insn_before): Likewise.
11398         (emit_jump_insn_before_setloc): Likewise.
11399         (emit_jump_insn_before): Likewise.
11400         (emit_call_insn_before_setloc): Likewise.
11401         (emit_call_insn_before): Likewise.
11402         (emit_debug_insn_before_setloc): Likewise.
11403         (emit_debug_insn_before): Likewise.
11404         (emit_insn): Strengthen return type and locals "last", "insn",
11405         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
11406         within cases where we know we have an insn.
11407         (emit_debug_insn): Likewise.
11408         (emit_jump_insn): Likewise.
11409         (emit_call_insn): Strengthen return type and local "insn" from rtx
11410         to rtx_insn *.
11411         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
11412         a checked cast to rtx_insn * for now on "label".
11413         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
11414         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
11415         (emit_use): Likewise.
11416         (gen_use): Likewise, also for local "seq".
11417         (emit): Likewise for return type and local "insn".
11418         (rtx_insn): Likewise for return type and local "new_rtx".
11419
11420         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
11421         from rtx to rtx_barrier *.
11422
11423         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
11424         changed return type from rtx to rtx_insn *, we must update
11425         "emit_fn" type, and this in turn means updating...
11426         (frame_insn): ...this.  Strengthen return type from rtx to
11427         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
11428
11429 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11430
11431         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
11432         rtx to rtx_jump_table_data *.  Also for local.
11433         * rtl.h (emit_jump_table_data): Likewise.
11434
11435 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11436
11437         * basic-block.h (create_basic_block_structure): Strengthen third
11438         param "bb_note" from rtx to rtx_note *.
11439         * rtl.h (emit_note_before): Strengthen return type from rtx to
11440         rtx_note *.
11441         (emit_note_after): Likewise.
11442         (emit_note): Likewise.
11443         (emit_note_copy): Likewise.  Also, strengthen param similarly.
11444         * function.h (struct rtl_data): Strengthen field
11445         "x_stack_check_probe_note" from rtx to rtx_note *.
11446
11447         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
11448         from rtx to rtx_note *.
11449         * cfgrtl.c (create_basic_block_structure): Strengthen third param
11450         "bb_note" from rtx to rtx_note *.
11451         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
11452         when calling emit_note_copy.
11453         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
11454         rtx_note *.
11455         (emit_note_after): Likewise.
11456         (emit_note_before): Likewise.
11457         (emit_note_copy): Likewise.  Also, strengthen param similarly.
11458         (emit_note): Likewise.
11459         * except.c (emit_note_eh_region_end): Likewise for return type.
11460         Strengthen local "next" from rtx to rtx_insn *.
11461         (convert_to_eh_region_ranges): Strengthen local "note"
11462         from rtx to rtx_note *.
11463         * final.c (change_scope): Likewise.
11464         (reemit_insn_block_notes): Likewise, for both locals named "note".
11465         Also, strengthen local "insn" from rtx to rtx_insn *.
11466         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
11467         rtx to rtx_note *.
11468         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
11469         strengthen local "seq" from rtx to rtx_insn *.
11470         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
11471         to rtx_note *.
11472         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
11473         vec<rtx_note *>.
11474         (get_bb_note_from_pool): Strengthen return type from rtx to
11475         rtx_note *.
11476         (sel_create_basic_block): Strengthen local "new_bb_note" from
11477         insn_t to rtx_note *.
11478         * var-tracking.c (emit_note_insn_var_location): Strengthen local
11479         "note" from rtx to rtx_note *.
11480         (emit_notes_in_bb): Likewise.
11481
11482 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11483
11484         * function.h (struct rtl_data): Strengthen field
11485         "x_parm_birth_insn" from rtx to rtx_insn *.
11486         * function.c (struct assign_parm_data_all): Strengthen fields
11487         "first_conversion_insn" and "last_conversion_insn" from rtx to
11488         rtx_insn *.
11489
11490 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11491
11492         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
11493         to rtx_insn *; also for local "var_end_seq".
11494         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
11495         (maybe_cleanup_end_of_block): Likewise for param "last" and local
11496         "insn".
11497         (expand_gimple_cond): Likewise for locals "last2" and "last".
11498         (mark_transaction_restart_calls): Likewise for local "insn".
11499         (expand_gimple_stmt): Likewise for return type and locals "last"
11500         and "insn".
11501         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
11502         (avoid_complex_debug_insns): Likewise for param "insn".
11503         (expand_debug_locations): Likewise for locals "insn", "last",
11504         "prev_insn" and "insn2".
11505         (expand_gimple_basic_block): Likewise for local "last".
11506         (construct_exit_block): Likewise for locals "head", "end",
11507         "orig_end".
11508         (pass_expand::execute): Likewise for locals "var_seq",
11509         "var_ret_seq", "next".
11510
11511 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11512
11513         * asan.h (asan_emit_stack_protection): Strengthen return type from
11514         rtx to rtx_insn *.
11515         * asan.c (asan_emit_stack_protection): Likewise.  Add local
11516         "insns" to hold the return value.
11517
11518 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11519
11520         * basic-block.h (bb_note): Strengthen return type from rtx to
11521         rtx_note *.
11522         * sched-int.h (bb_note): Likewise.
11523         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
11524
11525 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11526
11527         * rtl.h (make_insn_raw): Strengthen return type from rtx to
11528         rtx_insn *.
11529
11530         * emit-rtl.c (make_insn_raw): Strengthen return type and local
11531         "insn" from rtx to rtx_insn *.
11532         (make_debug_insn_raw): Strengthen return type from rtx to
11533         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
11534         (make_jump_insn_raw):  Strengthen return type from rtx to
11535         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
11536         (make_call_insn_raw):  Strengthen return type from rtx to
11537         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
11538         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
11539         callback from rtx to rtx_insn *; likewise for local "insn" and
11540         "next", adding a checked cast to rtx_insn in the relevant cases of
11541         the switch statement.
11542         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
11543         callback from rtx to rtx_insn *.
11544         (emit_pattern_after_setloc): Likewise.
11545         (emit_pattern_after): Likewise.
11546         (emit_pattern_before_setloc): Likewise.
11547         (emit_pattern_before): Likewise.
11548
11549 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11550
11551         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
11552         rtx_call_insn *.
11553         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
11554         accepting an rtx_insn *.
11555         (last_call_insn): Strengthen return type from rtx to
11556         rtx_call_insn *.
11557
11558 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11559
11560         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
11561         "insns" from rtx to rtx_insn *.
11562         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
11563         locals "insn" and "prev".
11564
11565 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11566
11567         * rtl.h (tablejump_p): Strengthen third param from rtx * to
11568         rtx_jump_table_data **.
11569
11570         * cfgbuild.c (make_edges): Introduce local "table", using it in
11571         place of "tmp" for jump table data.
11572         (find_bb_boundaries): Strengthen local "table" from rtx to
11573         rtx_jump_table_data *.
11574         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
11575         (outgoing_edges_match): Likewise for locals "table1" and "table2".
11576         (try_crossjump_to_edge): Likewise.
11577         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
11578         "table".
11579         (patch_jump_insn): Introduce local "table", using it in place of
11580         "tmp" for jump table data.
11581         (force_nonfallthru_and_redirect): Introduce local "table", so that
11582         call to tablejump_p can receive an rtx_jump_table_data **.  Update
11583         logic around the call to overwrite "note" appropriately if
11584         tablejump_p returns non-zero.
11585         (get_last_bb_insn): Introduce local "table", using it in place of
11586         "tmp" for jump table data.
11587         * dwarf2cfi.c (create_trace_edges): Likewise.
11588
11589         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
11590         from rtx to rtx_jump_table_data *.
11591         (create_fix_barrier): Strengthen local "tmp" from rtx to
11592         rtx_jump_table_data *.
11593         (arm_reorg): Likewise for local "table".
11594
11595         * config/s390/s390.c (s390_chunkify_start): Likewise.
11596
11597         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
11598
11599         * jump.c (delete_related_insns): Strengthen local "lab_next" from
11600         rtx to rtx_jump_table_data *.
11601
11602         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
11603         rtx_jump_table_data **.  Add a checked cast when writing through
11604         the pointer: we know there that local "table" is non-NULL and that
11605         JUMP_TABLE_DATA_P (table) holds.
11606         (label_is_jump_target_p): Introduce local "table", using it in
11607         place of "tmp" for jump table data.
11608
11609 2014-08-19  Marek Polacek  <polacek@redhat.com>
11610
11611         PR c++/62153
11612         * doc/invoke.texi: Document -Wbool-compare.
11613
11614 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11615
11616         * rtl.h (entry_of_function): Strengthen return type from rtx to
11617         rtx_insn *.
11618         * cfgrtl.c (entry_of_function): Likewise.
11619
11620 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11621
11622         * emit-rtl.h (get_insns): Strengthen return type from rtx to
11623         rtx_insn *, adding a checked cast for now.
11624         (get_last_insn): Likewise.
11625
11626 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11627
11628         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
11629         rtx_code_label *.
11630
11631         * emit-rtl.c (gen_label_rtx): Likewise.
11632
11633 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11634
11635         * rtl.h (previous_insn): Strengthen return type from rtx to
11636         rtx_insn *.
11637         (next_insn): Likewise.
11638         (prev_nonnote_insn): Likewise.
11639         (prev_nonnote_insn_bb): Likewise.
11640         (next_nonnote_insn): Likewise.
11641         (next_nonnote_insn_bb): Likewise.
11642         (prev_nondebug_insn): Likewise.
11643         (next_nondebug_insn): Likewise.
11644         (prev_nonnote_nondebug_insn): Likewise.
11645         (next_nonnote_nondebug_insn): Likewise.
11646         (prev_real_insn): Likewise.
11647         (next_real_insn): Likewise.
11648         (prev_active_insn): Likewise.
11649         (next_active_insn): Likewise.
11650
11651         * emit-rtl.c (next_insn): Strengthen return type from rtx to
11652         rtx_insn *, adding a checked cast.
11653         (previous_insn): Likewise.
11654         (next_nonnote_insn): Likewise.
11655         (next_nonnote_insn_bb): Likewise.
11656         (prev_nonnote_insn): Likewise.
11657         (prev_nonnote_insn_bb): Likewise.
11658         (next_nondebug_insn): Likewise.
11659         (prev_nondebug_insn): Likewise.
11660         (next_nonnote_nondebug_insn): Likewise.
11661         (prev_nonnote_nondebug_insn): Likewise.
11662         (next_real_insn): Likewise.
11663         (prev_real_insn): Likewise.
11664         (next_active_insn): Likewise.
11665         (prev_active_insn): Likewise.
11666
11667         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
11668         param "stepfunc" so that it returns an rtx_insn * rather than an
11669         rtx, to track the change to prev_nonnote_insn_bb, which is the
11670         only function this is called with.
11671         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
11672
11673 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
11674
11675         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
11676         assert.
11677
11678 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11679
11680         * coretypes.h (class rtx_debug_insn): Add forward declaration.
11681         (class rtx_nonjump_insn): Likewise.
11682         (class rtx_jump_insn): Likewise.
11683         (class rtx_call_insn): Likewise.
11684         (class rtx_jump_table_data): Likewise.
11685         (class rtx_barrier): Likewise.
11686         (class rtx_code_label): Likewise.
11687         (class rtx_note): Likewise.
11688
11689         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
11690         adding the invariant DEBUG_INSN_P (X).
11691         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
11692         the invariant NONJUMP_INSN_P (X).
11693         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
11694         the invariant JUMP_P (X).
11695         (class rtx_call_insn): New, a subclass of rtx_insn, adding
11696         the invariant CALL_P (X).
11697         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
11698         invariant JUMP_TABLE_DATA_P (X).
11699         (class rtx_barrier): New, a subclass of rtx_insn, adding the
11700         invariant BARRIER_P (X).
11701         (class rtx_code_label): New, a subclass of rtx_insn, adding
11702         the invariant LABEL_P (X).
11703         (class rtx_note): New, a subclass of rtx_insn, adding
11704         the invariant NOTE_P(X).
11705         (is_a_helper <rtx_debug_insn *>::test): New.
11706         (is_a_helper <rtx_nonjump_insn *>::test): New.
11707         (is_a_helper <rtx_jump_insn *>::test): New.
11708         (is_a_helper <rtx_call_insn *>::test): New.
11709         (is_a_helper <rtx_jump_table_data *>::test): New functions,
11710         overloaded for both rtx and rtx_insn *.
11711         (is_a_helper <rtx_barrier *>::test): New.
11712         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
11713         for both rtx and rtx_insn *.
11714         (is_a_helper <rtx_note *>::test): New.
11715
11716 2014-08-19  Marek Polacek  <polacek@redhat.com>
11717
11718         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
11719         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
11720         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
11721         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
11722
11723 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11724
11725         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
11726         rtx_insn *.  To help with transition, for now, convert from an
11727         access macro into a pair of functions: BND_TO, returning an
11728         rtx_insn *, and...
11729         (SET_BND_TO): New function, for use where BND_TO is used as an
11730         lvalue.
11731
11732         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
11733         SET_BND_TO.
11734         (BND_TO): New function, adding a checked cast.
11735         (SET_BND_TO): New function.
11736
11737         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
11738         SET_BND_TO.
11739         (compute_av_set_on_boundaries): Likewise.
11740
11741 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
11742
11743         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
11744         destination if it is used in source.
11745         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
11746         (*popcount<mode>2_falsedep_1): Likewise.
11747
11748 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
11749
11750         PR other/62168
11751         * configure.ac: Set install_gold_as_default to no first.
11752         * configure: Regenerated.
11753
11754 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11755
11756         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
11757         "note_list" field will eventually be an rtx_insn *.  To help with
11758         transition, for now, convert from an access macro into a pair of
11759         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
11760         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
11761         used as an lvalue.
11762
11763         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
11764         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
11765
11766         * sel-sched-ir.c (init_bb): Likewise.
11767         (sel_restore_notes): Likewise.
11768         (move_bb_info): Likewise.
11769         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
11770         (SET_BB_NOTE_LIST): New function.
11771
11772 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11773
11774         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
11775         field will eventually be an rtx_insn *.  To help with transition,
11776         for now, convert from an access macro into a pair of functions:
11777         VINSN_INSN_RTX, returning an rtx_insn *, and...
11778         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
11779         is used as an lvalue.
11780
11781         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
11782         SET_VINSN_INSN_RTX where it's used as an lvalue.
11783         (VINSN_INSN_RTX): New function.
11784         (SET_VINSN_INSN_RTX): New function.
11785
11786 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11787
11788         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
11789         eventually be rtx_insn *, but to help with transition, for now,
11790         convert from an access macro into a pair of functions: DEP_PRO
11791         returning an rtx_insn * and...
11792         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
11793         lvalue, returning an rtx&.
11794         (DEP_CON): Analogous changes to DEP_PRO above.
11795         (SET_DEP_CON): Likewise.
11796
11797         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
11798         an lvalue to SET_DEP_CON.
11799         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
11800         (sd_copy_back_deps): Likewise for DEP_CON.
11801         (DEP_PRO): New function, adding a checked cast for now.
11802         (DEP_CON): Likewise.
11803         (SET_DEP_PRO): New function.
11804         (SET_DEP_CON): Likewise.
11805
11806 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
11807
11808         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
11809         (extra_options): Add i386/cygwin.opt.
11810         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
11811         (CPP_SPEC): Accept -pthread.
11812         (LINK_SPEC): Ditto.
11813         (GOMP_SELF_SPECS): Update comment.
11814         * config/i386/cygwin.opt: New file for -pthread flag.
11815
11816 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11817
11818         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
11819         * df.h (DF_REF_INSN): Convert from a macro to a function, so
11820         that we can return an rtx_insn *.
11821
11822 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
11823
11824         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
11825         when building executables, not DLLs.  Add --large-address-aware
11826         under the same conditions.
11827         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
11828         when building executables, not DLLs.  Add --large-address-aware
11829         under the same conditions when using -m32.
11830
11831         * config/i386/cygwin-stdint.h: Throughout, make type
11832         definitions dependent on target architecture, not host.
11833
11834 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11835
11836         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
11837         the return type from rtx to rtx_insn *,  which will enable various
11838         conversions in followup patches.  For now this is is done by a
11839         checked cast.
11840         (NEXT_INSN): Likewise.
11841         (SET_PREV_INSN): Convert to an inline function.  This is intended
11842         for use as an lvalue, and so returns an rtx& to allow in-place
11843         modification.
11844         (SET_NEXT_INSN): Likewise.
11845
11846 2014-07-08  Mark Wielaard  <mjw@redhat.com>
11847
11848         PR debug/59051
11849         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
11850
11851 2014-08-19  Marek Polacek  <polacek@redhat.com>
11852
11853         PR c/61271
11854         * cgraphunit.c (handle_alias_pairs): Fix condition.
11855
11856 2014-08-19  Richard Biener  <rguenther@suse.de>
11857
11858         * gimple-fold.c (fold_gimple_assign): Properly build a
11859         null-pointer constant when devirtualizing addresses.
11860
11861 2014-07-07  Mark Wielaard  <mjw@redhat.com>
11862
11863         * dwarf2out.c (decl_quals): New function.
11864         (modified_type_die): Take one cv_quals argument instead of two,
11865         one for const and one for volatile.
11866         (add_type_attribute): Likewise.
11867         (generic_parameter_die): Call add_type_attribute with one modifier
11868         argument.
11869         (base_type_for_mode): Likewise.
11870         (add_bounds_info): Likewise.
11871         (add_subscript_info): Likewise.
11872         (gen_array_type_die): Likewise.
11873         (gen_descr_array_type_die): Likewise.
11874         (gen_entry_point_die): Likewise.
11875         (gen_enumeration_type_die): Likewise.
11876         (gen_formal_parameter_die): Likewise.
11877         (gen_subprogram_die): Likewise.
11878         (gen_variable_die): Likewise.
11879         (gen_const_die): Likewise.
11880         (gen_field_die): Likewise.
11881         (gen_pointer_type_die): Likewise.
11882         (gen_reference_type_die): Likewise.
11883         (gen_ptr_to_mbr_type_die): Likewise.
11884         (gen_inheritance_die): Likewise.
11885         (gen_subroutine_type_die): Likewise.
11886         (gen_typedef_die): Likewise.
11887         (force_type_die): Likewise.
11888
11889 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11890
11891         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
11892         if unset.
11893         * configure: Regenerate.
11894
11895 2014-08-19  Richard Biener  <rguenther@suse.de>
11896
11897         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
11898         DECL_EXTERNALs in BLOCKs as non-references.
11899         * tree-streamer-out.c (streamer_write_chain): Likewise.
11900
11901 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11902             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11903             Anna Tikhonova  <anna.tikhonova@intel.com>
11904             Ilya Tocar  <ilya.tocar@intel.com>
11905             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11906             Ilya Verbin  <ilya.verbin@intel.com>
11907             Kirill Yukhin  <kirill.yukhin@intel.com>
11908             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11909
11910         * config/i386/sse.md
11911         (define_mode_iterator VI48_AVX512F): Delete.
11912         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
11913         (define_mode_iterator VI2_AVX512VL): Ditto.
11914         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
11915         Delete.
11916         (define_insn
11917         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
11918         New.
11919         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
11920         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
11921         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
11922         with VI48_AVX512F_AVX512VL): New.
11923         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
11924         with VI2_AVX512VL): Ditto.
11925
11926 2014-08-19  Marek Polacek  <polacek@redhat.com>
11927
11928         * doc/invoke.texi: Document -Wc99-c11-compat.
11929
11930 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11931
11932         * rtl.h (PREV_INSN): Split macro in two: the existing one,
11933         for rvalues, and...
11934         (SET_PREV_INSN): New macro, for use as an lvalue.
11935         (NEXT_INSN, SET_NEXT_INSN): Likewise.
11936
11937         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
11938         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
11939         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
11940         (fixup_abnormal_edges): Likewise.
11941         (unlink_insn_chain): Likewise.
11942         (fixup_reorder_chain): Likewise.
11943         (cfg_layout_delete_block): Likewise.
11944         (cfg_layout_merge_blocks): Likewise.
11945         * combine.c (update_cfg_for_uncondjump): Likewise.
11946         * emit-rtl.c (link_insn_into_chain): Likewise.
11947         (remove_insn): Likewise.
11948         (delete_insns_since): Likewise.
11949         (reorder_insns_nobb): Likewise.
11950         (emit_insn_after_1): Likewise.
11951         * final.c (rest_of_clean_state): Likewise.
11952         (final_scan_insn): Likewise.
11953         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
11954         * haifa-sched.c (concat_note_lists): Likewise.
11955         (remove_notes): Likewise.
11956         (restore_other_notes): Likewise.
11957         (move_insn): Likewise.
11958         (unlink_bb_notes): Likewise.
11959         (restore_bb_notes): Likewise.
11960         * jump.c (delete_for_peephole): Likewise.
11961         * optabs.c (emit_libcall_block_1): Likewise.
11962         * reorg.c (emit_delay_sequence): Likewise.
11963         (fill_simple_delay_slots): Likewise.
11964         * sel-sched-ir.c (sel_move_insn): Likewise.
11965         (sel_remove_insn): Likewise.
11966         (get_bb_note_from_pool): Likewise.
11967         * sel-sched.c (move_nop_to_previous_block): Likewise.
11968
11969         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
11970         * config/c6x/c6x.c (gen_one_bundle): Likewise.
11971         (c6x_gen_bundles): Likewise.
11972         (hwloop_optimize): Likewise.
11973         * config/frv/frv.c (frv_function_prologue): Likewise.
11974         (frv_register_nop): Likewise.
11975         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
11976         (ia64_reorg): Likewise.
11977         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
11978         (mep_make_bundle): Likewise.
11979         (mep_bundle_insns): Likewise.
11980         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
11981         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
11982         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
11983
11984 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
11985
11986         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
11987         return type from rtx to rtx_insn *.
11988         (BB_END): Likewise.
11989         (BB_HEADER): Likewise.
11990         (BB_FOOTER): Likewise.
11991         (SET_BB_HEAD): Convert to a function.
11992         (SET_BB_END): Likewise.
11993         (SET_BB_HEADER): Likewise.
11994         (SET_BB_FOOTER): Likewise.
11995
11996         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
11997         Strengthen the return type from rtx to rtx_insn *.  For now, this
11998         is done by adding a checked cast, but this will eventually
11999         become a field lookup.
12000         (BB_END): Likewise.
12001         (BB_HEADER): Likewise.
12002         (BB_FOOTER): Likewise.
12003         (SET_BB_HEAD): New function, from macro of same name.  This is
12004         intended for use as an lvalue, and so returns an rtx& to allow
12005         in-place modification.
12006         (SET_BB_END): Likewise.
12007         (SET_BB_HEADER): Likewise.
12008         (SET_BB_FOOTER): Likewise.
12009
12010 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
12011
12012         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
12013         for rvalues, and...
12014         (SET_BB_HEAD): New macro, for use as a lvalue.
12015         (BB_END, SET_BB_END): Likewise.
12016         (BB_HEADER, SET_BB_HEADER): Likewise.
12017         (BB_FOOTER, SET_BB_FOOTER): Likewise.
12018
12019         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
12020         of BB_* macros into SET_BB_* macros.
12021         (fix_crossing_unconditional_branches): Likewise.
12022         * caller-save.c (save_call_clobbered_regs): Likewise.
12023         (insert_one_insn): Likewise.
12024         * cfgbuild.c (find_bb_boundaries): Likewise.
12025         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
12026         (outgoing_edges_match): Likewise.
12027         (try_optimize_cfg): Likewise.
12028         * cfgexpand.c (expand_gimple_cond): Likewise.
12029         (expand_gimple_tailcall): Likewise.
12030         (expand_gimple_basic_block): Likewise.
12031         (construct_exit_block): Likewise.
12032         * cfgrtl.c (delete_insn): Likewise.
12033         (create_basic_block_structure): Likewise.
12034         (rtl_delete_block): Likewise.
12035         (rtl_split_block): Likewise.
12036         (emit_nop_for_unique_locus_between): Likewise.
12037         (rtl_merge_blocks): Likewise.
12038         (block_label): Likewise.
12039         (try_redirect_by_replacing_jump): Likewise.
12040         (emit_barrier_after_bb): Likewise.
12041         (fixup_abnormal_edges): Likewise.
12042         (record_effective_endpoints): Likewise.
12043         (relink_block_chain): Likewise.
12044         (fixup_reorder_chain): Likewise.
12045         (fixup_fallthru_exit_predecessor): Likewise.
12046         (cfg_layout_duplicate_bb): Likewise.
12047         (cfg_layout_split_block): Likewise.
12048         (cfg_layout_delete_block): Likewise.
12049         (cfg_layout_merge_blocks): Likewise.
12050         * combine.c (update_cfg_for_uncondjump): Likewise.
12051         * emit-rtl.c (add_insn_after): Likewise.
12052         (remove_insn): Likewise.
12053         (reorder_insns): Likewise.
12054         (emit_insn_after_1): Likewise.
12055         * haifa-sched.c (get_ebb_head_tail): Likewise.
12056         (restore_other_notes): Likewise.
12057         (move_insn): Likewise.
12058         (sched_extend_bb): Likewise.
12059         (fix_jump_move): Likewise.
12060         * ifcvt.c (noce_process_if_block): Likewise.
12061         (dead_or_predicable): Likewise.
12062         * ira.c (update_equiv_regs): Likewise.
12063         * reg-stack.c (change_stack): Likewise.
12064         * sel-sched-ir.c (sel_move_insn): Likewise.
12065         * sel-sched.c (move_nop_to_previous_block): Likewise.
12066
12067         * config/c6x/c6x.c (hwloop_optimize): Likewise.
12068         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
12069
12070 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
12071
12072         * rtl.h (for_each_rtx_in_insn): New function.
12073         * rtlanal.c (for_each_rtx_in_insn): Likewise.
12074
12075 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
12076
12077         * coretypes.h (class rtx_insn): Add forward declaration.
12078
12079         * rtl.h: Include is-a.h.
12080         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
12081         workaround to ensure gengtype knows inheritance is occurring,
12082         whilst continuing to use the pre-existing special-casing for
12083         rtx_def.
12084         (class rtx_insn): New subclass of rtx_def, adding the
12085         invariant that we're dealing with something we can sanely use
12086         INSN_UID, NEXT_INSN, PREV_INSN on.
12087         (is_a_helper <rtx_insn *>::test): New.
12088         (is_a_helper <const rtx_insn *>::test): New.
12089
12090 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
12091
12092         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
12093
12094 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
12095
12096         * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
12097         comdats as extern.
12098
12099 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
12100
12101         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
12102         to BUILT_IN_UNREACHABLE.
12103
12104 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
12105
12106         PR target/62011
12107         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
12108         New tune flag.
12109         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
12110         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
12111         (ffs<mode>2): Do not expand with tzcnt for
12112         TARGET_AVOID_FALSE_DEP_FOR_BMI.
12113         (ffssi2_no_cmove): Ditto.
12114         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
12115         (ctz<mode>2): New expander.
12116         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
12117         (*ctz<mode>2_falsedep): New insn.
12118         (*ctz<mode>2): Rename from ctz<mode>2.
12119         (clz<mode>2_lzcnt): New expander.
12120         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
12121         (*clz<mode>2_lzcnt_falsedep): New insn.
12122         (*clz<mode>2): Rename from ctz<mode>2.
12123         (popcount<mode>2): New expander.
12124         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
12125         (*popcount<mode>2_falsedep): New insn.
12126         (*popcount<mode>2): Rename from ctz<mode>2.
12127         (*popcount<mode>2_cmp): Remove.
12128         (*popcountsi2_cmp_zext): Ditto.
12129
12130 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
12131
12132         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
12133         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
12134         * config/microblaze/microblaze.h
12135         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
12136
12137 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
12138
12139         PR other/62168
12140         * configure.ac: Set install_gold_as_default to no for
12141          --enable-gold=no.
12142          * configure: Regenerated.
12143
12144 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
12145
12146         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
12147         * config.in: Add undef of HAVE_isl.
12148         * configure: Regenerate.
12149         * configure.ac: Add definition of HAVE_isl.
12150         * graphite-blocking.c: Add checking of HAVE_isl.
12151         * graphite-dependences.c: Likewise.
12152         * graphite-interchange.c: Likewise.
12153         * graphite-isl-ast-to-gimple.c: Likewise.
12154         * graphite-optimize-isl.c: Likewise.
12155         * graphite-poly.c: Likewise.
12156         * graphite-scop-detection.c: Likewise.
12157         * graphite-sese-to-poly.c: Likewise.
12158         * graphite.c: Likewise.
12159         * toplev.c: Replace the checking of HAVE_cloog with the checking
12160         of HAVE_isl.
12161
12162 2014-08-18  Richard Biener  <rguenther@suse.de>
12163
12164         PR tree-optimization/62090
12165         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
12166         (fold_builtin_3): Do not fold snprintf.
12167         (fold_builtin_4): Likewise.
12168         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
12169         moved from builtins.c.
12170         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
12171         (gimple_fold_builtin): Do not fold sprintf here.
12172
12173 2014-08-18  Richard Biener  <rguenther@suse.de>
12174
12175         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
12176         code to ...
12177         (maybe_canonicalize_mem_ref_addr): ... this function.
12178         (fold_stmt_1): Apply it here before all simplification.
12179
12180 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
12181
12182         PR ipa/61800
12183         * cgraph.h (cgraph_node::create_indirect_edge): Add
12184         compute_indirect_info param.
12185         * cgraph.c (cgraph_node::create_indirect_edge): Compute
12186         indirect_info only when it is required.
12187         * cgraphclones.c (cgraph_clone_edge): Do not recompute
12188         indirect_info fore cloned indirect edge.
12189
12190 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12191             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12192             Anna Tikhonova  <anna.tikhonova@intel.com>
12193             Ilya Tocar  <ilya.tocar@intel.com>
12194             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12195             Ilya Verbin  <ilya.verbin@intel.com>
12196             Kirill Yukhin  <kirill.yukhin@intel.com>
12197             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12198
12199         * config/i386/sse.md
12200         (define_mode_iterator VI8_AVX2_AVX512BW): New.
12201         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
12202
12203 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12204             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12205             Anna Tikhonova  <anna.tikhonova@intel.com>
12206             Ilya Tocar  <ilya.tocar@intel.com>
12207             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12208             Ilya Verbin  <ilya.verbin@intel.com>
12209             Kirill Yukhin  <kirill.yukhin@intel.com>
12210             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12211
12212         * config/i386/sse.md
12213         (define_mode_iterator VF1_AVX512VL): New.
12214         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
12215         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
12216         New.
12217
12218 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12219             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12220             Anna Tikhonova  <anna.tikhonova@intel.com>
12221             Ilya Tocar  <ilya.tocar@intel.com>
12222             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12223             Ilya Verbin  <ilya.verbin@intel.com>
12224             Kirill Yukhin  <kirill.yukhin@intel.com>
12225             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12226
12227         * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
12228         * config/i386/i386.md
12229         (define_code_iterator any_float): New.
12230         (define_code_attr floatsuffix): New.
12231         * config/i386/sse.md
12232         (define_mode_iterator VF1_128_256VL): New.
12233         (define_mode_iterator VF2_512_256VL): New.
12234         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
12235         TARGET check.
12236         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
12237         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
12238         New.
12239         (define_mode_attr qq2pssuff): New.
12240         (define_mode_attr sselongvecmode): New.
12241         (define_mode_attr sselongvecmodelower): New.
12242         (define_mode_attr sseintvecmode3): New.
12243         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
12244         New.
12245         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
12246         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
12247         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
12248         (define_insn "ufloatv2siv2df2<mask_name>"): New.
12249
12250 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12251             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12252             Anna Tikhonova  <anna.tikhonova@intel.com>
12253             Ilya Tocar  <ilya.tocar@intel.com>
12254             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12255             Ilya Verbin  <ilya.verbin@intel.com>
12256             Kirill Yukhin  <kirill.yukhin@intel.com>
12257             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12258
12259         * config/i386/sse.md
12260         (define_mode_iterator VF2_AVX512VL): New.
12261         (define_mode_attr sseintvecmode2): New.
12262         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
12263         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
12264         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
12265         (define_insn
12266         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
12267         Ditto.
12268         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
12269         Ditto.
12270         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
12271         Ditto.
12272
12273 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12274             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12275             Anna Tikhonova  <anna.tikhonova@intel.com>
12276             Ilya Tocar  <ilya.tocar@intel.com>
12277             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12278             Ilya Verbin  <ilya.verbin@intel.com>
12279             Kirill Yukhin  <kirill.yukhin@intel.com>
12280             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12281
12282         * config/i386/i386.md
12283         (define_insn "*movoi_internal_avx"): Add evex version.
12284         (define_insn "*movti_internal"): Ditto.
12285
12286 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12287             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12288             Anna Tikhonova  <anna.tikhonova@intel.com>
12289             Ilya Tocar  <ilya.tocar@intel.com>
12290             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12291             Ilya Verbin  <ilya.verbin@intel.com>
12292             Kirill Yukhin  <kirill.yukhin@intel.com>
12293             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12294
12295         * config/i386/i386.md
12296         (define_attr "isa"): Add avx512dq, noavx512dq.
12297         (define_attr "enabled"): Ditto.
12298         * config/i386/sse.md
12299         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
12300
12301 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12302             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12303             Anna Tikhonova  <anna.tikhonova@intel.com>
12304             Ilya Tocar  <ilya.tocar@intel.com>
12305             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12306             Ilya Verbin  <ilya.verbin@intel.com>
12307             Kirill Yukhin  <kirill.yukhin@intel.com>
12308             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12309
12310         * config/i386/i386.c
12311         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
12312         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
12313         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
12314         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
12315         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
12316         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
12317         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
12318         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
12319         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
12320         * config/i386/sse.md
12321         (define_mode_iterator VMOVE): Allow V4TI mode.
12322         (define_mode_iterator V_AVX512VL): New.
12323         (define_mode_iterator V): New handling for AVX512VL.
12324         (define_insn "avx512f_load<mode>_mask"): Delete.
12325         (define_insn "<avx512>_load<mode>_mask"): New.
12326         (define_insn "avx512f_store<mode>_mask"): Delete.
12327         (define_insn "<avx512>_store<mode>_mask"): New.
12328
12329
12330 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
12331
12332         PR sanitizer/62089
12333         * asan.c (instrument_derefs): Fix bitfield check.
12334
12335 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
12336
12337         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
12338         * config/rs6000/htm.md (ttest): Remove clobber.
12339         * config/rs6000/predicates.md (any_mask_operand): New predicate.
12340         (and_operand): Reformat.
12341         (and_2rld_operand): New predicate.
12342         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
12343         parameter.
12344         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
12345         parameter.  Handle AND directly.
12346         (rs6000_split_logical_di): Remove last parameter.
12347         (rs6000_split_logical): Remove last parameter.  Remove obsolete
12348         comment.
12349         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
12350         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
12351         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
12352         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
12353         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
12354         and 5 anonymous splitters):  Delete.
12355         (and<mode>3): New expander.
12356         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
12357         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
12358         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
12359         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
12360         (floatdisf2_internal1): Remove clobbers.
12361         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
12362         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
12363         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
12364         (and<mode>3 for BOOL_128): Remove clobber.
12365         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
12366         rs6000_split_logical.
12367         (*bool<mode>3_internal for BOOL_128): Adjust call of
12368         rs6000_split_logical.
12369         (*boolc<mode>3_internal1 for BOOL_128,
12370         *boolc<mode>3_internal2 for BOOL_128,
12371         *boolcc<mode>3_internal1 for BOOL_128,
12372         *boolcc<mode>3_internal2 for BOOL_128,
12373         *eqv<mode>3_internal1 for BOOL_128,
12374         *eqv<mode>3_internal2 for BOOL_128,
12375         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
12376         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
12377         clobber.
12378         (*vec_reload_and_reg_<mptrsize>): Delete.
12379
12380 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
12381
12382         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
12383         and split, *boolccsi3_internal3 and split): Delete.
12384         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
12385         *boolccdi3_internal3 and split): Delete.
12386         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
12387         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
12388
12389 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
12390
12391         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
12392         and split, *boolcsi3_internal3 and split): Delete.
12393         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
12394         *boolcdi3_internal3 and split): Delete.
12395         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
12396
12397 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
12398
12399         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
12400         <'u'>: Also support printing the low-order 16 bits.
12401         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
12402         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
12403         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
12404         *booldi3_internal3 and split): Delete.
12405         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
12406         *bool<mode>3_dot2): New.
12407         (two anonymous define_splits for non_logical_cint_operand): Merge.
12408
12409 2014-08-17  Marek Polacek  <polacek@redhat.com>
12410             Manuel López-Ibáñez  <manu@gcc.gnu.org>
12411
12412         PR c/62059
12413         * diagnostic.c (adjust_line): Add gcc_checking_assert.
12414         (diagnostic_show_locus): Don't print caret diagnostic
12415         if a column is larger than the line_width.
12416
12417 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
12418
12419         * common.opt: Make the ISL AST generator to be the main code generator
12420         of Graphite.
12421
12422 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
12423
12424         * wide-int.h (generic_wide_int): Declare as class instead of struct.
12425
12426 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
12427
12428         PR target/61641
12429         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
12430         Declare.
12431         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
12432         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
12433         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
12434         Define.
12435         * config/pa/pa.md (begin_brtab): Delete insn.
12436         (end_brtab): Likewise.
12437
12438 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12439
12440         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
12441
12442 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
12443
12444         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
12445         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
12446         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
12447         (get_dynamic_type): Remove.
12448         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
12449         (clear_speculation): Bring to ipa-deivrt.h
12450         (get_class_context): Rename to ...
12451         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
12452         (contains_type_p): Update.
12453         (get_dynamic_type): Rename to ...
12454         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
12455         (possible_polymorphic_call_targets): UPdate.
12456         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
12457         * ipa-prop.c (ipa_analyze_call_uses): Update.
12458
12459 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
12460
12461         * doc/invoke.texi (SH options): Document missing processor variant
12462         options.  Remove references to Hitachi.  Undocument deprecated mspace
12463         option.
12464
12465 2014-08-15  Jason Merrill  <jason@redhat.com>
12466
12467         * tree.c (type_hash_canon): Uncomment assert.
12468
12469 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12470
12471         * input.h (in_system_header_at): Add comment.
12472
12473 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12474
12475         PR fortran/44054
12476         * diagnostic.c (build_message_string): Make it extern.
12477         * diagnostic.h (build_message_string): Make it extern.
12478
12479 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
12480
12481         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
12482         load/store from/to non-floating class pseudo.
12483
12484 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12485
12486         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
12487
12488 2014-08-15  Richard Biener  <rguenther@suse.de>
12489
12490         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
12491         (get_constraint_for_ssa_var): Remove dead code.
12492         (get_constraint_for_1): Adjust.
12493         (find_what_var_points_to): Likewise.
12494         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
12495
12496 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
12497
12498         PR target/61878
12499         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
12500         (_mm512_mask_cmpge_epu32_mask): Ditto.
12501         (_mm512_cmpge_epu32_mask): Ditto.
12502         (_mm512_mask_cmpge_epi64_mask): Ditto.
12503         (_mm512_cmpge_epi64_mask): Ditto.
12504         (_mm512_mask_cmpge_epu64_mask): Ditto.
12505         (_mm512_cmpge_epu64_mask): Ditto.
12506         (_mm512_mask_cmple_epi32_mask): Ditto.
12507         (_mm512_cmple_epi32_mask): Ditto.
12508         (_mm512_mask_cmple_epu32_mask): Ditto.
12509         (_mm512_cmple_epu32_mask): Ditto.
12510         (_mm512_mask_cmple_epi64_mask): Ditto.
12511         (_mm512_cmple_epi64_mask): Ditto.
12512         (_mm512_mask_cmple_epu64_mask): Ditto.
12513         (_mm512_cmple_epu64_mask): Ditto.
12514         (_mm512_mask_cmplt_epi32_mask): Ditto.
12515         (_mm512_cmplt_epi32_mask): Ditto.
12516         (_mm512_mask_cmplt_epu32_mask): Ditto.
12517         (_mm512_cmplt_epu32_mask): Ditto.
12518         (_mm512_mask_cmplt_epi64_mask): Ditto.
12519         (_mm512_cmplt_epi64_mask): Ditto.
12520         (_mm512_mask_cmplt_epu64_mask): Ditto.
12521         (_mm512_cmplt_epu64_mask): Ditto.
12522         (_mm512_mask_cmpneq_epi32_mask): Ditto.
12523         (_mm512_mask_cmpneq_epu32_mask): Ditto.
12524         (_mm512_cmpneq_epu32_mask): Ditto.
12525         (_mm512_mask_cmpneq_epi64_mask): Ditto.
12526         (_mm512_cmpneq_epi64_mask): Ditto.
12527         (_mm512_mask_cmpneq_epu64_mask): Ditto.
12528         (_mm512_cmpneq_epu64_mask): Ditto.
12529         (_mm512_castpd_ps): Ditto.
12530         (_mm512_castpd_si512): Ditto.
12531         (_mm512_castps_pd): Ditto.
12532         (_mm512_castps_si512): Ditto.
12533         (_mm512_castsi512_ps): Ditto.
12534         (_mm512_castsi512_pd): Ditto.
12535         (_mm512_castpd512_pd128): Ditto.
12536         (_mm512_castps512_ps128): Ditto.
12537         (_mm512_castsi512_si128): Ditto.
12538         (_mm512_castpd512_pd256): Ditto.
12539         (_mm512_castps512_ps256): Ditto.
12540         (_mm512_castsi512_si256): Ditto.
12541         (_mm512_castpd128_pd512): Ditto.
12542         (_mm512_castps128_ps512): Ditto.
12543         (_mm512_castsi128_si512): Ditto.
12544         (_mm512_castpd256_pd512): Ditto.
12545         (_mm512_castps256_ps512): Ditto.
12546         (_mm512_castsi256_si512): Ditto.
12547         (_mm512_cmpeq_epu32_mask): Ditto.
12548         (_mm512_mask_cmpeq_epu32_mask): Ditto.
12549         (_mm512_mask_cmpeq_epu64_mask): Ditto.
12550         (_mm512_cmpeq_epu64_mask): Ditto.
12551         (_mm512_cmpgt_epu32_mask): Ditto.
12552         (_mm512_mask_cmpgt_epu32_mask): Ditto.
12553         (_mm512_mask_cmpgt_epu64_mask): Ditto.
12554         (_mm512_cmpgt_epu64_mask): Ditto.
12555         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
12556         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
12557         * config/i386/i386.c (enum ix86_builtins): Add
12558         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
12559         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
12560         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
12561         (bdesc_args): Add __builtin_ia32_si512_256si,
12562         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
12563         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
12564         __builtin_ia32_pd512_pd.
12565         (ix86_expand_args_builtin): Handle new FTYPEs.
12566         * config/i386/sse.md (castmode): Add 512-bit modes.
12567         (AVX512MODE2P): New.
12568         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
12569         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
12570
12571 2014-08-15  Richard Biener  <rguenther@suse.de>
12572
12573         * fold-const.c (tree_swap_operands_p): Put all constants
12574         last, also strip sign-changing NOPs when considering further
12575         canonicalization.  Canonicalize also when optimizing for size.
12576
12577 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12578
12579         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
12580         one_match > zero_match case to just before simple_sequence.
12581
12582 2014-08-15  Richard Biener  <rguenther@suse.de>
12583
12584         * data-streamer.h (streamer_string_index, string_for_index):
12585         Remove.
12586         * data-streamer-out.c (streamer_string_index): Make static.
12587         * data-streamer-in.c (string_for_index): Likewise.
12588         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
12589         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
12590
12591 2014-08-15  Richard Biener  <rguenther@suse.de>
12592
12593         PR tree-optimization/62031
12594         * tree-data-ref.c (dr_analyze_indices): Do not set
12595         DR_UNCONSTRAINED_BASE.
12596         (dr_may_alias_p): All indirect accesses have to go the
12597         formerly DR_UNCONSTRAINED_BASE path.
12598         * tree-data-ref.h (struct indices): Remove
12599         unconstrained_base member.
12600         (DR_UNCONSTRAINED_BASE): Remove.
12601
12602 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
12603
12604         PR middle-end/62092
12605         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
12606         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
12607         in OMP_CLAUSE_MAP in some outer target region.
12608
12609 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
12610
12611         * tree-ssa-loop-ivopts.c (ivopts_data): New field
12612         name_expansion_cache.
12613         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
12614         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
12615         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
12616         (difference_cannot_overflow_p): New parameter.  Use affine
12617         expansion for equality check.
12618         (iv_elimination_compare_lt): Pass new argument.
12619
12620 2014-08-14  DJ Delorie  <dj@redhat.com>
12621
12622         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
12623         variables to the accumulator.
12624
12625         * config/rl78/predicates.md (rl78_near_mem_operand): New.
12626         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
12627         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
12628         with far-far moves.
12629
12630         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
12631         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
12632         (umulqihi3_virt): Likewise.
12633         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
12634         (umulqihi3_real): Likewise.
12635
12636         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
12637
12638 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
12639
12640         PR tree-optimization/62091
12641         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
12642         function_entry_reached.
12643         (walk_aliased_vdefs): Clear it here.
12644         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
12645
12646 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
12647
12648         * ipa-utils.h (compare_virtual_tables): Declare.
12649         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
12650
12651 2014-08-14  Marek Polacek  <polacek@redhat.com>
12652
12653         DR 458
12654         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
12655         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
12656
12657 2014-08-14  Tom de Vries  <tom@codesourcery.com>
12658
12659         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
12660
12661 2014-08-14  Tom de Vries  <tom@codesourcery.com>
12662
12663         PR rtl-optimization/62004
12664         PR rtl-optimization/62030
12665         * ifcvt.c (rtx_interchangeable_p): New function.
12666         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
12667         * emit-rtl.h (mem_attrs_eq_p): Declare.
12668
12669 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
12670
12671         * graphite-scop-detection.c:
12672         Add inclusion of cp-tree.h.
12673         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
12674         in case they are pointers to object types
12675
12676 2014-08-14  Richard Biener  <rguenther@suse.de>
12677
12678         * BASE-VER: Change to 5.0.0
12679
12680 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12681             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12682             Anna Tikhonova  <anna.tikhonova@intel.com>
12683             Ilya Tocar  <ilya.tocar@intel.com>
12684             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12685             Ilya Verbin  <ilya.verbin@intel.com>
12686             Kirill Yukhin  <kirill.yukhin@intel.com>
12687             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12688
12689         * config/i386/sse.md (define_mode_attr avx512): New.
12690         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
12691         V4DI modes.
12692         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
12693         (define_mode_attr ssse3_avx2): Ditto.
12694         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
12695         (define_mode_attr avx2_avx512bw): New.
12696         (define_mode_attr ssedoublemodelower): New.
12697         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
12698         V32HI, V64QI modes.
12699         (define_mode_attr ssebytemode): Allow V8DI modes.
12700         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
12701         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
12702         (define_mode_attr ssePSmode2): New.
12703         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
12704         V16HI, V32HI modes.
12705         (define_mode_attr dbpsadbwmode): New.
12706         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
12707         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
12708         (vi8_sse4_1_avx2_avx512): New.
12709         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
12710         mode attribute.
12711         (define_mode_attr blendbits): Move before its immediate use.
12712
12713 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12714             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12715             Anna Tikhonova  <anna.tikhonova@intel.com>
12716             Ilya Tocar  <ilya.tocar@intel.com>
12717             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12718             Ilya Verbin  <ilya.verbin@intel.com>
12719             Kirill Yukhin  <kirill.yukhin@intel.com>
12720             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12721
12722         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
12723         * config/i386/subst.md
12724         (define_mode_iterator SUBST_V): Update.
12725         (define_mode_iterator SUBST_A): Ditto.
12726         (define_subst_attr "mask_operand7"): New.
12727         (define_subst_attr "mask_operand10"): New.
12728         (define_subst_attr "mask_operand_arg34") : New.
12729         (define_subst_attr "mask_expand_op3"): New.
12730         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
12731         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
12732         (define_subst_attr "mask_avx512vl_condition"): New.
12733         (define_subst_attr "round_mask_operand4"): Ditto.
12734         (define_subst_attr "round_mask_scalar_op3"): Delete.
12735         (define_subst_attr "round_mask_op4"): New.
12736         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
12737         V16SImode.
12738         (define_subst_attr "round_modev8sf_condition"): New.
12739         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
12740         <MODE>mode.
12741         (define_subst_attr "round_saeonly_mask_operand4"): New.
12742         (define_subst_attr "round_saeonly_mask_op4"): New.
12743         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
12744         V8DImode, V16SImode.
12745         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
12746         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
12747         (define_subst_attr "mask_expand4_args"): New.
12748         (define_subst "mask_expand4"): New.
12749
12750 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12751             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12752             Anna Tikhonova  <anna.tikhonova@intel.com>
12753             Ilya Tocar  <ilya.tocar@intel.com>
12754             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12755             Ilya Verbin  <ilya.verbin@intel.com>
12756             Kirill Yukhin  <kirill.yukhin@intel.com>
12757             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12758
12759         * config/i386/i386.md
12760         (define_attr "isa"): Add avx512bw,noavx512bw.
12761         (define_attr "enabled"): Ditto.
12762         (define_split): Add 32/64-bit mask logic.
12763         (define_insn "*k<logic>qi"): New.
12764         (define_insn "*k<logic>hi"): New.
12765         (define_insn "*anddi_1"): Add mask version.
12766         (define_insn "*andsi_1"): Ditto.
12767         (define_insn "*<code><mode>_1"): Ditto.
12768         (define_insn "*<code>hi_1"): Ditto.
12769         (define_insn "kxnor<mode>"): New.
12770         (define_insn "kunpcksi"): New.
12771         (define_insn "kunpckdi"): New.
12772         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
12773         (define_insn "*one_cmplhi2_1"): Ditto.
12774
12775 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12776             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12777             Anna Tikhonova  <anna.tikhonova@intel.com>
12778             Ilya Tocar  <ilya.tocar@intel.com>
12779             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12780             Ilya Verbin  <ilya.verbin@intel.com>
12781             Kirill Yukhin  <kirill.yukhin@intel.com>
12782             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12783
12784         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
12785         V32HImode.
12786
12787 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12788             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12789             Anna Tikhonova  <anna.tikhonova@intel.com>
12790             Ilya Tocar  <ilya.tocar@intel.com>
12791             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12792             Ilya Verbin  <ilya.verbin@intel.com>
12793             Kirill Yukhin  <kirill.yukhin@intel.com>
12794             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12795
12796         * config/i386/i386.c (print_reg): Ð¡orrectly print 64-bit mask
12797         registers.
12798         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
12799         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
12800         xmm/ymm16+ when availble.
12801         * config/i386/i386.h
12802         (HARD_REGNO_NREGS): Add mask regs.
12803         (VALID_AVX512F_REG_MODE): Ditto.
12804         (VALID_AVX512F_REG_MODE) : Define.
12805         (VALID_MASK_AVX512BW_MODE): Ditto.
12806         (reg_class) (MASK_REG_P(X)): Define.
12807         * config/i386/i386.md: Do not split long moves with mask register,
12808         use kmovb if avx512bw is availible.
12809         (movdi_internal): Handle mask registers.
12810
12811 2014-08-14  Richard Biener  <rguenther@suse.de>
12812
12813         PR tree-optimization/62081
12814         * tree-ssa-loop.c (pass_fix_loops): New pass.
12815         (pass_tree_loop::gate):  Do not fixup loops here.
12816         * tree-pass.h (make_pass_fix_loops): Declare.
12817         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
12818
12819 2014-08-14  Richard Biener  <rguenther@suse.de>
12820
12821         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
12822         (type_hash_canon): ... this and avoid 2nd lookup for the add.
12823
12824 2014-08-14  Richard Biener  <rguenther@suse.de>
12825
12826         PR tree-optimization/62090
12827         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
12828         (fold_builtin_2): Do not fold sprintf.
12829         (fold_builtin_3): Likewise.
12830         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
12831         moved from builtins.c.
12832         (gimple_fold_builtin): Fold sprintf.
12833
12834 2014-08-14  Richard Biener  <rguenther@suse.de>
12835
12836         PR rtl-optimization/62079
12837         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
12838         run cleanup_cfg.
12839
12840 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
12841
12842         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
12843         current_function_decl.
12844
12845 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
12846
12847         * cgraph.c (cgraph_node::function_symbol): Fix wrong
12848         cgraph_function_node to cgraph_node::function_symbol
12849         refactoring.
12850
12851 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
12852
12853         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
12854         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
12855
12856 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
12857
12858         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
12859         warning.
12860
12861 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
12862
12863         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
12864         generator.
12865
12866 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
12867
12868         PR target/62025
12869         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
12870         any registers that are used in mem_insn.
12871
12872 2014-08-12  Steve Ellcey  <sellcey@mips.com>
12873
12874         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler. 
12875
12876 2014-08-12  Steve Ellcey  <sellcey@mips.com>
12877
12878         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
12879         (MULTILIB_DIRNAMES): Ditto.
12880         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
12881         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
12882         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
12883         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
12884         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
12885         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
12886
12887 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12888
12889         PR target/61413
12890         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
12891         of __ARM_SIZEOF_WCHAR_T.
12892
12893 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12894
12895         PR target/62098
12896         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
12897         Remove unnecessary attributes.
12898
12899 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
12900
12901         * internal-fn.c (init_internal_fns): Fix off-by-one.
12902
12903 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12904             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12905             Anna Tikhonova  <anna.tikhonova@intel.com>
12906             Ilya Tocar  <ilya.tocar@intel.com>
12907             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12908             Ilya Verbin  <ilya.verbin@intel.com>
12909             Kirill Yukhin  <kirill.yukhin@intel.com>
12910             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12911
12912         * config/i386/i386.c (standard_sse_constant_opcode): Use
12913         vpxord/vpternlog if avx512 is availible.
12914
12915 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12916
12917         PR middle-end/62103
12918         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
12919         bitfields, that is when size doesn't match the size of type or the
12920         size of the constructor.
12921
12922 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
12923
12924         * config/rs6000/constraints.md (wh constraint): New constraint,
12925         for FP registers if direct move is available.
12926         (wi constraint): New constraint, for VSX/FP registers that can
12927         handle 64-bit integers.
12928         (wj constraint): New constraint for VSX/FP registers that can
12929         handle 64-bit integers for direct moves.
12930         (wk constraint): New constraint for VSX/FP registers that can
12931         handle 64-bit doubles for direct moves.
12932         (wy constraint): Make documentation match implementation.
12933
12934         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
12935         scalar_in_vmx_p field to simplify tests of whether SFmode or
12936         DFmode can go in the Altivec registers.
12937         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
12938         (rs6000_setup_reg_addr_masks): Likewise.
12939         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
12940         field, and wh/wi/wj/wk constraints.
12941         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
12942         the wh/wi/wj/wk constraints.
12943         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
12944         upper registers, prefer VSX registers unless the operation is a
12945         memory operation with REG+OFFSET addressing.
12946
12947         * config/rs6000/vsx.md (VSr mode attribute): Add support for
12948         DImode.  Change SFmode to use ww constraint instead of d to allow
12949         SF registers in the upper registers.
12950         (VSr2): Likewise.
12951         (VSr3): Likewise.
12952         (VSr5): Fix thinko in comment.
12953         (VSa): New mode attribute that is an alternative to wa, that
12954         returns the VSX register class that a mode can go in, but may not
12955         be the preferred register class.
12956         (VS_64dm): New mode attribute for appropriate register classes for
12957         referencing 64-bit elements of vectors for direct moves and normal
12958         moves.
12959         (VS_64reg): Likewise.
12960         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
12961         register allocator to only registers the data type can handle.
12962         (vsx_le_perm_load_<mode>): Likewise.
12963         (vsx_le_perm_store_<mode>): Likewise.
12964         (vsx_xxpermdi2_le_<mode>): Likewise.
12965         (vsx_xxpermdi4_le_<mode>): Likewise.
12966         (vsx_lxvd2x2_le_<mode>): Likewise.
12967         (vsx_lxvd2x4_le_<mode>): Likewise.
12968         (vsx_stxvd2x2_le_<mode>): Likewise.
12969         (vsx_add<mode>3): Likewise.
12970         (vsx_sub<mode>3): Likewise.
12971         (vsx_mul<mode>3): Likewise.
12972         (vsx_div<mode>3): Likewise.
12973         (vsx_tdiv<mode>3_internal): Likewise.
12974         (vsx_fre<mode>2): Likewise.
12975         (vsx_neg<mode>2): Likewise.
12976         (vsx_abs<mode>2): Likewise.
12977         (vsx_nabs<mode>2): Likewise.
12978         (vsx_smax<mode>3): Likewise.
12979         (vsx_smin<mode>3): Likewise.
12980         (vsx_sqrt<mode>2): Likewise.
12981         (vsx_rsqrte<mode>2): Likewise.
12982         (vsx_tsqrt<mode>2_internal): Likewise.
12983         (vsx_fms<mode>4): Likewise.
12984         (vsx_nfma<mode>4): Likewise.
12985         (vsx_eq<mode>): Likewise.
12986         (vsx_gt<mode>): Likewise.
12987         (vsx_ge<mode>): Likewise.
12988         (vsx_eq<mode>_p): Likewise.
12989         (vsx_gt<mode>_p): Likewise.
12990         (vsx_ge<mode>_p): Likewise.
12991         (vsx_xxsel<mode>): Likewise.
12992         (vsx_xxsel<mode>_uns): Likewise.
12993         (vsx_copysign<mode>3): Likewise.
12994         (vsx_float<VSi><mode>2): Likewise.
12995         (vsx_floatuns<VSi><mode>2): Likewise.
12996         (vsx_fix_trunc<mode><VSi>2): Likewise.
12997         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
12998         (vsx_x<VSv>r<VSs>i): Likewise.
12999         (vsx_x<VSv>r<VSs>ic): Likewise.
13000         (vsx_btrunc<mode>2): Likewise.
13001         (vsx_b2trunc<mode>2): Likewise.
13002         (vsx_floor<mode>2): Likewise.
13003         (vsx_ceil<mode>2): Likewise.
13004         (vsx_<VS_spdp_insn>): Likewise.
13005         (vsx_xscvspdp): Likewise.
13006         (vsx_xvcvspuxds): Likewise.
13007         (vsx_float_fix_<mode>2): Likewise.
13008         (vsx_set_<mode>): Likewise.
13009         (vsx_extract_<mode>_internal1): Likewise.
13010         (vsx_extract_<mode>_internal2): Likewise.
13011         (vsx_extract_<mode>_load): Likewise.
13012         (vsx_extract_<mode>_store): Likewise.
13013         (vsx_splat_<mode>): Likewise.
13014         (vsx_xxspltw_<mode>): Likewise.
13015         (vsx_xxspltw_<mode>_direct): Likewise.
13016         (vsx_xxmrghw_<mode>): Likewise.
13017         (vsx_xxmrglw_<mode>): Likewise.
13018         (vsx_xxsldwi_<mode>): Likewise.
13019         (vsx_xscvdpspn): Tighten constraints to only use register classes
13020         the types use.
13021         (vsx_xscvspdpn): Likewise.
13022         (vsx_xscvdpspn_scalar): Likewise.
13023
13024         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
13025         wj, and wk constraints.
13026         (GPR_REG_CLASS_P): New helper macro for register classes targeting
13027         general purpose registers.
13028
13029         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
13030         direct moves.
13031         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
13032         DImode instead of wm.  Use wk constraint for direct move of DFmode
13033         instead of wm.
13034         (extendsidi2_lfiwax): Likewise.
13035         (lfiwax): Likewise.
13036         (lfiwzx): Likewise.
13037         (movdi_internal64): Likewise.
13038
13039         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
13040         wk constraints. Make the wy constraint documentation match them
13041         implementation.
13042
13043 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
13044
13045         Replacement of isl_int by isl_val
13046         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
13047         (compute_bounds_for_param): use isl_val instead of isl_int
13048         (compute_bounds_for_loop): likewise
13049         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
13050         (build_linearized_memory_access): use isl_val instead of isl_int
13051         (pdr_stride_in_loop): likewise
13052         * graphite-optimize-isl.c:
13053         (getPrevectorMap): use isl_val instead of isl_int
13054         * graphite-poly.c:
13055         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
13056         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
13057         (extern the_isl_ctx): declare
13058         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
13059         (extract_affine_gmp): likewise
13060         (wrap): likewise
13061         (build_loop_iteration_domains): likewise
13062         (add_param_constraints): likewise
13063
13064 2014-08-11  Richard Biener  <rguenther@suse.de>
13065
13066         PR tree-optimization/62075
13067         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
13068         handle uses in patterns.
13069
13070 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13071             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13072             Anna Tikhonova  <anna.tikhonova@intel.com>
13073             Ilya Tocar  <ilya.tocar@intel.com>
13074             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13075             Ilya Verbin  <ilya.verbin@intel.com>
13076             Kirill Yukhin  <kirill.yukhin@intel.com>
13077             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13078
13079         * common/config/i386/i386-common.c
13080         (OPTION_MASK_ISA_AVX512VL_SET): Define.
13081         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
13082         (ix86_handle_option): Handle OPT_mavx512vl.
13083         * config/i386/cpuid.h (bit_AVX512VL): Define.
13084         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
13085         set -mavx512vl accordingly.
13086         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
13087         OPTION_MASK_ISA_AVX512VL.
13088         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
13089         (ix86_option_override_internal): Define PTA_AVX512VL, handle
13090         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
13091         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
13092         * config/i386/i386.h (TARGET_AVX512VL): Define.
13093         (TARGET_AVX512VL_P(x)): Ditto.
13094         * config/i386/i386.opt: Add mavx512vl.
13095
13096 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
13097
13098         PR tree-optimization/62073
13099         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
13100         a basic block.
13101
13102 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13103             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13104             Anna Tikhonova  <anna.tikhonova@intel.com>
13105             Ilya Tocar  <ilya.tocar@intel.com>
13106             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13107             Ilya Verbin  <ilya.verbin@intel.com>
13108             Kirill Yukhin  <kirill.yukhin@intel.com>
13109             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13110
13111         * common/config/i386/i386-common.c
13112         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
13113         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
13114         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
13115         (ix86_handle_option): Handle OPT_mavx512bw.
13116         * config/i386/cpuid.h (bit_AVX512BW): Define.
13117         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
13118         set -mavx512bw accordingly.
13119         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
13120         OPTION_MASK_ISA_AVX512BW.
13121         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
13122         (ix86_option_override_internal): Define PTA_AVX512BW, handle
13123         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
13124         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
13125         * config/i386/i386.h (TARGET_AVX512BW): Define.
13126         (TARGET_AVX512BW_P(x)): Ditto.
13127         * config/i386/i386.opt: Add mavx512bw.
13128
13129 2014-08-11  Richard Biener  <rguenther@suse.de>
13130
13131         PR tree-optimization/62070
13132         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
13133         Remove SSA checking.
13134
13135 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
13136
13137         * asan.c (asan_check_flags): New enum.
13138         (build_check_stmt_with_calls): Removed function.
13139         (build_check_stmt): Split inlining logic to
13140         asan_expand_check_ifn.
13141         (instrument_derefs): Rename parameter.
13142         (instrument_mem_region_access): Rename parameter.
13143         (instrument_strlen_call): Likewise.
13144         (asan_expand_check_ifn): New function.
13145         (asan_instrument): Remove old code.
13146         (pass_sanopt::execute): Change handling of
13147         asan-instrumentation-with-call-threshold.
13148         (asan_clear_shadow): Fix formatting.
13149         (asan_function_start): Likewise.
13150         (asan_emit_stack_protection): Likewise.
13151         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
13152         Update description.
13153         * internal-fn.c (expand_ASAN_CHECK): New function.
13154         * internal-fn.def (ASAN_CHECK): New internal function.
13155         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
13156         Update description.
13157         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
13158         * tree.c: Small comment fix.
13159
13160 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
13161
13162         * gimple.c (gimple_call_fnspec): Support internal functions.
13163         (gimple_call_return_flags): Use const.
13164         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
13165         * internal-fn.def: Add fnspec information.
13166         * internal-fn.h (internal_fn_fnspec): New function.
13167         (init_internal_fns): Declare new function.
13168         * internal-fn.c (internal_fn_fnspec_array): New global variable.
13169         (init_internal_fns): New function.
13170         * tree-core.h: Update macro call.
13171         * tree.c (build_common_builtin_nodes): Initialize internal fns.
13172
13173 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
13174
13175         * lto-streamer.h (struct output_block::symbol): Change from
13176         struct symtab_node to plain symtab_node.
13177         (referenced_from_this_partition_p): Change first parameter
13178         from struct symtab_node to plain symtab_node.
13179
13180 2014-08-10  Marek Polacek  <polacek@redhat.com>
13181
13182         PR c/51849
13183         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
13184
13185 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
13186
13187         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
13188         DECL correctly; do not give up on types in static storage.
13189
13190 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
13191
13192         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
13193
13194 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
13195
13196         * graphite-isl-ast-to-gimple.c:
13197         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
13198
13199         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
13200
13201 2014-08-08  Guozhi Wei  <carrot@google.com>
13202
13203         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
13204
13205 2014-08-08  Cary Coutant  <ccoutant@google.com>
13206
13207         * dwarf2out.c (get_skeleton_type_unit): Remove.
13208         (output_skeleton_debug_sections): Remove skeleton type units.
13209         (output_comdat_type_unit): Likewise.
13210         (dwarf2out_finish): Likewise.
13211
13212 2014-08-07  Yi Yang  <ahyangyi@google.com>
13213
13214         * predict.c (expr_expected_value_1): Remove the redundant assignment.
13215
13216 2014-08-08  Richard Biener  <rguenther@suse.de>
13217
13218         * lto-streamer.h (struct lto_input_block): Make it a class
13219         with a constructor.
13220         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
13221         (struct lto_function_header, struct lto_simple_header,
13222         struct lto_simple_header_with_strings,
13223         struct lto_decl_header, struct lto_function_header): Make
13224         a simple inheritance hieararchy.  Remove unused fields.
13225         (struct lto_asm_header): Remove.
13226         * lto-streamer-out.c (produce_asm): Adjust.
13227         (lto_output_toplevel_asms): Likewise.
13228         (produce_asm_for_decls): Likewise.
13229         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
13230         * data-streamer-in.c (string_for_index): Likewise.
13231         * ipa-inline-analysis.c (inline_read_section): Likewise.
13232         * ipa-prop.c (ipa_prop_read_section): Likewise.
13233         (read_replacements_section): Likewise.
13234         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
13235         * lto-section-in.c (lto_create_simple_input_block): Likewise.
13236         (lto_destroy_simple_input_block): Likewise.
13237         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
13238         (lto_input_toplevel_asms): Likewise.
13239
13240 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13241             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13242             Anna Tikhonova  <anna.tikhonova@intel.com>
13243             Ilya Tocar  <ilya.tocar@intel.com>
13244             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13245             Ilya Verbin  <ilya.verbin@intel.com>
13246             Kirill Yukhin  <kirill.yukhin@intel.com>
13247             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13248
13249         * common/config/i386/i386-common.c
13250         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
13251         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
13252         (ix86_handle_option): Handle OPT_mavx512dq.
13253         * config/i386/cpuid.h (bit_AVX512DQ): Define.
13254         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
13255         set -mavx512dq accordingly.
13256         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
13257         OPTION_MASK_ISA_AVX512DQ.
13258         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
13259         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
13260         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
13261         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
13262         * config/i386/i386.h (TARGET_AVX512DQ): Define.
13263         (TARGET_AVX512DQ_P(x)): Ditto.
13264         * config/i386/i386.opt: Add mavx512dq.
13265
13266 2014-08-08  Richard Biener  <rguenther@suse.de>
13267
13268         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
13269         target_percent, target_percent_s): Export.
13270         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
13271         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
13272         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
13273         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
13274         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
13275         Move to gimple-fold.c.
13276         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
13277         strcat and strcpy.
13278         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
13279         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
13280         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
13281         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
13282         (rewrite_call_expr_array): Remove.
13283         (fold_builtin_sprintf_chk): Likewise.
13284         (fold_builtin_snprintf_chk): Likewise.
13285         (fold_builtin_varargs): Remove handling of sprintf_chk,
13286         vsprintf_chk, snprintf_chk and vsnprintf_chk.
13287         (gimple_fold_builtin_sprintf_chk): Remove.
13288         (gimple_fold_builtin_snprintf_chk): Likewise.
13289         (gimple_fold_builtin_varargs): Likewise.
13290         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
13291         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
13292         * gimple.c (gimple_seq_add_seq_without_update): New function.
13293         * gimple.h (gimple_seq_add_seq_without_update): Declare.
13294         * gimple-fold.c: Include output.h.
13295         (gsi_replace_with_seq_vops): New function, split out from ...
13296         (gimplify_and_update_call_from_tree): ... here.
13297         (replace_call_with_value): New function.
13298         (replace_call_with_call_and_fold): Likewise.
13299         (var_decl_component_p): Moved from builtins.c.
13300         (gimple_fold_builtin_memory_op): Moved from builtins.c
13301         fold_builtin_memory_op and rewritten to GIMPLE.
13302         (gimple_fold_builtin_memset): Likewise.
13303         (gimple_fold_builtin_strcpy): Likewise.
13304         (gimple_fold_builtin_strncpy): Likewise.
13305         (gimple_fold_builtin_strcat): Likewise.
13306         (gimple_fold_builtin_fputs): Likewise.
13307         (gimple_fold_builtin_memory_chk): Likewise.
13308         (gimple_fold_builtin_stxcpy_chk): Likewise.
13309         (gimple_fold_builtin_stxncpy_chk): Likewise.
13310         (gimple_fold_builtin_snprintf_chk): Likewise.
13311         (gimple_fold_builtin_sprintf_chk): Likewise.
13312         (gimple_fold_builtin_strlen): New function.
13313         (gimple_fold_builtin_with_strlen): New function split out from
13314         gimple_fold_builtin.
13315         (gimple_fold_builtin): Change signature and handle
13316         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
13317         here.  Call gimple_fold_builtin_with_strlen.
13318         (gimple_fold_call): Adjust.
13319
13320 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
13321
13322         * calls.c (precompute_arguments): Check
13323          promoted_for_signed_and_unsigned_p and set the promoted mode.
13324         (promoted_for_signed_and_unsigned_p): New function.
13325         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
13326         and set the promoted mode.
13327         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
13328         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
13329         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
13330
13331
13332 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
13333
13334         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
13335         instead of SUBREG_PROMOTED_UNSIGNED_SET.
13336         (expand_call): Likewise.
13337         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
13338         to get promoted mode.
13339         * combine.c (record_promoted_value): Skip > 0 comparison with
13340         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
13341         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
13342         of SUBREG_PROMOTED_UNSIGNED_P.
13343         (convert_modes): Likewise.
13344         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
13345         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
13346         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
13347         SUBREG_PROMOTED_UNSIGNED_SET.
13348         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
13349         instead of SUBREG_PROMOTED_UNSIGNED_SET.
13350         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
13351         SUBREG_PROMOTED_SET.
13352         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
13353         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
13354         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
13355         of SUBREG_PROMOTED_UNSIGNED_P.
13356         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
13357         (SUBREG_PROMOTED_SET): New define.
13358         (SUBREG_PROMOTED_GET): Likewise.
13359         (SUBREG_PROMOTED_SIGN): Likewise.
13360         (SUBREG_PROMOTED_SIGNED_P): Likewise.
13361         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
13362         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
13363         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
13364         instead of SUBREG_PROMOTED_UNSIGNED_GET.
13365         (nonzero_bits1): Skip > 0 comparison with the results as
13366         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
13367         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
13368         of !SUBREG_PROMOTED_UNSIGNED_P.
13369         * simplify-rtx.c (simplify_unary_operation_1): Use new
13370         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
13371         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
13372         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
13373         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
13374
13375 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
13376
13377         * ipa-devirt.c: Include gimple-pretty-print.h
13378         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
13379         further tests.
13380         (decl_maybe_in_construction_p): Fix conditional on cdtor check
13381         (get_polymorphic_call_info): Fix return value
13382         (type_change_info): New sturcture based on ipa-prop
13383         variant.
13384         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
13385         based on ipa-prop variant.
13386         (extr_type_from_vtbl_ptr_store): New function
13387         based on ipa-prop variant.
13388         (record_known_type): New function.
13389         (check_stmt_for_type_change): New function.
13390         (get_dynamic_type): New function.
13391         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
13392         * tree-ssa-pre.c: ipa-utils.h
13393         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
13394         machinery; sanity check with ipa-prop devirtualization.
13395         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
13396         polymorphic flag.
13397
13398 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
13399
13400         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
13401         * alias.c, cfgexpand.c, cgraphbuild.c,
13402         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
13403         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
13404         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
13405         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
13406         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
13407         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
13408         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
13409         dse.c, except.c, gengtype.c, gimple-expr.c,
13410         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
13411         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
13412         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
13413         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
13414         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
13415         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
13416         pointer-set.h.
13417         * pointer-set.c: Remove file.
13418         * pointer-set.h: Remove file.
13419
13420 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13421
13422         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
13423         * config/arm/types.md (f_sels, f_seld): Delete.
13424
13425 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13426
13427         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
13428         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
13429         (aarch64_movdi_<mode>high): Likewise.
13430         (aarch64_mov<mode>high_di): Likewise.
13431         (aarch64_movdi_<mode>low): Likewise.
13432         (aarch64_mov<mode>low_di): Likewise.
13433         (aarch64_movtilow_tilow): Likewise.
13434         Add comment explaining usage of fp,simd attributes and of
13435         TARGET_FLOAT and TARGET_SIMD.
13436
13437 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
13438             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13439
13440         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
13441         Use MOVN when one of the half-words is 0xffff.
13442
13443 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
13444
13445         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
13446
13447 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
13448
13449         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
13450         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
13451         (rfs_str): String corresponding to RFS_* constants.
13452         (rank_for_schedule_stats_t): New typedef.
13453         (rank_for_schedule_stats): New static variable.
13454         (rfs_result): New static function.
13455         (rank_for_schedule): Track statistics for deciding heuristics.
13456         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
13457         static functions.
13458         (ready_sort): Use them for debug printouts.
13459         (schedule_block): Init statistics state.  Print statistics on
13460         rank_for_schedule decisions.
13461
13462 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
13463
13464         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
13465
13466 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
13467
13468         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
13469         constraint.
13470
13471 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
13472
13473         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
13474         function to not conflict.
13475         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
13476         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
13477         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
13478         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
13479         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
13480         of pointer_map.
13481
13482 2014-08-07  Marek Polacek  <polacek@redhat.com>
13483
13484         * fold-const.c (fold_binary_loc): Add folding of
13485         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
13486
13487 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
13488
13489         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
13490         instead of type size.
13491         (ASM_FINISH_DECLARE_OBJECT): Likewise.
13492
13493 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
13494
13495         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
13496         (*thumb1_movqi_insn): Likewise.
13497         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
13498
13499 2014-08-07  Tom de Vries  <tom@codesourcery.com>
13500
13501         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
13502         (glibc_2_11_or_earlier): Remove effective-target keywords.
13503
13504 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
13505
13506         * config/arm/arm.c (bdesc_2arg): Fix typo.
13507         (arm_atomic_assign_expand_fenv): Remove The default implementation.
13508
13509 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
13510
13511         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
13512
13513 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
13514
13515         PR debug/61923
13516         * haifa-sched.c (advance_one_cycle): Fix dump.
13517         (schedule_block): Don't advance cycle if we are already at the
13518         beginning of the cycle.
13519
13520 2014-08-06  Martin Jambor  <mjambor@suse.cz>
13521
13522         PR ipa/61393
13523         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
13524
13525 2014-08-06  Richard Biener  <rguenther@suse.de>
13526
13527         PR lto/62034
13528         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
13529         SCCs here.
13530         (lto_input_tree): Pop SCCs here.
13531
13532 2014-08-06  Richard Biener  <rguenther@suse.de>
13533
13534         PR tree-optimization/61320
13535         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
13536         handle misaligned loads.
13537
13538 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
13539
13540         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
13541         (aarch64_expand_vec_perm_const): Check for dup before zip.
13542
13543 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13544
13545         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
13546         CONST_INT_P instead of GET_CODE and compare.
13547         (aarch64_select_cc_mode): Likewise.
13548         (aarch64_print_operand): Likewise.
13549         (aarch64_rtx_costs): Likewise.
13550         (aarch64_simd_valid_immediate): Likewise.
13551         (aarch64_simd_check_vect_par_cnst_half): Likewise.
13552         (aarch64_simd_emit_pair_result_insn): Likewise.
13553
13554 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
13555
13556         * gdbhooks.py (find_gcc_source_dir): New helper function.
13557         (class PassNames): New class, locating and parsing passes.def.
13558         (class BreakOnPass): New command "break-on-pass".
13559
13560 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
13561
13562         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
13563         getting olde.
13564
13565 2014-08-05  Richard Biener  <rguenther@suse.de>
13566
13567         PR rtl-optimization/61672
13568         * emit-rtl.h (mem_attrs_eq_p): Declare.
13569         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
13570         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
13571         * cfgcleanup.c (merge_memattrs): Likewise.
13572         Include emit-rtl.h.
13573
13574 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13575
13576         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
13577         rather than singleton vectors.
13578         (vqdmlsls_lane_s32): Likewise.
13579
13580 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13581
13582         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
13583         Use VSDQ_HSI mode iterator.
13584         (aarch64_sqrdmulh_laneq<mode>): Likewise.
13585         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
13586         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
13587         Use BUILTIN_VDQHS macro.
13588         (sqrdmulh_laneq): Likewise.
13589         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
13590         (vqdmlals_laneq_s32): Likewise.
13591         (vqdmlslh_laneq_s16): Likewise.
13592         (vqdmlsls_laneq_s32): Likewise.
13593         (vqdmulhh_laneq_s16): Likewise.
13594         (vqdmulhs_laneq_s32): Likewise.
13595         (vqrdmulhh_laneq_s16): Likewise.
13596         (vqrdmulhs_laneq_s32): Likewise.
13597
13598 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13599
13600         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
13601         (vmuld_laneq_f64): Likewise.
13602         (vmuls_laneq_f32): Likewise.
13603         (vmul_n_f64): Likewise.
13604         (vmuld_lane_f64): Reimplement in C.
13605         (vmuls_lane_f32): Likewise.
13606
13607 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13608
13609         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
13610         to reservation.
13611         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
13612
13613 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13614
13615         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
13616         (rbitsi2): Likewise.
13617         (*arm_rev): Set predicable and predicable_short_it attributes.
13618
13619 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13620
13621         * convert.c (convert_to_integer): Guard transformation to lrint by
13622         -fno-math-errno.
13623
13624 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
13625
13626         * config/aarch64/aarch64-builtins.c
13627         (aarch64_simd_builtin_type_mode): Delete.
13628         (v8qi_UP): Remap to V8QImode.
13629         (v4hi_UP): Remap to V4HImode.
13630         (v2si_UP): Remap to V2SImode.
13631         (v2sf_UP): Remap to V2SFmode.
13632         (v1df_UP): Remap to V1DFmode.
13633         (di_UP): Remap to DImode.
13634         (df_UP): Remap to DFmode.
13635         (v16qi_UP):V16QImode.
13636         (v8hi_UP): Remap to V8HImode.
13637         (v4si_UP): Remap to V4SImode.
13638         (v4sf_UP): Remap to V4SFmode.
13639         (v2di_UP): Remap to V2DImode.
13640         (v2df_UP): Remap to V2DFmode.
13641         (ti_UP): Remap to TImode.
13642         (ei_UP): Remap to EImode.
13643         (oi_UP): Remap to OImode.
13644         (ci_UP): Map to CImode.
13645         (xi_UP): Remap to XImode.
13646         (si_UP): Remap to SImode.
13647         (sf_UP): Remap to SFmode.
13648         (hi_UP): Remap to HImode.
13649         (qi_UP): Remap to QImode.
13650         (aarch64_simd_builtin_datum): Make mode a machine_mode.
13651         (VAR1): Build builtin name.
13652         (aarch64_init_simd_builtins): Remove dead code.
13653
13654 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
13655
13656         * graphite-isl-ast-to-gimple.c:
13657         (set_options): New function.
13658         (scop_to_isl_ast): Add calling of set_options.
13659
13660 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
13661
13662         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
13663         (analyze_iv_to_split_insn): Don't initialize them.
13664         (get_ivts_expr): Removed.
13665         (allocate_basic_variable, insert_base_initialization): Use
13666         SET_SRC instead of *get_ivts_expr.
13667         (split_iv): Use &SET_SRC instead of get_ivts_expr.
13668
13669 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
13670
13671         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
13672         (translate_isl_ast_for_loop): Add checking of the
13673         flag_loop_parallelize_all.
13674         (ast_build_before_for): New function.
13675         (scop_to_isl_ast): Add checking of the
13676         flag_loop_parallelize_all.
13677         * graphite-dependences.c: Move the defenition of the
13678         scop_get_dependences from graphite-optimize-isl.c to this file.
13679         (apply_schedule_on_deps): Add checking of the ux's emptiness.
13680         (carries_deps): Add checking of the x's value.
13681         * graphite-optimize-isl.c: Move the defenition of the
13682         scop_get_dependences to graphite-dependences.c.
13683         * graphite-poly.h: Add declarations of scop_get_dependences
13684         and carries_deps.
13685
13686 2014-08-04  Rohit  <rohitarulraj@freescale.com>
13687
13688         PR target/60102
13689         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
13690         names.
13691         (alt_reg_names): Likewise.
13692         (rs6000_dwarf_register_span): For SPE high registers, replace
13693         dwarf register numbers with GCC hard register numbers.
13694         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
13695         (rs6000_dbx_register_number): For SPE high registers, return dwarf
13696         register number for the corresponding GCC hard register number.
13697         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
13698         newly added GCC hard register numbers for SPE high registers.
13699         (DWARF_FRAME_REGISTERS):  Likewise.
13700         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
13701         (DWARF_FRAME_REGNUM): Likewise.
13702         (FIXED_REGISTERS): Likewise.
13703         (CALL_USED_REGISTERS): Likewise.
13704         (CALL_REALLY_USED_REGISTERS): Likewise.
13705         (REG_ALLOC_ORDER): Likewise.
13706         (enum reg_class): Likewise.
13707         (REG_CLASS_NAMES): Likewise.
13708         (REG_CLASS_CONTENTS): Likewise.
13709         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
13710
13711 2014-08-04  Richard Biener  <rguenther@suse.de>
13712
13713         * gimple-fold.h (gimple_fold_builtin): Remove.
13714         * gimple-fold.c (gimple_fold_builtin): Make static.
13715         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
13716         fold_stmt, not gimple_fold_builtin.
13717
13718 2014-08-04  Martin Liska <mliska@suse.cz>
13719
13720         * cgraph.h (csi_end_p): Removed.
13721         (csi_next): Likewise.
13722         (csi_node): Likewise.
13723         (csi_start): Likewise.
13724         (cgraph_node_in_set_p): Likewise.
13725         (cgraph_node_set_size): Likewise.
13726         (vsi_end_p): Likewise.
13727         (vsi_next): Likewise.
13728         (vsi_node): Likewise.
13729         (vsi_start): Likewise.
13730         (varpool_node_set_size): Likewise.
13731         (cgraph_node_set_nonempty_p): Likewise.
13732         (varpool_node_set_nonempty_p): Likewise.
13733         * cgraphunit.c (cgraph_process_new_functions): vec replaces
13734         cgraph_node_set.
13735         * ipa-inline-transform.c: Likewise.
13736         * ipa-utils.c (cgraph_node_set_new): Removed.
13737         (cgraph_node_set_add): Likewise.
13738         (cgraph_node_set_remove): Likewise.
13739         (cgraph_node_set_find): Likewise.
13740         (dump_cgraph_node_set): Likewise.
13741         (debug_cgraph_node_set): Likewise.
13742         (free_cgraph_node_set): Likewise.
13743         (varpool_node_set_new): Likewise.
13744         (varpool_node_set_add): Likewise.
13745         (varpool_node_set_remove): Likewise.
13746         (varpool_node_set_find): Likewise.
13747         (dump_varpool_node_set): Likewise.
13748         (free_varpool_node_set): Likewise.
13749         (debug_varpool_node_set): Likewise.
13750         * tree-emutls.c (struct tls_var_data):
13751         (emutls_index): Removed.
13752         (emutls_decl): Likewise.
13753         (gen_emutls_addr): Function implementation uses newly added
13754         hash_map<varpool_node *, tls_var_data>.
13755         (clear_access_vars): Likewise.
13756         (create_emultls_var): Likewise.
13757         (ipa_lower_emutls): Likewise.
13758         (reset_access): New function.
13759
13760 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
13761
13762         * config/i386/i386.c (ix86_option_override_internal): Add
13763         PTA_RDRND and PTA_MOVBE for bdver4.
13764
13765 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13766             James Greenhalgh  <james.greenhalgh@arm.com>
13767
13768         * doc/md.texi (clrsb): Document.
13769         (clz): Change reference to x into operand 1.
13770         (ctz): Likewise.
13771         (popcount): Likewise.
13772
13773 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13774
13775         PR target/61713
13776         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
13777         move to subtarget in serial version if result is ignored.
13778
13779 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13780             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13781
13782         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
13783         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
13784         (sched_analyze_insn): Update use of try_group_insn to
13785         sched_macro_fuse_insns.
13786         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
13787         arguments that are not conditional jumps.
13788
13789 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
13790
13791         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
13792         family information. Handle BTVER2 cpu with cpuid family value.
13793
13794 2014-08-04  Tom de Vries  <tom@codesourcery.com>
13795
13796         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
13797         (glibc_2_11_or_earlier): Document effective-target keywords.
13798
13799 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
13800
13801         * ipa-devirt.c (odr_type_warn_count): Add type.
13802         (possible_polymorphic_call_targets): Set it.
13803         (ipa_devirt): Use it.
13804
13805 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
13806
13807         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
13808         Document.
13809         * ipa-devirt.c: Include hash-map.h
13810         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
13811         (clear_speculation): Break out of ...
13812         (get_class_context): ... here; speed up handling obviously useless
13813         speculations.
13814         (odr_type_warn_count, decl_warn_count): New structures.
13815         (final_warning_record): New structure.
13816         (final_warning_records): New static variable.
13817         (possible_polymorphic_call_targets): Cleanup handling of
13818         speculative info; do not build speculation when user do not care;
13819         record info about warnings when asked for.
13820         (add_decl_warning): New function.
13821         (type_warning_cmp): New function.
13822         (decl_warning_cmp): New function.
13823         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
13824         (gate): Enable pass when warnings are requested.
13825         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
13826         options.
13827
13828 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
13829
13830         * hash-map.h (default_hashmap_traits::mark_key_deleted):
13831         Fix cast.
13832         (hash_map::remove): New method.
13833         (hash_map::traverse): New method.
13834         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
13835         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
13836         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
13837         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
13838         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
13839         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
13840         pointer_map.
13841
13842 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
13843
13844         * hash-set.h: new File.
13845         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
13846         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
13847         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
13848         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
13849         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
13850         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
13851         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
13852         varpool.c: Use hash_set instead of pointer_set.
13853
13854 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
13855
13856         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
13857
13858 2014-08-01  Jiong Wang <jiong.wang@arm.com>
13859
13860         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
13861         for frame access when strict_p is false.
13862
13863 2014-08-01  Renlin Li <renlin.li@arm.com>
13864 2014-08-01  Jiong Wang <jiong.wang@arm.com>
13865
13866         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
13867         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
13868         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
13869         Declaration.
13870         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
13871         predicate.
13872         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
13873         aarch64_mem_pair_offset.
13874
13875 2014-08-01  Jiong Wang <jiong.wang@arm.com>
13876
13877         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
13878         offset.
13879         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
13880         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
13881
13882 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
13883
13884         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
13885
13886 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
13887
13888         PR regression/61510
13889         * cgraphunit.c (analyze_functions): Use get_create rather than get
13890         for decls which are clones of abstract functions.
13891
13892 2014-08-01  Martin Liska  <mliska@suse.cz>
13893
13894         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
13895         * ipa-prop.h (count_formal_params): Global function created from static.
13896         * ipa-prop.c (count_formal_params): Likewise.
13897         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
13898         profiles for semantically equivalent functions.
13899         * passes.c (do_per_function): If we load body of a function
13900         during WPA, this condition should behave same.
13901         * varpool.c (ctor_for_folding): More tolerant assert for variable
13902         aliases created during WPA.
13903
13904 2014-08-01  Martin Liska  <mliska@suse.cz>
13905
13906         * doc/invoke.texi (Options That Control Optimization): Documentation
13907         for -foptimize-strlen introduced. Optimization levels default options
13908         fixed.
13909
13910 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
13911
13912         * opts.c (common_handle_option): Handle -fsanitize=alignment.
13913         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
13914         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
13915         type to bool.
13916         * stor-layout.h (min_align_of_type): New prototype.
13917         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
13918         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
13919         check.
13920         * ubsan.c: Include builtins.h.
13921         (ubsan_expand_bounds_ifn): Change return type to bool,
13922         always return true.
13923         (ubsan_expand_null_ifn): Change return type to bool, change
13924         argument to gimple_stmt_iterator *.  Handle both null and alignment
13925         sanitization, take type from ckind argument's type rather than
13926         first argument.
13927         (instrument_member_call): Removed.
13928         (instrument_mem_ref): Remove t argument, add mem and base arguments.
13929         Handle both null and alignment sanitization, don't say whole
13930         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
13931         call instead of 2 argument.
13932         (instrument_null): Adjust instrument_mem_ref caller.  Don't
13933         instrument calls here.
13934         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
13935         like SANITIZE_NULL.
13936         * stor-layout.c (min_align_of_type): New function.
13937         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
13938         Or it into SANITIZE_UNDEFINED.
13939         * doc/invoke.texi (-fsanitize=alignment): Document.
13940
13941 2014-07-31  Andi Kleen  <ak@linux.intel.com>
13942
13943         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
13944
13945 2014-07-31  Andi Kleen  <ak@linux.intel.com>
13946
13947         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
13948         inchash.
13949         (vn_reference_compute_hash): Dito.
13950         (vn_nary_op_compute_hash): Dito.
13951         (vn_phi_compute_hash): Dito.
13952         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
13953
13954 2014-07-31  Andi Kleen  <ak@linux.intel.com>
13955
13956         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
13957         Rename to inchash:add_expr_commutative. Convert to inchash.
13958         (iterative_hash_hashable_expr): Rename to
13959         inchash:add_hashable_expr. Convert to inchash.
13960         (avail_expr_hash): Dito.
13961
13962 2014-07-31  Andi Kleen  <ak@linux.intel.com>
13963
13964         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
13965         Convert to inchash.
13966
13967 2014-07-31  Andi Kleen  <ak@linux.intel.com>
13968
13969         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
13970
13971 2014-07-31  Andi Kleen  <ak@linux.intel.com>
13972
13973         * Makefile.in (OBJS): Add rtlhash.o
13974         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
13975         (loc_checksum): Dito.
13976         (loc_checksum_ordered): Dito.
13977         (hash_loc_operands): Dito.
13978         (hash_locs): Dito.
13979         (hash_loc_list): Dito.
13980         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
13981         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
13982         * rtlhash.c: New file.
13983         * rtlhash.h: New file.
13984
13985 2014-07-31  Andi Kleen  <ak@linux.intel.com>
13986
13987         * inchash.h (inchash): Change inchash class to namespace.
13988         (class hash): ... Rename from inchash.
13989         (add_object): Move from macro to class template.
13990         * lto-streamer-out.c (hash_tree): Change inchash
13991         to inchash::hash.
13992         * tree.c (build_type_attribute_qual_variant): Dito.
13993         (type_hash_list): Dito.
13994         (attribute_hash_list): Dito.
13995         (iterative_hstate_expr): Rename to inchash::add_expr
13996         (build_range_type_1): Change inchash to inchash::hash
13997         and use hash::add_expr.
13998         (build_array_type_1): Dito.
13999         (build_function_type): Dito
14000         (build_method_type_directly): Dito.
14001         (build_offset_type): Dito.
14002         (build_complex_type): Dito.
14003         (make_vector_type): Dito.
14004         * tree.h (iterative_hash_expr): Dito.
14005
14006 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
14007
14008         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
14009
14010 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
14011
14012         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
14013         correct alphabetical position.
14014         (vpaddd_f64): Rewrite using builtins.
14015         (vpaddd_s64): Move to correct alphabetical position.
14016         (vpaddd_u64): New.
14017
14018 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
14019
14020         PR target/61844
14021         * config/sh/sh.c (sh_legitimate_address_p,
14022         sh_legitimize_reload_address): Handle reg+reg address modes when
14023         ALLOW_INDEXED_ADDRESS is false.
14024         * config/sh/predicates.md (general_movsrc_operand,
14025         general_movdst_operand): Likewise.
14026
14027 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
14028
14029         * config/aarch64/aarch64-builtins.c
14030         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
14031         BYTES_BIG_ENDIAN.
14032
14033 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
14034
14035         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
14036         the generated mask based on BYTES_BIG_ENDIAN.
14037         (aarch64_simd_check_vect_par_cnst_half): New.
14038         * config/aarch64/aarch64-protos.h
14039         (aarch64_simd_check_vect_par_cnst_half): New.
14040         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
14041         the check out to aarch64_simd_check_vect_par_cnst_half.
14042         (vect_par_cnst_lo_half): Likewise.
14043         * config/aarch64/aarch64-simd.md
14044         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
14045         (move_hi_quad_<mode>): Always generate a low mask.
14046
14047 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
14048
14049         * doc/invoke.texi (AVR Options): Add documentation about
14050         __AVR_DEVICE_NAME__ built-in macro.
14051
14052 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
14053
14054         PR target/61948
14055         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
14056         constraints are satisfied.
14057         (<shift>di3_neon): Likewise.
14058
14059 2014-07-31  Richard Biener  <rguenther@suse.de>
14060
14061         PR tree-optimization/61964
14062         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
14063         by structural equality.
14064
14065 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
14066
14067         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
14068         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
14069         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
14070         New enums.
14071         * gcc.c (sanitize_spec_function): Support new option.
14072         (SANITIZER_SPEC): Remove now redundant check.
14073         * opts.c (common_handle_option): Support new option.
14074         (finish_options): Check for incompatibilities.
14075         * toplev.c (process_options): Split userspace-specific checks.
14076
14077 2014-07-31  Richard Biener  <rguenther@suse.de>
14078
14079         * lto-streamer.h (struct output_block): Remove global.
14080         (struct data_in): Remove labels, num_named_labels and
14081         num_unnamed_labels.
14082         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
14083         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
14084
14085 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
14086
14087         PR c++/60517
14088         * common.opt (-Wreturn-local-addr): Moved from c.opt.
14089         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
14090         (isolate_path): New argument to avoid inserting a trap.
14091         (find_implicit_erroneous_behaviour): Handle returning the address
14092         of a local variable.
14093         (find_explicit_erroneous_behaviour): Likewise.
14094
14095 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
14096
14097         PR lto/61868
14098         * toplev.c (init_random_seed): Move piece of code never called to
14099         set_random_seed.
14100         (set_random_seed): see above.
14101
14102 2014-07-31  Tom de Vries  <tom@codesourcery.com>
14103
14104         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
14105
14106 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
14107
14108         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
14109         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
14110
14111 2014-07-31  Richard Biener  <rguenther@suse.de>
14112
14113         * data-streamer.h (streamer_write_data_stream): Declare here,
14114         renamed from ...
14115         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
14116         * lto-cgraph.c (lto_output_node): Adjust.
14117         (lto_output_varpool_node): Likewise.
14118         * data-streamer-out.c (streamer_string_index): Likewise.
14119         (streamer_write_data_stream, lto_append_block): Move from ...
14120         * lto-section-out.c (lto_output_data_stream,
14121         lto_append_block): ... here.
14122
14123 2014-07-30  Mike Stump  <mikestump@comcast.net>
14124
14125         * configure.ac: Also check for popen.
14126         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
14127         * configure: Regenerate.
14128         * config.in:  Regenerate.
14129
14130 2014-07-30  Martin Jambor  <mjambor@suse.cz>
14131
14132         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
14133         parameter to gimple.
14134
14135 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14136
14137         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
14138         address as second parameter to __tpf_eh_return routine.
14139
14140 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
14141
14142         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
14143         Thumb2.
14144
14145 2014-07-30  Tom Tromey  <tromey@redhat.com>
14146
14147         PR c/59855
14148         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
14149         * doc/extend.texi (Type Attributes): Document designated_init
14150         attribute.
14151
14152 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
14153
14154         * graphite-isl-ast-to-gimple.c:
14155         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
14156         (gcc_expression_from_isl_expression): Pass type to
14157         gcc_expression_from_isl_ast_expr_id.
14158
14159 2014-07-30  Richard Biener  <rguenther@suse.de>
14160
14161         * lto-streamer.h (lto_write_data): New function.
14162         * langhooks.c (lhd_append_data): Do not free block.
14163         * lto-section-out.c (lto_write_data): New function writing
14164         raw data to the current section.
14165         (lto_write_stream): Adjust for langhook semantic change.
14166         (lto_destroy_simple_output_block): Write header directly.
14167         * lto-opts.c (lto_write_options): Write options directly.
14168         * lto-streamer-out.c (produce_asm): Write heaeder directly.
14169         (lto_output_toplevel_asms): Likewise.
14170         (copy_function_or_variable): Copy data directly.
14171         (write_global_references): Output index table directly.
14172         (lto_output_decl_state_refs): Likewise.
14173         (write_symbol): Write data directly.
14174         (produce_symtab): Adjust.
14175         (produce_asm_for_decls): Output header and refs directly.
14176
14177 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
14178
14179         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
14180         to speculative_targets
14181         (get_class_context): Fix handling of contextes without outer type;
14182         avoid matching non-polymorphic types in LTO.
14183         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
14184         parameter to speculative_targetsp; handle speculation.
14185         (dump_possible_polymorphic_call_targets): Update dumping.
14186
14187 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
14188
14189         * common.opt (Wodr): Enable by default.
14190
14191 2014-07-29  Olivier Hainque  <hainque@adacore.com>
14192
14193         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
14194
14195 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
14196
14197         PR bootstrap/61914
14198         * gengtype.c (strtoken): New function.
14199         (create_user_defined_type): Replace strtok with strtoken.
14200
14201 2014-07-29  Nathan Sidwell  <nathan@acm.org>
14202
14203         * gcov-io.c (gcov_var): Make hidden.
14204         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
14205         (gcov_do_dump): Declare.
14206         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
14207
14208 2014-07-29  Martin Jambor  <mjambor@suse.cz>
14209
14210         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
14211         parameter to gimple.
14212         (sra_modify_assign): Likewise.
14213
14214 2014-07-29  Richard Biener  <rguenther@suse.de>
14215
14216         PR middle-end/52478
14217         * expr.c (expand_expr_real_2): Revert last change.
14218
14219 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
14220
14221         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
14222         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
14223         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
14224         call.
14225         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
14226         (contains_type_p): Forward declare.
14227         (polymorphic_call_target_hasher::hash): Hash speculative info.
14228         (polymorphic_call_target_hasher::equal): Compare speculative info.
14229         (get_class_context): Handle speuclation.
14230         (contains_type_p): Update.
14231         (get_polymorphic_call_info_for_decl): Update.
14232         (walk_ssa_copies): Break out from ...
14233         (get_polymorphic_call_info): ... here; set speculative context
14234         before giving up.
14235         * ipa-prop.c (ipa_write_indirect_edge_info,
14236         ipa_read_indirect_edge_info): Stream speculative context.
14237         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
14238         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
14239         SPECULATIVE_MAYBE_DERIVED_TYPE).
14240         (possible_polymorphic_call_targets overriders): Update.
14241         (dump_possible_polymorphic_call_targets overriders): Update.
14242         (dump_possible_polymorphic_call_target_p overriders): Update.
14243
14244 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
14245
14246         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
14247         ipa-devirt path; fix thinko there.
14248
14249 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
14250
14251         * config/i386/i386.c (ix86_return_in_memory): Replace one
14252         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
14253
14254 2014-07-28  Marek Polacek  <polacek@redhat.com>
14255
14256         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
14257
14258 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
14259
14260         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
14261         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
14262         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
14263         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14264         (USE_LD_AS_NEEDED): Likewise.
14265         (ASM_APP_ON): Likewise.
14266         (ASM_APP_OFF): Likewise.
14267         (TARGET_POSIX_IO): Likewise.
14268         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
14269         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14270         (USE_LD_AS_NEEDED): Likewise.
14271         (ASM_APP_ON): Likewise.
14272         (ASM_APP_OFF): Likewise.
14273         (TARGET_POSIX_IO): Likewise.
14274
14275 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
14276
14277         PR middle-end/61734
14278         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
14279         operators other than the equality operators.
14280
14281 2014-07-28  Richard Biener  <rguenther@suse.de>
14282
14283         PR middle-end/52478
14284         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
14285         sure to register SImode ones, not only >= word_mode ones.
14286         * expr.c (expand_expr_real_2): When expanding -ftrapv
14287         binops do not use OPTAB_LIB_WIDEN.
14288
14289 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
14290
14291         PR middle-end/61919
14292         * tree-outof-ssa.c (insert_partition_copy_on_edge)
14293         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
14294         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
14295         inserting them in the insn stream.
14296
14297 2014-07-28  Marek Polacek  <polacek@redhat.com>
14298
14299         PR middle-end/61913
14300         * common.opt (Wodr): Add Var.
14301
14302 2014-07-28  Richard Biener  <rguenther@suse.de>
14303
14304         PR tree-optimization/61921
14305         * tree-ssa-structalias.c (create_variable_info_for_1): Check
14306         if there is a varpool node before dereferencing it.
14307
14308 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
14309
14310         * graphite-sese-to-poly.c:
14311         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
14312         id of the pbb), which contains pointer to the pbb1.
14313
14314         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
14315
14316 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
14317
14318         * graphite-isl-ast-to-gimple.c:
14319         (graphite_create_new_guard): New function.
14320         (translate_isl_ast_node_if): New function.
14321         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
14322
14323         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
14324
14325 2014-07-27  Anthony Green  <green@moxielogic.com>
14326
14327         * config.gcc: Add moxie-*-moxiebox* configuration.
14328         * config/moxie/moxiebox.h: New file.
14329
14330 2014-07-26  Andrew Pinski  <apinski@cavium.com>
14331
14332         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
14333         from the read only register.
14334
14335 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
14336
14337         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
14338         as the allocation class if it isn't likely to be spilled.
14339
14340 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
14341
14342         * rtl.h (tls_referenced_p): Declare.
14343         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
14344         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
14345         (mips_cannot_force_const_mem): Use tls_referenced_p.
14346         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
14347         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
14348         instead of pa_tls_referenced_p.
14349         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
14350         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
14351         (pa_legitimate_constant_p): Likewise.
14352         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
14353         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
14354         (rs6000_cannot_force_const_mem, rs6000_emit_move)
14355         (rs6000_address_for_altivec): Use tls_referenced_p instead of
14356         rs6000_tls_referenced_p.
14357         (rs6000_tls_symbol_ref_1): Delete.
14358
14359 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
14360
14361         PR target/44551
14362         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
14363         Optimize inverse of a VEC_CONCAT.
14364
14365 2014-07-25  Xinliang David Li  <davidxl@google.com>
14366
14367         * params.def: New parameter.
14368         * coverage.c (get_coverage_counts): Check new flag.
14369         (coverage_compute_profile_id): Check new flag.
14370         (coverage_begin_function): Check new flag.
14371         (coverage_end_function): Check new flag.
14372         * value-prof.c (coverage_node_map_initialized_p): New function.
14373         (init_node_map): Populate map with all functions.
14374         * doc/invoke.texi: Document new parameter.
14375
14376 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
14377             Richard Biener <rguenther@suse.de>
14378
14379         * lto-streamer-out.c (struct sccs): Turn to ...
14380         (class DFS): ... this one; refactor the DFS walk so it can
14381         be re-done on per-SCC basis.
14382         (DFS::DFS): New constructor.
14383         (DFS::~DFS): New destructor.
14384         (hash_tree): Add new MAP argument holding in-SCC hash values;
14385         remove POINTER_TYPE hashing hack.
14386         (scc_entry_compare): Rename to ...
14387         (DFS::scc_entry_compare): ... this one.
14388         (hash_scc): Rename to ...
14389         (DFS::hash_scc): ... this one; pass output_block instead
14390         of streamer_cache; work harder to get unique and stable SCC
14391         hashes.
14392         (DFS_write_tree): Rename to ...
14393         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
14394         (lto_output_tree): Update.
14395
14396 2014-07-25  Andi Kleen  <ak@linux.intel.com>
14397
14398         * lto-streamer-out.c (hash_tree): Convert to inchash.
14399
14400 2014-07-25  Andi Kleen  <ak@linux.intel.com>
14401
14402         * tree.c (build_type_attribute_qual_variant): Use inchash.
14403         (type_hash_list): Dito.
14404         (attribute_hash_list): Dito
14405         (iterative_hstate_expr): Dito.
14406         (iterative_hash_expr): Dito.
14407         (build_range_type_1): Dito.
14408         (build_array_type_1): Dito.
14409         (build_function_type): Dito.
14410         (build_method_type_directly): Dito.
14411         (build_offset_type): Dito.
14412         (build_complex_type): Dito.
14413         (make_vector_type): Dito.
14414         * tree.h (iterative_hash_expr): Add compat wrapper.
14415         (iterative_hstate_expr): Add.
14416
14417 2014-07-25  Andi Kleen  <ak@linux.intel.com>
14418
14419         * Makefile.in (OBJS): Add inchash.o.
14420         (PLUGIN_HEADERS): Add inchash.h.
14421         * ipa-devirt.c: Include inchash.h.
14422         * lto-streamer-out.c: Dito.
14423         * tree-ssa-dom.c: Dito.
14424         * tree-ssa-pre.c: Dito.
14425         * tree-ssa-sccvn.c: Dito.
14426         * tree-ssa-tail-merge.c: Dito.
14427         * asan.c: Dito.
14428         * tree.c (iterative_hash_hashval_t): Move to ...
14429         (iterative_hash_host_wide_int): Move to ...
14430         * inchash.c: Here. New file.
14431         * tree.h (iterative_hash_hashval_t): Move to ...
14432         (iterative_hash_host_wide_int): Move to ...
14433         * inchash.h: Here. New file.
14434
14435 2014-07-25  Richard Biener  <rguenther@suse.de>
14436
14437         PR middle-end/61762
14438         PR middle-end/61894
14439         * fold-const.c (native_encode_int): Add and handle offset
14440         parameter to do partial encodings of expr.
14441         (native_encode_fixed): Likewise.
14442         (native_encode_real): Likewise.
14443         (native_encode_complex): Likewise.
14444         (native_encode_vector): Likewise.
14445         (native_encode_string): Likewise.
14446         (native_encode_expr): Likewise.
14447         * fold-const.c (native_encode_expr): Add offset parameter
14448         defaulting to -1.
14449         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
14450         (fold_ctor_reference): Handle all reads from tcc_constant
14451         ctors.
14452
14453 2014-07-25  Richard Biener  <rguenther@suse.de>
14454
14455         * tree-inline.c (estimate_move_cost): Mark speed_p argument
14456         as possibly unused.
14457
14458 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
14459
14460         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
14461
14462 2014-07-24  Kyle McMartin  <kyle@redhat.com>
14463
14464         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
14465
14466 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14467
14468         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
14469         Add prototype.
14470         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
14471         function.
14472         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
14473         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
14474         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
14475
14476 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14477
14478         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
14479         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
14480         aggregate types.  Instead, *all* aggregate types, except for single-
14481         element or homogeneous float/vector aggregates, are quadword-aligned
14482         if required by their type alignment.  Issue -Wpsabi note when a type
14483         is now treated differently than before.
14484
14485 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14486
14487         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
14488         does not fit fully into floating-point registers, and there is still
14489         space in the register parameter area, use GPRs to pass those parts
14490         of the argument.  Issue -Wpsabi note if any parameter is now treated
14491         differently than before.
14492         (rs6000_arg_partial_bytes): Update.
14493
14494 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
14495
14496         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
14497
14498 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
14499
14500         * rtl.h (target_rtl): Remove lang_dependent_initialized.
14501         * toplev.c (initialize_rtl): Don't use it.  Move previously
14502         "language-dependent" calls to...
14503         (backend_init): ...here.
14504         (lang_dependent_init_target): Don't set lang_dependent_initialized.
14505         Assert that RTL initialization hasn't happend yet.
14506
14507 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
14508
14509         PR rtl-optimization/61629
14510         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
14511         they have already been initialized.
14512
14513 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
14514
14515         PR middle-end/61268
14516         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
14517         DECL_INCOMING_RTL and entry_parm.
14518         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
14519         * calls.c (load_register_parameters): Likewise argument values.
14520         (emit_library_call_value_1, store_one_arg): Likewise argument
14521         save areas.
14522         * config/i386/i386.c (assign_386_stack_local): Likewise the local
14523         stack slot.
14524         * explow.c (validize_mem): Modify the argument in-place.
14525
14526 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
14527
14528         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
14529         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
14530
14531 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
14532
14533         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
14534         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
14535
14536 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
14537
14538         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
14539         (aarch64_save_callee_saves): New parameter "skip_wb".
14540         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
14541
14542 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
14543
14544         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
14545         "wb_candidate2".
14546         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
14547
14548 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
14549
14550         * graphite-isl-ast-to-gimple.c:
14551         (graphite_create_new_loop): Add calling of isl_id_free to properly
14552         decrement reference counts.
14553
14554         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
14555
14556 2014-07-24  Martin Liska  <mliska@suse.cz>
14557         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
14558         function used.
14559         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
14560         (rs6000_code_end): Likewise.
14561
14562 2014-07-24  Martin Liska  <mliska@suse.cz>
14563
14564         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
14565         symtab_node funtion used.
14566         (rs6000_xcoff_declare_object_name): Likewise.
14567
14568 2014-07-24  Martin Liska  <mliska@suse.cz>
14569
14570         * cgraphunit.c (compile): Correct function used.
14571
14572 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
14573
14574         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
14575         as non-indexable.
14576
14577 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
14578
14579         PR lto/61802
14580         * varasm.c (bss_initializer_p): Handle offlined ctors.
14581         (align_variable, get_variable_align): Likewise.
14582         (make_decl_one_only): Likewise.
14583         (default_binds_local_p_1): Likewise.
14584         (decl_binds_to_current_def_p): Likewise.
14585         (get_variable_section): Get constructor if it is offlined.
14586         (assemble_variable_contents): Sanity check that the caller
14587         streamed in the ctor in LTO.
14588
14589 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
14590
14591         * graphite-isl-ast-to-gimple.c:
14592         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
14593         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
14594         isl_ast_op_pdiv_r to the different case.
14595
14596         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
14597
14598 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14599
14600         PR middle-end/61876
14601         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
14602         when flag_errno_math is on.
14603
14604 2014-07-24  Martin Liska  <mliska@suse.cz>
14605
14606         * cgraph.h (varpool_node):
14607         (availability get_availability (void)):
14608         created from cgraph_variable_initializer_availability
14609         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
14610         created from: cgraph_variable_initializer_availability
14611         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
14612         (void finalize_named_section_flags (void)):
14613         created from varpool_finalize_named_section_flags
14614         (bool assemble_decl (void)): created from varpool_assemble_decl
14615         (void analyze (void)): created from varpool_analyze_node
14616         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
14617         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
14618         (void remove_initializer (void)): created from varpool_remove_initializer
14619         (tree get_constructor (void)): created from varpool_get_constructor
14620         (bool externally_visible_p (void)): created from varpool_externally_visible_p
14621         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
14622         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
14623         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
14624         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
14625         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
14626         (static bool output_variables (void)): created from varpool_output_variables
14627         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
14628         created from varpool_extra_name_alias
14629         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
14630         (static void dump_varpool (FILE *f)): created from dump_varpool
14631         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
14632         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
14633         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
14634         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
14635         (void assemble_aliases (void)): created from assemble_aliases
14636
14637 2014-07-24  Martin Liska  <mliska@suse.cz>
14638
14639         * cgraph.h (symtab_node):
14640         (void register_symbol (void)): created from symtab_register_node
14641         (void remove (void)): created from symtab_remove_node
14642         (void dump (FILE *f)): created from dump_symtab_node
14643         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
14644         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
14645         (struct ipa_ref *add_reference (symtab_node *referred_node,
14646         enum ipa_ref_use use_type)): created from add_reference 
14647         (struct ipa_ref *add_reference (symtab_node *referred_node,
14648         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
14649         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
14650         gimple stmt)): created from maybe_add_reference
14651         (bool semantically_equivalent_p (symtab_node *target)): created from
14652         symtab_semantically_equivalent_p
14653         (void remove_from_same_comdat_group (void)): created from
14654         remove_from_same_comdat_group
14655         (void add_to_same_comdat_group (symtab_node *old_node)): created from
14656         symtab_add_to_same_comdat_group
14657         (void dissolve_same_comdat_group_list (void)): created from
14658         symtab_dissolve_same_comdat_group_list
14659         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
14660         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
14661         created from symtab_alias_ultimate_target
14662         (inline symtab_node *next_defined_symbol (void)): created from
14663         symtab_next_defined_symbol
14664         (bool resolve_alias (symtab_node *target)): created from
14665         symtab_resolve_alias
14666         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
14667         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
14668         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
14669         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
14670         (void set_section (const char *section)): created from set_section_1 
14671         (enum availability get_availability (void)): created from symtab_node_availability
14672         (void make_decl_local (void)): created from symtab_make_decl_local
14673         (bool real_symbol_p (void)): created from symtab_read_node
14674         (can_be_discarded_p (void)): created from symtab_can_be_discarded
14675         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
14676         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
14677         symtab_in_same_comdat_p;
14678         (bool address_taken_from_non_vtable_p (void)): created from
14679         address_taken_from_non_vtable_p
14680         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
14681         (static void dump_table (FILE *)): created from dump_symtab
14682         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
14683         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
14684         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
14685         symtab_used_from_object_file_p 
14686         (void dump_base (FILE *)): created from dump_symtab_base
14687         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
14688         (void unregister (void)): created from symtab_unregister_node
14689         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
14690         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
14691         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
14692         symtab_nonoverwritable_alias_1
14693         * cgraph.h (cgraph_node):
14694         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
14695         created from cgraph_remove_node_and_inline_clones
14696         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
14697         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
14698         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
14699         (cgraph_node *function_symbol (enum availability *avail = NULL)):
14700         created from cgraph_function_node
14701         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
14702         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
14703         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
14704         created from cgraph_create_clone 
14705         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
14706         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
14707         created from cgraph_create_virtual_clone
14708         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
14709         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
14710         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
14711         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
14712         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
14713         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
14714         created from cgraph_function_version_info
14715         (struct cgraph_function_version_info *insert_new_function_version (void)):
14716         created from insert_new_cgraph_node_version
14717         (struct cgraph_function_version_info *function_version (void)): created from
14718         get_cgraph_node_version
14719         (void analyze (void)): created from analyze_function
14720         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
14721         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
14722         tree real_alias) cgraph_add_thunk
14723         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
14724         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
14725         created from cgraph_function_or_thunk_node
14726         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
14727         created from expand_thunk
14728         (void reset (void)): created from cgraph_reset_node
14729         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
14730         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
14731         (void remove (void)): created from cgraph_remove_node
14732         (void dump (FILE *f)): created from dump_cgraph_node
14733         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
14734         (bool get_body (void)): created from cgraph_get_body
14735         (void release_body (void)): created from cgraph_release_function_body
14736         (void unnest (void)): created from cgraph_unnest_node
14737         (void make_local (void)): created from cgraph_make_node_local
14738         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
14739         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
14740         gcov_type count, int freq)): created from cgraph_create_edge
14741         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
14742         gcov_type count, int freq)): created from cgraph_create_indirect_edge
14743         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
14744         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
14745         created from cgraph_create_edge_including_clones
14746         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
14747         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
14748         (void remove_callers (void)): created from cgraph_node_remove_callers
14749         (void remove_callees (void)): created from cgraph_node_remove_callees
14750         (enum availability get_availability (void)): created from cgraph_function_body_availability
14751         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
14752         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
14753         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
14754         (void call_duplication_hooks (cgraph_node *node2)): created from
14755         cgraph_call_node_duplication_hooks
14756         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
14757         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
14758         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
14759         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
14760         (void call_function_insertion_hooks (void)):
14761         created from cgraph_call_function_insertion_hooks
14762         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
14763         (bool local_p (void)): created from cgraph_local_node
14764         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
14765         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
14766         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
14767         (inline bool only_called_directly_or_aliased_p (void)):
14768         created from cgraph_only_called_directly_or_aliased_p
14769         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
14770         created from cgraph_will_be_removed_from_program_if_no_direct_calls
14771         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
14772         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
14773         (bool can_remove_if_no_direct_calls_p (void)):
14774         created from cgraph_can_remove_if_no_direct_calls_p
14775         (inline bool has_gimple_body_p (void)):
14776         created from cgraph_function_with_gimple_body_p
14777         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
14778         (static void dump_cgraph (FILE *f)): created from dump_cgraph
14779         (static inline void debug_cgraph (void)): created from debug_cgraph
14780         (static void record_function_versions (tree decl1, tree decl2)):
14781         created from record_function_versions
14782         (static void delete_function_version (tree decl)):
14783         created from delete_function_version
14784         (static void add_new_function (tree fndecl, bool lowered)):
14785         created from cgraph_add_new_function
14786         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
14787         (static cgraph_node * create (tree decl)): created from cgraph_create_node
14788         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
14789         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
14790         (static cgraph_node *get_for_asmname (tree asmname)):
14791         created from cgraph_node_for_asm
14792         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
14793         created from cgraph_same_body_alias 
14794         (static bool used_from_object_file_p_worker (cgraph_node *node,
14795         void *): new function
14796         (static bool non_local_p (cgraph_node *node, void *)):
14797         created from cgraph_non_local_node_p_1
14798         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
14799         created from verify_cgraph
14800         (static bool make_local (cgraph_node *node, void *)):
14801         created from cgraph_make_node_local
14802         (static cgraph_node *create_alias (tree alias, tree target)):
14803         created from cgraph_create_function_alias
14804         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
14805         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
14806         created from cgraph_create_edge_1
14807         * cgraph.h (varpool_node):
14808         (void remove (void)): created from varpool_remove_node
14809         (void dump (FILE *f)): created from dump_varpool_node
14810
14811 2014-07-24  Richard Biener  <rguenther@suse.de>
14812
14813         PR ipa/61823
14814         * tree-ssa-structalias.c (create_variable_info_for_1):
14815         Use varpool_get_constructor.
14816         (create_variable_info_for): Likewise.
14817
14818 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
14819
14820         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
14821         subtract outgoing area size when restoring stack_pointer_rtx.
14822
14823 2014-07-24  Nick Clifton  <nickc@redhat.com>
14824
14825         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
14826         that operations are taking place in parallel.
14827         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
14828
14829 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
14830
14831         * omp-low.c (extract_omp_for_data): Add missing break statement.
14832
14833 2014-07-24  Richard Biener  <rguenther@suse.de>
14834
14835         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
14836         * tree-inline.c (estimate_move_cost): Add speed_p parameter
14837         and adjust MOVE_RATIO query accordingly.
14838         (estimate_num_insns): Adjust callers.
14839         * ipa-prop.c (ipa_populate_param_decls): Likewise.
14840         * ipa-cp.c (gather_context_independent_values,
14841         estimate_local_effects): Likewise.
14842         * ipa-split.c (consider_split): Likewise.
14843
14844 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
14845
14846         * config/i386/driver-i386.c: Remove names of unused arguments and
14847         unnecessary unused attributes.
14848         * config/i386/host-mingw32.c: Likewise.
14849         * config/i386/i386.c: Likewise.
14850         * config/i386/winnt-stubs.c: Likewise.
14851         * config/i386/winnt.c: Likewise.
14852
14853 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
14854
14855         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
14856         (aarch64_gen_loadwb_pair): New helper function.
14857         (aarch64_expand_epilogue): Simplify code using new helper functions.
14858         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
14859
14860 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
14861
14862         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
14863         (aarch64_gen_storewb_pair): New helper function.
14864         (aarch64_expand_prologue): Simplify code using new helper functions.
14865         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
14866
14867 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
14868
14869         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
14870         Rename to aarch64_save_callee_saves, remove restore code.
14871         (aarch64_restore_callee_saves): New function.
14872
14873 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
14874
14875         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
14876         (aarch64_save_callee_saves): New function to handle reg save
14877         for both core and vectore regs.
14878
14879 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
14880
14881         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
14882         (aarch64_gen_store_pair): New helper function.
14883         (aarch64_save_or_restore_callee_save_registers)
14884         (aarch64_save_or_restore_fprs): Use new helper functions.
14885
14886 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
14887
14888         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
14889         (aarch64_save_or_restore_callee_save_registers)
14890         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
14891
14892 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
14893
14894         * config/aarch64/aarch64.c
14895         (aarch64_save_or_restore_callee_save_registers)
14896         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
14897
14898 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
14899
14900         * config/aarch64/aarch64.c
14901         (aarch64_save_or_restore_callee_save_registers)
14902         (aarch64_save_or_restore_fprs): Remove 'increment'.
14903
14904 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
14905
14906         * config/aarch64/aarch64.c
14907         (aarch64_save_or_restore_callee_save_registers)
14908         (aarch64_save_or_restore_fprs): Use register offset in
14909         cfun->machine->frame.reg_offset.
14910
14911 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
14912
14913         * config/aarch64/aarch64.c
14914         (aarch64_save_or_restore_callee_save_registers)
14915         (aarch64_save_or_restore_fprs): Remove base_rtx.
14916
14917 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
14918
14919         * config/aarch64/aarch64.c
14920         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
14921         to 'start_offset'.  Remove local variable 'start_offset'.
14922
14923 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
14924
14925         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
14926         type to HOST_WIDE_INT.
14927
14928 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
14929
14930         * config/aarch64/aarch64.c (aarch64_expand_prologue)
14931         (aarch64_save_or_restore_fprs)
14932         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
14933
14934 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14935
14936         * config/arm/t-rtems-eabi: Add
14937         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
14938         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
14939         mbig-endian/mthumb/march=armv7-r, and
14940         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
14941         multilibs.
14942
14943 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14944             Chris Johns <chrisj@rtems.org>
14945             Joel Sherrill <joel.sherrill@oarcorp.com>
14946
14947         * config.gcc: Add nios2-*-rtems*.
14948         * config/nios2/rtems.h: New file.
14949         * gcc/config/nios2/t-rtems: New file.
14950
14951 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
14952
14953         PR target/61396
14954         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
14955         constant numbers, not general constants.
14956         (rs6000_expand_vector_init): Ditto.
14957
14958 2014-07-23  Nathan Sidwell  <nathan@acm.org>
14959
14960         * gcov-tool.c (gcov_list): Declare here.
14961         (set_gcov_list): Remove.
14962         (gcov_output_files): Set gcov_list directly.
14963
14964 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
14965
14966         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
14967
14968 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
14969
14970         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
14971         callee-saved registers are available for padding purpose
14972         and r3 is not mandatory, then prefer use those callee-saved
14973         instead of r3.
14974
14975 2014-07-23  Richard Biener  <rguenther@suse.de>
14976
14977         * params.def (PARAM_MAX_COMBINE_INSNS): New.
14978         * combine.c: Include statistics.h and params.h.
14979         (combine_instructions): Guard three and four insn combines
14980         with max-combine-insns value.  Record statistics for combines
14981         performed.
14982         * doc/invoke.texi (max-combine-insns): Document new param.
14983
14984 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
14985
14986         * graphite-isl-ast-to-gimple.c:
14987         (translate_isl_ast_node_block): New function.
14988         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
14989
14990         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
14991         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
14992
14993 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
14994
14995         * graphite-isl-ast-to-gimple.c:
14996         (get_max_schedule_dimensions): New function.
14997         (extend_schedule): Likewise.
14998         (generate_isl_schedule): Add calling of extend_schedule and
14999         get_max_schedule_dimensions.
15000
15001 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15002
15003         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
15004         (case UNSPEC): Handle UNSPEC_RBIT.
15005
15006 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15007
15008         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
15009         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
15010
15011 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15012
15013         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
15014
15015 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
15016
15017         * graphite-isl-ast-to-gimple.c:
15018         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
15019         (ivs_params_clear):
15020         (build_iv_mapping): New function.
15021         (translate_isl_ast_node_user): Likewise.
15022         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
15023
15024         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
15025         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
15026         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
15027
15028 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
15029
15030         PR target/55701
15031         * config/arm/arm.md (setmem): New pattern.
15032         * config/arm/arm-protos.h (struct tune_params): New fields.
15033         (arm_gen_setmem): New prototype.
15034         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
15035         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
15036         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
15037         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
15038         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
15039         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
15040         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
15041         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
15042         (arm_const_inline_cost): New function.
15043         (arm_block_set_max_insns): New function.
15044         (arm_block_set_non_vect_profit_p): New function.
15045         (arm_block_set_vect_profit_p): New function.
15046         (arm_block_set_unaligned_vect): New function.
15047         (arm_block_set_aligned_vect): New function.
15048         (arm_block_set_unaligned_non_vect): New function.
15049         (arm_block_set_aligned_non_vect): New function.
15050         (arm_block_set_vect, arm_gen_setmem): New functions.
15051
15052 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
15053
15054         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
15055
15056 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
15057
15058         PR target/61855
15059         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
15060         out of #ifdef __OPTIMIZE__.
15061
15062 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
15063
15064         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
15065         different trapping status if -fnon-call-exceptions is enabled.
15066
15067 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
15068
15069         * expr.c (store_field): Handle VOIDmode for calls that return values
15070         in multiple locations.
15071
15072 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15073
15074         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
15075         (altivec_vsldoi_<mode>): Likewise.
15076
15077 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
15078
15079         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
15080         to the number of characters in the line.
15081
15082 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
15083
15084         * graphite-isl-ast-to-gimple.c: Add using of
15085         build_nonstandard_integer_type instead of int128_integer_type_node.
15086
15087 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
15088
15089         * toplev.c (output_stack_usage): Adjust the location of the warning.
15090
15091 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
15092
15093         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
15094         (*membar_storeload): Disable for LEON3.
15095
15096 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15097
15098         PR rtl-optimization/61461
15099         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
15100
15101 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
15102
15103         PR target/61794
15104         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
15105         Fix instruction constraint.
15106         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
15107
15108 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
15109
15110         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
15111
15112 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
15113
15114         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
15115         GNU coding standards.
15116         (nds32_register_move_cost): Likewise.
15117         (nds32_memory_move_cost): Likewise.
15118         (nds32_address_cost): Likewise.
15119
15120 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
15121
15122         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
15123
15124 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
15125
15126         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
15127         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
15128         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
15129         (HAVE_sync_compare_and_swapqi): Define.
15130         (HAVE_sync_compare_and_swaphi): Likewise.
15131         (HAVE_sync_compare_and_swapsi): Likewise.
15132
15133 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
15134
15135         * config/mips/p5600.md: Add missing cpu tests.
15136
15137 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15138
15139         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
15140         (vmla_f64): Likewise.
15141         (vfms_f64): Likewise.
15142         (vmls_f64): Likewise.
15143
15144 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15145
15146         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
15147         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
15148
15149 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15150
15151         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
15152         (vmlal_high_lane_s32): Likewise.
15153         (vmlal_high_lane_u16): Likewise.
15154         (vmlal_high_lane_u32): Likewise.
15155         (vmlsl_high_lane_s16): Likewise.
15156         (vmlsl_high_lane_s32): Likewise.
15157         (vmlsl_high_lane_u16): Likewise.
15158         (vmlsl_high_lane_u32): Likewise.
15159
15160 2014-07-17  Terry Guo  <terry.guo@arm.com>
15161
15162         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
15163         (alus_reg): Renamed to alus_sreg.
15164         * config/arm/arm-fixed.md: Change type of non-dsp instructions
15165         from alu_reg to alu_sreg.  Change type of dsp instructions from
15166         alu_reg to alu_dsp_reg.
15167         * config/arm/thumb1.md: Likewise.
15168         * config/arm/thumb2.md: Likewise.
15169         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
15170         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
15171         with alu_sreg and alus_sreg.
15172         * config/arm/arm1026ejs.md (alu_op): Likewise.
15173         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
15174         * config/arm/arm926ejs.md (9_alu_op): Likewise.
15175         * config/arm/fa526.md (526_alu_op): Likewise.
15176         * config/arm/fa606te.md (606te_alu_op): Likewise.
15177         * config/arm/fa626te.md (626te_alu_op): Likewise.
15178         * config/arm/fa726te.md (726te_alu_op): Likewise.
15179         * config/arm/fmp626.md (mp626_alu_op): Likewise.
15180         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
15181         alu_sreg, alu_dsp_reg and alus_sreg.
15182         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
15183         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
15184         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
15185         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
15186         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
15187         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
15188         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
15189         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
15190         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
15191         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
15192         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
15193         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
15194         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
15195         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
15196         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
15197         alus_reg to alus_sreg.
15198
15199 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
15200
15201         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
15202         infinity format.
15203
15204 2014-07-17  Richard Biener  <rguenther@suse.de>
15205
15206         PR rtl-optimization/61801
15207         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
15208         don't set reg_pending_barrier if it appears in a debug-insn.
15209
15210 2014-07-16  DJ Delorie  <dj@redhat.com>
15211
15212         * config/rx/rx.c (rx_option_override): Fix alignment values.
15213         (rx_align_for_label): Likewise.
15214
15215 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
15216
15217         PR target/61737.
15218         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
15219         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
15220         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
15221         functions.
15222         (cris_print_index, cris_print_operand, cris_constant_index_p)
15223         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
15224         (cris_address_cost): Ditto last CONSTANT_P.
15225         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
15226         callers changed.  Yield cris_offsettable_symbol for non-PIC
15227         constant symbolic expressions including labels.  Yield cris_unspec
15228         for all unspecs.
15229         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
15230         target to pic_offset_table_rtx for calls that will likely go
15231         through PLT, const0_rtx when they can't.  All callers changed.
15232         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
15233         symbolic expressions to be PICified.  Remove second, redundant,
15234         assert on can_create_pseudo_p returning non-zero.  Use
15235         replace_equiv_address_nv, not replace_equiv_address, for final
15236         operand update.
15237         * config/cris/cris.md ("movsi"): Move variable t to pattern
15238         toplevel. Adjust assert for new cris_symbol_type member.  Use
15239         CONSTANT_P instead of CONSTANT_ADDRESS_P.
15240         ("*movsi_internal") <case 9>: Make check for valid unspec operands
15241         for lapc stricter.
15242         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
15243         ("call", "call_value"): Use second incoming operand as a marker
15244         for pic-offset-table-register being used.
15245         ("*expanded_call_non_v32", "*expanded_call_v32")
15246         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
15247         second incoming operand to CALL, match cris_call_type_marker.
15248         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
15249         ("*expanded_call_side"): Ditto.  Fix typo in comment.
15250         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
15251         CONSTANT_P.
15252         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
15253         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
15254         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
15255         users changed.  Add members cris_offsettable_symbol and cris_unspec.
15256         (cris_symbol_type): Rename from cris_pic_symbol_type.
15257         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
15258         just CONSTANT_P.
15259         * config/cris/cris-protos.h (cris_symbol_type_of,
15260         cris_expand_pic_call_address): Adjust prototypes.
15261         (cris_legitimate_constant_p): New prototype.
15262
15263         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
15264         an existing tmake_file.  Don't add t-slibgcc and t-linux.
15265
15266 2014-07-17  Jason Merrill  <jason@redhat.com>
15267
15268         PR c++/61623
15269         * symtab.c (symtab_remove_from_same_comdat_group): Also
15270         set_comdat_group to NULL_TREE.
15271         (verify_symtab): Fix diagnostic.
15272
15273 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
15274
15275         PR target/61662
15276         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
15277
15278 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
15279
15280         Support location tracking for built-in macro tokens
15281         * input.h (is_location_from_builtin_token): New function declaration.
15282         * input.c (is_location_from_builtin_token): New function definition.
15283         * toplev.c (general_init): Tell libcpp what the pre-defined
15284         spelling location for built-in tokens is.
15285
15286 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
15287
15288         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
15289         on the FUNCTION_DECL.
15290
15291 2014-07-16  Richard Biener  <rguenther@suse.de>
15292
15293         PR other/61782
15294         * doc/extend.texi (always_inline): Clarify.
15295
15296 2014-07-15  Eric Christopher  <echristo@gmail.com>
15297
15298         * doc/invoke.texi (Link Options): Document -z option.
15299
15300 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
15301
15302         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
15303         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
15304
15305 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
15306
15307         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
15308
15309 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
15310
15311         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
15312         varpool_assemble_decl.
15313         * varpool.c (varpool_assemble_decl): Assert that node->definition is
15314         true.
15315
15316 2014-07-15  Michael Matz  <matz@suse.de>
15317
15318         PR rtl-optimization/61772
15319         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
15320
15321 2014-07-15  Richard Biener  <rguenther@suse.de>
15322
15323         * opts.c (default_options_table): Disable bit-ccp at -Og.
15324
15325 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
15326
15327         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
15328
15329 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
15330
15331         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
15332         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
15333         call langhook for unknown declaration.
15334         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
15335         * tree.h (DECL_ARGUMENTS): Update.
15336         * print-tree.c (print_node): Update.
15337         * tree-core.h (tree_decl_non_common): Remove arguments.
15338         (tree_function_decl): Add arguments.
15339
15340 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
15341
15342         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
15343
15344 2014-07-14  Richard Biener  <rguenther@suse.de>
15345
15346         PR tree-optimization/61779
15347         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
15348         simplifying a condition.
15349
15350 2014-07-14  Richard Biener  <rguenther@suse.de>
15351
15352         * builtins.c (c_strlen): Make only_value == 2 really only
15353         affect warning generation.
15354
15355 2014-07-14  Richard Biener  <rguenther@suse.de>
15356
15357         PR tree-optimization/61757
15358         PR tree-optimization/61783
15359         PR tree-optimization/61787
15360         * tree-ssa-dom.c (record_equality): Revert canonicalization
15361         change and add comment.
15362         (propagate_rhs_into_lhs): Revert previous fix, removing
15363         loop depth restriction again.
15364
15365 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15366
15367         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
15368         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
15369         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
15370         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
15371         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
15372         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
15373         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
15374
15375 2014-07-14  Richard Biener  <rguenther@suse.de>
15376
15377         * cgraph.h (decl_in_symtab_p): Make inline.
15378
15379 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
15380
15381         PR middle-end/61294
15382         * doc/invoke.texi (-Wmemset-transposed-args): Document.
15383
15384         PR target/61656
15385         * config/i386/i386.c (classify_argument): Don't merge classes above
15386         number of words.
15387
15388 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
15389
15390         * cgraph.h (symtab_node): Add nonzero_address.
15391         (decl_in_symtab_p): Break out from ...
15392         (symtab_get_node): ... here.
15393         * fold-const.c: Include cgraph.h
15394         (tree_single_nonzero_warnv_p): Use symtab to determine
15395         if symbol is non-zero.
15396         * symtab.c (symtab_node::nonzero_address): New method.
15397
15398 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
15399
15400         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
15401         forgotten in previous commit.
15402
15403 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
15404
15405         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
15406         on builtin types.
15407         * ipa-devirt.c: Include stor-layout.h and intl.h
15408         (odr_subtypes_equivalent_p): New function.
15409         (warn_odr): New function.
15410         (warn_type_mismatch): New function.
15411         (odr_types_equivalent_p): New function.
15412         (add_type_duplicate): Use it.
15413         * common.opt (Wodr): New flag.
15414         * doc/invoke.texi (Wodr): Document new warning.
15415
15416 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
15417
15418         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
15419         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
15420         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
15421         (varpool_get_constructor): Push CTORS_IN timevar.
15422         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
15423
15424 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
15425
15426         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
15427         Remove VOID_FTYPE_PUSHORT.
15428         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
15429         Change code to USHORT_FTYPE_VOID.
15430         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
15431         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
15432         (ix86_atomic_assign_expand_fenv): Update for
15433         __builtin_ia32_fnstsw changes.
15434         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
15435         (fnstsw): Change operand 0 to nonimmediate operand.
15436
15437 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
15438
15439         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
15440         (varpool_get_constructor): New function.
15441         (varpool_ctor_useable_for_folding_p): Break out from ...
15442         (ctor_for_folding): ... here; use varpool_get_constructor.
15443         (varpool_assemble_decl): Likewise.
15444         * lto-streamer.h (struct output_block): Turn cgraph_node
15445         to symbol filed.
15446         (lto_input_variable_constructor): Declare.
15447         * ipa-visibility.c (function_and_variable_visibility): Use
15448         varpool_get_constructor.
15449         * cgraph.h (varpool_get_constructor): Declare.
15450         (varpool_ctor_useable_for_folding_p): New function.
15451         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
15452         parameter; return error_mark_node for non-trivial constructors.
15453         (lto_write_tree_1, DFS_write_tree): Update use of
15454         get_symbol_initial_value.
15455         (output_function): Update initialization of symbol.
15456         (output_constructor): New function.
15457         (copy_function): Rename to ..
15458         (copy_function_or_variable): ... this one; handle vars too.
15459         (lto_output): Output variable sections.
15460         * lto-streamer-in.c (input_constructor): New function.
15461         (lto_read_body): Rename from ...
15462         (lto_read_body_or_constructor): ... this one; handle vars too.
15463         (lto_input_variable_constructor): New function.
15464         * ipa-prop.c (ipa_prop_write_jump_functions,
15465         ipa_prop_write_all_agg_replacement): Update.
15466         * lto-cgraph.c (compute_ltrans_boundary): Use it.
15467         (output_cgraph_opt_summary): Set symbol to NULL.
15468
15469 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
15470
15471         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
15472         non-polymorphic types.
15473         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
15474         * ipa-devirt.c (types_same_for_odr): Do not explode when one
15475         of types is not polymorphic.
15476
15477 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
15478
15479         * lra-constraints.c (remove_inheritance_pseudos): Process
15480         destination pseudo too.
15481
15482 2014-07-11  Rong Xu  <xur@google.com>
15483
15484         * gcov-tool.c (gcov_output_files): Fix build error introduced in
15485         commit r212448.
15486
15487 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
15488
15489         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
15490         * config/avr/avr-devices.c (AVR_MCU): Same.
15491         (avr_mcu_types): add text start value to end of device list.
15492         * config/avr/avr-mcus.def: Add text section start for all devices.
15493         (ata5782): Add new avr5 device.
15494         (ata5831): Same.
15495         * config/avr/avr-tables.opt: Regenerate.
15496         * config/avr/avr.h: Add declaration for text section start handler.
15497         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
15498         SPEC functions.
15499         (LINK_SPEC): Include text section start handler to linker spec.
15500         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
15501         pass -Ttext option to linker if the text section start for the device
15502         is not zero.
15503         * config/avr/t-multilib: Regenerate.
15504         * doc/avr-mmcu.texi: Regenerate.
15505
15506 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
15507
15508         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
15509         * config/rs6000/aix52.h (LINK_SPEC): Same.
15510         * config/rs6000/aix53.h (LINK_SPEC): Same.
15511         * config/rs6000/aix61.h (LINK_SPEC): Same.
15512         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
15513
15514 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
15515
15516         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
15517         (graphite_verify): New function.
15518         (ivs_params_clear): New function.
15519         (gcc_expression_from_isl_ast_expr_id): New function.
15520         (gcc_expression_from_isl_expr_int): New function.
15521         (binary_op_to_tree): New function.
15522         (ternary_op_to_tree): New function.
15523         (unary_op_to_tree): New function.
15524         (nary_op_to_tree): New function.
15525         (gcc_expression_from_isl_expr_op): New function.
15526         (gcc_expression_from_isl_expression): New function.
15527         (graphite_create_new_loop): New function.
15528         (translate_isl_ast_for_loop): New function.
15529         (get_upper_bound): New function.
15530         (graphite_create_new_loop_guard): New function.
15531         (translate_isl_ast_node_for): New function.
15532         (translate_isl_ast): New function.
15533         (add_parameters_to_ivs_params): New function.
15534         (scop_to_isl_ast): New parameter ip.
15535         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
15536
15537 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
15538
15539         * config/xtensa/predicates.md (call expander): Update for
15540         DECL_SECTION_NAME being string.
15541
15542 2014-07-11  Richard Biener  <rguenther@suse.de>
15543
15544         PR middle-end/61473
15545         * builtins.c (fold_builtin_memory_op): Inline memory moves that
15546         can be implemented with a single load followed by a single store.
15547         (c_strlen): Only warn when only_value is not 2.
15548
15549 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
15550
15551         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
15552
15553 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
15554
15555         PR target/61561
15556         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
15557         (*movhi_bytes): Likewise.
15558         (*arm_movqi_insn): Likewise.
15559
15560 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
15561
15562         PR target/56858
15563         * config/alpha/alpha.c: Include tree-pass.h, context.h
15564         and pass_manager.h.
15565         (pass_data_handle_trap_shadows): New pass.
15566         (pass_handle_trap_shadows::gate): New pass gate function.
15567         (make_pass_handle_trap_shadows): New function.
15568         (rest_of_handle_trap_shadows): Ditto.
15569
15570         (alpha_align_insns_1): Rename from alpha_align_insns.
15571         (pass_data_align_insns): New pass.
15572         (pass_align_insns::gate): New pass gate function.
15573         (make_pass_aling_insns): New function.
15574         (rest_of_align_insns): Ditto.
15575         (alpha_align_insns): Ditto.
15576
15577         (alpha_option_override): Declare handle_trap_shadows info
15578         and align_insns_info.  Register handle_trap_shadows and align_insns
15579         passes here.
15580         (alpha_reorg): Do not call alpha_trap_shadows and
15581         alpha_align_insn from here.
15582
15583         (alpha_pad_function_end): Do not skip BARRIERs.
15584
15585 2014-07-10  Rong Xu  <xur@google.com>
15586
15587         Add gcov-tool: an offline gcda profile processing tool support.
15588         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
15589         (gcov_is_error): Ditto.
15590         (gcov_read_string): Ditto.
15591         (gcov_read_sync): Ditto.
15592         * gcov-io.h: Move counter defines to gcov-counter.def.
15593         * gcov-dump.c (tag_counters): Use gcov-counter.def.
15594         * coverage.c: Ditto.
15595         * gcov-tool.c: Offline gcda profile processing tool.
15596         (unlink_gcda_file): Remove one gcda file.
15597         (unlink_profile_dir): Remove gcda files from the profile path.
15598         (gcov_output_files): Output gcda files to an output dir.
15599         (profile_merge): Merge two profiles in directory.
15600         (print_merge_usage_message): Print merge usage.
15601         (merge_usage): Print merge usage and exit.
15602         (do_merge): Driver for profile merge sub-command.
15603         (profile_rewrite): Rewrite profile.
15604         (print_rewrite_usage_message): Print rewrite usage.
15605         (rewrite_usage): Print rewrite usage and exit.
15606         (do_rewrite): Driver for profile rewrite sub-command.
15607         (print_usage): Print gcov-info usage and exit.
15608         (print_version): Print gcov-info version.
15609         (process_args): Process arguments.
15610         (main): Main routine for gcov-tool.
15611         * Makefile.in: Build and install gcov-tool.
15612         * gcov-counter.def: New file split from gcov-io.h.
15613         * doc/gcc.texi: Include gcov-tool.texi.
15614         * doc/gcov-tool.texi: Document for gcov-tool.
15615
15616 2014-07-10  Richard Biener  <rguenther@suse.de>
15617
15618         PR tree-optimization/61757
15619         * tree-ssa-dom.c (loop_depth_of_name): Restore.
15620         (propagate_rhs_into_lhs): Revert part of last change.
15621
15622 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
15623
15624         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
15625         FUNCTION_DECLs.
15626
15627 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
15628
15629         PR middle-end/53590
15630         * function.c (allocate_struct_function): Revert r188667 change.
15631
15632         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
15633
15634 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
15635
15636         * doc/install.texi: Remove links to defunct package providers for
15637         Solaris.
15638
15639 2014-07-09  Tom de Vries  <tom@codesourcery.com>
15640
15641         * final.c (get_call_fndecl): Declare.
15642         (self_recursive_call_p): New function.
15643         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
15644
15645 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
15646
15647         * ipa-devirt.c (record_node): Walk through aliases.
15648
15649 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
15650
15651         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
15652
15653 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
15654
15655         Revert:
15656         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
15657
15658 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
15659
15660         * ipa-visibility.c (function_and_variable_visibility): Remove
15661         temporary hack disabling local aliases on AIX.
15662
15663 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
15664
15665         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
15666         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
15667
15668 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
15669
15670         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
15671         * rs6000/rs6000.c: Inline output of .set instruction.
15672         (declare_alias_data): New struct.
15673         (rs6000_declare_alias): New function.
15674         (rs6000_xcoff_declare_function_name): Use it.
15675         (rs6000_xcoff_declare_object_name): New function.
15676         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
15677         (ASM_OUTPUT_DEF): Turn to empty definition.
15678
15679 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
15680
15681         PR bootstrap/61679
15682         * hash-table.h: use hash_table::value_type instead of
15683         Descriptor::value_type in the return types of several methods.
15684
15685 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
15686
15687         * tree-pass.h (pass_data): Remove has_execute member.
15688         * passes.c (execute_one_pass): Don't check pass->has_execute.
15689         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
15690         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
15691         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
15692         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
15693         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
15694         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
15695         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
15696         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
15697         gimple-low.c, gimple-ssa-isolate-paths.c,
15698         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
15699         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
15700         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
15701         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
15702         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
15703         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
15704         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
15705         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
15706         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
15707         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
15708         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
15709         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
15710         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
15711         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
15712         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
15713         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
15714         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
15715         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
15716         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
15717         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
15718         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
15719         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
15720         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
15721         web.c: Remove initializer for pass_data::has_execute.
15722
15723 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
15724
15725         * graphite-htab.h: Use hash_map instead of hash_table.
15726         * graphite-clast-to-gimple.c: Adjust.
15727         * passes.c: Use hash_map instead of hash_table.
15728         * sese.c: Likewise.
15729         * sese.h: Remove now unused code.
15730
15731 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
15732
15733         PR target/61599
15734         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
15735         than zero.
15736
15737 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
15738
15739         PR rtl-optimization/61673
15740         * combine.c (simplify_comparison): Test just mode's sign bit
15741         in tmode rather than the sign bit and any bits above it.
15742
15743 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
15744
15745         * graphite-isl-ast-to-gimple.c (generate_isl_context):
15746         Add __isl_give to the declaration.
15747         (generate_isl_schedule): Likewise.
15748         (scop_to_isl_ast): Likewise.
15749
15750 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15751
15752         * config/arm/arm.c (cortexa5_extra_costs): New table.
15753         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
15754
15755 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
15756
15757         PR tree-optimization/61725
15758         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
15759         range, use range_includes_zerop_p instead of integer_zerop on
15760         vr0->min, only use log2 of max if min is not negative.
15761
15762 2014-07-08  Richard Biener  <rguenther@suse.de>
15763
15764         * tree-ssa-dom.h (loop_depth_of_name): Remove.
15765         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
15766         restriction on loop depth difference.
15767         (record_equality): Likewise.
15768         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
15769         (loop_depth_of_name): Remove.
15770         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
15771         restriction on loop depth difference.
15772         (init_copy_prop): Likewise.
15773
15774 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
15775
15776         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
15777         parameter.
15778         (walk_aliased_vdefs): Likewise.
15779         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
15780         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
15781         (detect_type_change_from_memory_writes): Check if entry was reached.
15782
15783 2014-07-08  Richard Biener  <rguenther@suse.de>
15784
15785         PR tree-optimization/61681
15786         * tree-ssa-structalias.c (find_what_var_points_to): Expand
15787         NONLOCAL inside ESCAPED.
15788
15789 2014-07-08  Richard Biener  <rguenther@suse.de>
15790
15791         PR tree-optimization/61680
15792         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
15793         Handle properly all read-write dependences with group accesses.
15794
15795 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
15796
15797         PR tree-optimization/61576
15798         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
15799         block containing reduction statement is predecessor of phi basi block.
15800
15801 2014-07-08  Marek Polacek  <polacek@redhat.com>
15802
15803         PR c/60226
15804         * fold-const.c (round_up_loc): Change the parameter type.
15805         Remove assert.
15806         * fold-const.h (round_up_loc): Adjust declaration.
15807         * stor-layout.c (finalize_record_size): Check for too large types.
15808
15809 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
15810
15811         * symtab.c: Include calls.h.
15812         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
15813
15814 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
15815
15816         * config/rs6000/rs6000.c (output_vec_const_move): Handle
15817         little-endian code generation.
15818         * config/rs6000/spe.md (spe_evmergehi): Rename to...
15819         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
15820         (spe_evmergehilo): Rename to...
15821         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
15822         (spe_evmergelo): Rename to...
15823         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
15824         (spe_evmergelohi): Rename to...
15825         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
15826         (spe_evmergehi, spe_evmergehilo): New expanders.
15827         (spe_evmergelo, spe_evmergelohi): Likewise.
15828         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
15829         (*frob_tf_ti): Likewise.
15830         (*frob_<mode>_di_2): Likewise.
15831         (*frob_tf_di_8_2): Likewise.
15832         (*frob_di_<mode>): Likewise.
15833         (*frob_ti_tf): Likewise.
15834         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
15835         (*frob_ti_<mode>_8_2): Likewise.
15836         (*frob_ti_tf_2): Likewise.
15837         (mov_si<mode>_e500_subreg0): Rename to...
15838         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
15839         endianness only.
15840         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
15841         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
15842         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
15843         the big endianness only.
15844         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
15845         (*mov_si<mode>_e500_subreg0_2): Rename to...
15846         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
15847         big big endianness only.
15848         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
15849         (*mov_si<mode>_e500_subreg4): Rename to...
15850         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
15851         endianness only.
15852         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
15853         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
15854         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
15855         the big endianness only.
15856         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
15857         pattern.
15858         (*mov_si<mode>_e500_subreg4_2): Rename to...
15859         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
15860         endianness only.
15861         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
15862         (*mov_sitf_e500_subreg8): Rename to...
15863         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
15864         endianness only.
15865         (*mov_sitf_e500_subreg8_le): New instruction pattern.
15866         (*mov_sitf_e500_subreg8_2): Rename to...
15867         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
15868         endianness only.
15869         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
15870         (*mov_sitf_e500_subreg12): Rename to...
15871         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
15872         endianness only.
15873         (*mov_sitf_e500_subreg12_le): New instruction pattern.
15874         (*mov_sitf_e500_subreg12_2): Rename to...
15875         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
15876         endianness only.
15877         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
15878
15879 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
15880
15881         * asan.c (instrument_strlen_call): Do not instrument first byte
15882         in strlen if already instrumented.
15883
15884 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15885
15886         * config/arm/arm.opt (mwords-little-endian): Delete.
15887         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
15888         of TARGET_LITTLE_WORDS.
15889         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
15890         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
15891         warning.
15892         * doc/invoke.texi: Remove references to -mwords-little-endian.
15893
15894 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
15895
15896         * expmed.c (struct init_expmed_rtl): Change all fields but
15897         pow2 and cint from struct rtx_def to rtx.
15898         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
15899         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
15900         at the end again.
15901
15902 2014-07-06  Marek Polacek  <polacek@redhat.com>
15903
15904         PR c/6940
15905         * doc/invoke.texi: Document -Wsizeof-array-argument.
15906
15907 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
15908
15909         * wide-int.h (wide_int_storage): Change declaration from struct
15910         to class.
15911
15912 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
15913
15914         * cgraph.c (cgraph_create_indirect_edge): Update call of
15915         get_polymorphic_call_info.
15916         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
15917         (possible_polymorphic_call_targets): Add parameter call.
15918         (decl_maybe_in_construction_p): New predicate.
15919         (get_polymorphic_call_info): Add parameter call;
15920         use decl_maybe_in_construction_p.
15921         * gimple-fold.c (fold_gimple_assign): Update use of
15922         possible_polymorphic_call_targets.
15923         (gimple_fold_call): Likewise.
15924         * ipa-prop.c: Inlcude calls.h
15925         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
15926         (param_type_may_change_p): New predicate.
15927         (detect_type_change_from_memory_writes): Break out from ...
15928         (detect_type_change): ... this one; use param_type_may_change_p.
15929         (detect_type_change_ssa): Use param_type_may_change_p.
15930         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
15931
15932 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
15933
15934         PR target/49423
15935         * config/arm/arm-protos.h (arm_legitimate_address_p,
15936         arm_is_constant_pool_ref): Add prototypes.
15937         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
15938         (arm_is_constant_pool_ref) New function.
15939         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
15940         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
15941         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
15942         operand. Remove pool_range and neg_pool_range attributes.
15943         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
15944         pool_range and neg_pool_range attributes.
15945         * config/arm/constraints.md (Uh): New constraint.
15946         (Uq): Don't allow constant pool references.
15947
15948 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
15949
15950         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
15951         (move_lo_quad_internal_be_<mode>): Likewise.
15952         (move_lo_quad_<mode>): Convert to define_expand.
15953         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
15954         (aarch64_simd_move_hi_quad_be_<mode>): New.
15955         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
15956         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
15957         (aarch64_combinez_be<mode>): New.
15958         (aarch64_combine<mode>): Convert to define_expand.
15959         (aarch64_combine_internal<mode>): New.
15960         (aarch64_simd_combine<mode>): Remove bogus RTL description.
15961
15962 2014-07-04  Tom de Vries  <tom@codesourcery.com>
15963
15964         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
15965         combination of earlyclobber and read/write modifiers.
15966
15967 2014-07-04  Tom de Vries  <tom@codesourcery.com>
15968
15969         * config/aarch64/aarch64-simd.md
15970         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
15971
15972 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
15973
15974         PR target/61714
15975         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
15976
15977 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
15978
15979         PR middle-end/61654
15980         * cgraphunit.c (expand_thunk): Call free_dominance_info.
15981
15982         PR tree-optimization/61684
15983         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
15984         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
15985
15986 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
15987             Kito Cheng  <kito@0xlab.org>
15988             Monk Chiang  <sh.chiang04@gmail.com>
15989
15990         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
15991         (nds32_symbol_load_store_p): Move to ...
15992         (nds32_fp_as_gp_check_available): Move to ...
15993         * config/nds32/nds32-fp-as-gp.c: ... here.
15994         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
15995         extern declaration.
15996
15997 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
15998             Kito Cheng  <kito@0xlab.org>
15999             Monk Chiang  <sh.chiang04@gmail.com>
16000
16001         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
16002         (nds32_expand_store_multiple): Move to ...
16003         (nds32_expand_movmemqi): Move to ...
16004         * config/nds32/nds32-memory-manipulation.c: ... here.
16005
16006 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
16007             Kito Cheng  <kito@0xlab.org>
16008             Monk Chiang  <sh.chiang04@gmail.com>
16009
16010         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
16011         (nds32_output_casesi_pc_relative): Move to ...
16012         (nds32_output_casesi): Move to ...
16013         (nds32_mem_format): Move to ...
16014         (nds32_output_16bit_store): Move to ...
16015         (nds32_output_16bit_load): Move to ...
16016         (nds32_output_32bit_store): Move to ...
16017         (nds32_output_32bit_load): Move to ...
16018         (nds32_output_32bit_load_s): Move to ...
16019         (nds32_output_stack_push): Move to ...
16020         (nds32_output_stack_pop): Move to ...
16021         * config/nds32/nds32-md-auxiliary.c: ... here.
16022
16023 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
16024             Ling-Hua Tseng  <uranus@tinlans.org>
16025
16026         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
16027         the purpose of this file.
16028
16029 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
16030             Kito Cheng  <kito@0xlab.org>
16031             Monk Chiang  <sh.chiang04@gmail.com>
16032
16033         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
16034         (nds32_address_cost): Move implementation to ...
16035         * config/nds32/nds32-cost.c: ... here.
16036         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
16037         (nds32_address_cost_impl): Declare.
16038
16039 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
16040             Kito Cheng  <kito@0xlab.org>
16041             Monk Chiang  <sh.chiang04@gmail.com>
16042
16043         * config/nds32/nds32.c
16044         (nds32_consecutive_registers_load_store_p): Move to ...
16045         (nds32_valid_multiple_load_store): Move to ...
16046         (nds32_valid_stack_push_pop): Move to ...
16047         (nds32_can_use_bclr_p): Move to ...
16048         (nds32_can_use_bset_p): Move to ...
16049         (nds32_can_use_btgl_p): Move to ...
16050         (nds32_can_use_bitci_p): Move to ...
16051         * config/nds32/nds32-predicates.c: ... here.
16052
16053 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
16054             Kito Cheng  <kito@0xlab.org>
16055             Monk Chiang  <sh.chiang04@gmail.com>
16056
16057         * config/nds32/nds32.c
16058         (nds32_expand_builtin_null_ftype_reg): Move to ...
16059         (nds32_expand_builtin_reg_ftype_imm): Move to ...
16060         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
16061         (nds32_init_builtins): Move implementation to ...
16062         (nds32_expand_builtin): Move implementation to ...
16063         * config/nds32/nds32-intrinsic.c: ... here.
16064         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
16065         (nds32_expand_builtin_impl): Declare.
16066
16067 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
16068             Kito Cheng  <kito@0xlab.org>
16069             Monk Chiang  <sh.chiang04@gmail.com>
16070
16071         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
16072         (nds32_emit_section_tail_template): Move to ...
16073         (nds32_emit_isr_jmptbl_section): Move to ...
16074         (nds32_emit_isr_vector_section): Move to ...
16075         (nds32_emit_isr_reset_conten): Move to ...
16076         (nds32_check_isr_attrs_conflict): Move to ...
16077         (nds32_construct_isr_vectors_information): Move to ...
16078         (nds32_asm_file_start): Move implementation to ...
16079         (nds32_asm_file_end): Move implementation to ...
16080         * config/nds32/nds32-isr.c: ... here.
16081         * config/nds32/nds32-protos.h
16082         (nds32_check_isr_attrs_conflict): Declare.
16083         (nds32_construct_isr_vectors_information): Declare.
16084         (nds32_asm_file_start_for_isr): Declare.
16085         (nds32_asm_file_end_for_isr): Declare.
16086
16087 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
16088             Kito Cheng  <kito@0xlab.org>
16089             Monk Chiang  <sh.chiang04@gmail.com>
16090
16091         * config.gcc (nds32*): Add new modules to extra_objs.
16092         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
16093         (nds32be-*-*): Likewise.
16094         * config/nds32/nds32-cost.c: New file.
16095         * config/nds32/nds32-fp-as-gp.c: New file.
16096         * config/nds32/nds32-intrinsic.c: New file.
16097         * config/nds32/nds32-isr.c: New file.
16098         * config/nds32/nds32-md-auxiliary.c: New file.
16099         * config/nds32/nds32-memory-manipulation.c: New file.
16100         * config/nds32/nds32-pipelines-auxiliary.c: New file.
16101         * config/nds32/nds32-predicates.c: New file.
16102         * config/nds32/t-nds32: New file.
16103
16104 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
16105
16106         PR tree-optimization/61682
16107         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
16108         using cases and when one of the operands is equal to 1.
16109
16110 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
16111
16112         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
16113         ashr<mode>3): Correct mode of operands[2].
16114         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
16115         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
16116         Correct mode of operands[2].  Fix split condition.
16117
16118 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
16119
16120         * arm.md (arch): Add armv6_or_vfpv3.
16121         (arch_enabled): Add test for the above.
16122         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
16123         on VFP9.
16124         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
16125
16126 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
16127
16128         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
16129         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
16130         HWI 1 and negate the unsigned value.
16131         * expmed.c (expand_sdiv_pow2): For modes wider than word always
16132         use AND instead of shift.
16133         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
16134
16135 2014-07-03  Marek Polacek  <polacek@redhat.com>
16136
16137         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
16138         (-fsanitize=float-divide-by-zero): Move to the table with
16139         -fsanitize=undefined suboptions.
16140         (-fsanitize=float-cast-overflow): Likewise.
16141
16142 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
16143
16144         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
16145         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
16146         endianness.
16147
16148 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
16149
16150         * loop-invariant.c (struct invariant): Add a new member: eqno;
16151         (find_identical_invariants): Update eqno;
16152         (create_new_invariant): Init eqno;
16153         (get_inv_cost): Compute comp_cost with eqno;
16154
16155 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
16156
16157         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
16158         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
16159         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
16160         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
16161         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
16162
16163 2014-07-02  Christian Bruel  <christian.bruel@st.com>
16164
16165         PR target/29349
16166         PR target/53513
16167         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
16168         (make_preds_opaque): Delete.
16169         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
16170         (commit_mode_sets): New function.
16171         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
16172         Process all modes at once.
16173         * basic-block.h (pre_edge_lcm_avs): Declare.
16174         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
16175         Call clear_aux_for_edges. Fix comments.
16176         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
16177         (pre_edge_rev_lcm): Idem.
16178         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
16179         parameter.
16180         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
16181         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
16182         Idem.
16183         * config/i386/i386.c (x96_emit_mode_set): Idem.
16184         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
16185         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
16186         (fpscr_toggle) Disallow from delay slot.
16187         * target.def (emit_mode_set): Add prev_mode parameter.
16188         * doc/tm.texi: Regenerate.
16189
16190 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16191
16192         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
16193         variable i.
16194
16195 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
16196
16197         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
16198         vtable_pointer_value_to_vtable): Constify.
16199         (contains_polymorphic_type_p): Declare.
16200         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
16201         vtable_pointer_value_to_vtable): Constify.
16202         (contains_polymorphic_type_p): New predicate.
16203         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
16204         polymorphic types.
16205         (ipa_set_ancestor_jf): Likewise.
16206         (detect_type_change): Return false in easy cases.
16207         (compute_complex_assign_jump_func): Require type to contain
16208         polymorphic type.
16209         (compute_known_type_jump_func): Likewise.
16210
16211 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
16212
16213         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
16214         Remove.
16215         (type_in_anonymous_namespace_p): Constify argument.
16216         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
16217         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
16218         (main_odr_variant): New function.
16219         (hash_type_name): Make static; update assert; do not ICE on
16220         non-records.
16221         (types_same_for_odr): Bring here from tree.c; simplify and remove
16222         old structural comparing code that doesn't work for templates.
16223         (odr_hasher::equal): Update assert.
16224         (add_type_duplicate): Return true when bases should be computed;
16225         replace incomplete loader by complete; do not output duplicated
16226         warnings; do not ICE on non-records; set odr_violated flag.
16227         (get_odr_type): Be ready to replace incomplete type by complete
16228         one; work on ODR variants instead of main variants; reorder item
16229         in array so bases have still smaller indexes.
16230         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
16231         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
16232
16233 2014-07-01  Cary Coutant  <ccoutant@google.com>
16234
16235         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
16236         lookup.
16237         (resolve_addr_in_expr): When replacing the rtx in a location list
16238         entry, get a new address table entry.
16239         (dwarf2out_finish): Call index_location_lists even if there are no
16240         addr_index_table entries yet.
16241
16242 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
16243
16244         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
16245         change for not being obvious.
16246
16247 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
16248
16249         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
16250         unused argument.
16251
16252 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16253
16254         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
16255         (vcagt_f64): Likewise.
16256         (vcale_f64): Likewise.
16257         (vcaled_f64): Likewise.
16258         (vcales_f32): Likewise.
16259         (vcalt_f64): Likewise.
16260         (vcaltd_f64): Likewise.
16261         (vcalts_f32): Likewise.
16262
16263 2014-07-01  Marek Polacek  <polacek@redhat.com>
16264
16265         * doc/invoke.texi: Document -Wint-conversion.
16266
16267 2014-07-01  Marek Polacek  <polacek@redhat.com>
16268
16269         PR c/58286
16270         * doc/invoke.texi: Document -Wincompatible-pointer-types.
16271
16272 2014-07-01  Martin Liska  <mliska@suse.cz>
16273
16274         IPA REF alias refactoring
16275         * cgraph.h (iterate_direct_aliases): New function.
16276         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
16277         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
16278         FOR_EACH_ALIAS added.
16279         (cgraph_for_node_and_aliases): Likewise.
16280         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
16281         * ipa-inline.c (reset_edge_caches): Likewise.
16282         (update_caller_keys): Likewise.
16283         * trans-mem.c (ipa_tm_execute): Likewise.
16284         *varpool.c (varpool_analyze_node): Likewise.
16285         (varpool_for_node_and_aliases): Likewise.
16286         * ipa-ref.h (first_alias): New function.
16287         (last_alias): Likewise.
16288         (has_aliases_p): Likewise.
16289         * ipa-ref.c (ipa_ref::remove_reference): Removal function
16290         is sensitive to IPA_REF_ALIASes.
16291         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
16292         are put at the beginning of the list.
16293         (symtab_node::iterate_direct_aliases): New function.
16294
16295 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
16296
16297         Revert:
16298         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
16299         type is complete.
16300         (write_ts_type_common_tree_pointers): Do not stream fields not set
16301         for incomplete types; do not stream duplicated fields for variants;
16302         sanity check that variant and type match.
16303         (write_ts_type_non_common_tree_pointers): Likewise.
16304         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
16305         TYPE_SIZE whether type is complete.
16306         (lto_input_ts_type_common_tree_pointers): Do same changes as in
16307         write_ts_type_common_tree_pointers
16308         (lto_input_ts_type_non_common_tree_pointers): Likewise.
16309
16310 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
16311
16312         * var-tracking.c (add_stores): Return instead of asserting if old
16313         and new values for conditional store are the same.
16314
16315 2014-06-30  Richard Henderson  <rth@redhat.com>
16316
16317         PR rtl-opt/61608
16318         PR target/39284
16319         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
16320         the cfg if there were any changes.
16321         * passes.def: Revert move of peephole2 after reorder_blocks;
16322         move duplicate_computed_gotos before peephole2.
16323
16324 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
16325
16326         * except.c (emit_note_eh_region_end): New helper function.
16327         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
16328         emit EH_REGION_END note.
16329         * jump.c (cleanup_barriers): Do not split a call and its
16330         corresponding CALL_ARG_LOCATION note.
16331
16332 2014-06-30  Jeff Law  <law@redhat.com>
16333
16334         PR tree-optimization/61607
16335         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
16336         deeper into the SSA_NAME_VALUE chain.
16337
16338 2014-06-30  Marek Polacek  <polacek@redhat.com>
16339
16340         * convert.c (convert_to_integer): Don't instrument conversions if the
16341         function has no_sanitize_undefined attribute.
16342         * ubsan.c: Don't run the ubsan pass if the function has
16343         no_sanitize_undefined attribute.
16344
16345 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
16346
16347         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
16348         -fsanitize=undefined suboptions.
16349
16350 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
16351
16352         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
16353         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
16354         against bigendian and adjust indices.
16355
16356 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
16357
16358         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
16359
16360 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16361
16362         PR target/61633
16363         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
16364         Add alternative; make early clobber.  Adjust both split patterns
16365         to use operand 0 as the working register.
16366
16367 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
16368
16369         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
16370         as ira_object_id_map might be NULL, or 1.
16371
16372 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
16373
16374         * loop-invariant.c (get_inv_cost): Handle register class.
16375         (gain_for_invariant): Check the register pressure of the inv
16376         and its overlapped register class, other than all.
16377
16378 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
16379
16380         * doc/invoke.texi (Optimize Options): Fix descriptions of
16381         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
16382
16383 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
16384
16385         * doc/extend.texi (Function Attributes): Update 'naked' attribute
16386         documentation.
16387
16388 2014-06-29  Tobias Grosser <tobias@grosser.es>
16389
16390         PR bootstrap/61650
16391         * graphite-isl-ast-to-gimple.c: Add missing guards.
16392
16393 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
16394
16395         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
16396         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
16397         * flag-types.h: Add new enum fgraphite_generator.
16398         * graphite-isl-ast-to-gimple.c: New.
16399         * graphite-isl-ast-to-gimple.h: New.
16400         * graphite.c (graphite_transform_loops): Add choice of Graphite
16401         code generator, which depends on flag_graphite_code_gen.
16402
16403 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
16404
16405         * graphite-dependences.c (subtract_commutative_associative_deps):
16406         Add NULL checking of the following variables: must_raw_no_source,
16407         may_raw_no_source, must_war_no_source, may_war_no_source,
16408         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
16409         must_war, may_war, must_waw, may_waw.
16410
16411 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
16412
16413         * graphite-clast-to-gimple.c: gloog is renamed to
16414         graphite_regenerate_ast_cloog.  gloog_error is renamed to
16415         graphite_regenerate_error.
16416         * graphite-clast-to-gimple.h: The definition of the struct
16417         bb_pbb_def is moved to graphite-htab.h.
16418         Add inclusion of the hash-table.h.
16419         * graphite-htab.h: The declaration of the function gloog is moved
16420         to graphite-clast-to-gimple.h and renamed to
16421         graphite_regenerate_ast_cloog.
16422         * graphite.c (graphite_transform_loops): gloog is renamed
16423         to graphite_regenerate_ast_cloog.
16424
16425 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
16426
16427         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
16428         type is complete.
16429         (write_ts_type_common_tree_pointers): Do not stream fields not set
16430         for incomplete types; do not stream duplicated fields for variants;
16431         sanity check that variant and type match.
16432         (write_ts_type_non_common_tree_pointers): Likewise.
16433         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
16434         TYPE_SIZE whether type is complete.
16435         (lto_input_ts_type_common_tree_pointers): Do same changes as in
16436         write_ts_type_common_tree_pointers
16437         (lto_input_ts_type_non_common_tree_pointers): Likewise.
16438
16439 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
16440
16441         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
16442
16443 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
16444
16445         * tree-inline.c (remap_type_1): Do not duplicate fields
16446         that are shared in between type and its main variant.
16447
16448 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
16449
16450         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
16451         of the type.
16452         (ipa_set_ancestor_jf) Likewise.
16453         (check_stmt_for_type_change): Check that we work on main variant.
16454         (detect_type_change): Look into main variant.
16455         (compute_known_type_jump_func): Check that main variant has BINFO.
16456
16457 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
16458
16459         * ipa-devirt.c (set_type_binfo): New function.
16460         (add_type_duplicate): Use it.
16461         (get_odr_type): Sanity check that binfos points to main variants.
16462         (get_class_context): Be sure the context's outer_type is main variant.
16463         (contains_type_p): Walk main variant.
16464         (get_polymorphic_call_info_for_decl): Set outer_type to be
16465         main variant.
16466         (get_polymorphic_call_info): Likewise.
16467         (possible_polymorphic_call_targets): Sanity check that we operate
16468         on main variant.
16469
16470 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
16471
16472         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
16473
16474 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16475
16476         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
16477         accidental change due to wide-int branch merge.
16478
16479 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16480
16481         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
16482         compressed debug support.
16483         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
16484         * configure: Regenerate.
16485         * config.in: Regenerate.
16486         * common.opt (compressed_debug_sections): New enum.
16487         (gz, gz=): New options.
16488         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
16489         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
16490         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
16491         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
16492         LINK_COMPRESS_DEBUG_SPEC.
16493         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
16494         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
16495         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
16496         (Debugging Options): Document -gz[=type].
16497
16498 2014-06-27  Martin Jambor  <mjambor@suse.cz>
16499
16500         PR ipa/61160
16501         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
16502         args_to_skip, use those from node instead.  Copy args_to_skip and
16503         combined_args_to_skip from node to the new thunk.
16504         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
16505         (cgraph_create_virtual_clone): Moved computation of
16506         combined_args_to_skip...
16507         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
16508
16509 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
16510
16511         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
16512         redundant diagnostic machinary.
16513
16514 2014-06-27  Richard Biener  <rguenther@suse.de>
16515
16516         * tree-ssa-math-opts.c (bswap_replace): Fix
16517         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
16518
16519 2014-06-27  Martin Liska  <mliska@suse.cz>
16520
16521         * gimple.h (gimple_location_safe): New function introduced.
16522         * cgraphunit.c (walk_polymorphic_call_targets): Usage
16523         of gimple_location_safe replaces gimple_location.
16524         (gimple_fold_call): Likewise.
16525         * ipa-devirt.c (ipa_devirt): Likewise.
16526         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
16527         * ipa.c (walk_polymorphic_call_targets): Likewise.
16528         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
16529
16530 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
16531
16532         PR tree-optimization/57233
16533         PR tree-optimization/61299
16534         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
16535         functions.
16536         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
16537         would be lowered to scalar shifts, check if corresponding
16538         shifts and vector BIT_IOR_EXPR are supported and don't lower
16539         or lower just to narrower vector type in that case.
16540         * expmed.c (expand_shift_1): Fix up handling of vector
16541         shifts and rotates.
16542
16543 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
16544
16545         PR target/61586
16546         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
16547
16548 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
16549
16550         * doc/invoke.texi (-fsemantic-interposition): Document.
16551         * common.opt (fsemantic-interposition): New flag.
16552         * varasm.c (decl_replaceable_p): Use it.
16553
16554 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16555
16556         PR target/61542
16557         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
16558         extraction other than index 3.
16559
16560 2014-06-26  Teresa Johnson  <tejohnson@google.com>
16561
16562         * doc/invoke.texi: Fix typo.
16563         * dumpfile.c: Add support for documented -fdump-* options
16564         optimized/missed/note/optall.
16565
16566 2014-06-26  Martin Jambor  <mjambor@suse.cz>
16567
16568         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
16569         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
16570         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
16571         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
16572         * opts.c (default_options_optimization): Set
16573         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
16574         * doc/invoke.texi (allow-load-data-races)
16575         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
16576         (allow-store-data-races): Document the new default.
16577
16578 2014-06-26  Martin Jambor  <mjambor@suse.cz>
16579
16580         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
16581         renamed to ipa_impossible_devirt_target.  Fix typo.
16582         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
16583         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
16584         ipa_impossible_devirt_target.
16585
16586 2014-06-26  Richard Biener  <rguenther@suse.de>
16587
16588         PR tree-optimization/61607
16589         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
16590         explaining why we restrict copies on loop depth.
16591         * tree-ssa-dom.c (cprop_operand): Remove restriction on
16592         on loop depth.
16593         (record_equivalences_from_phis): Instead add it here.
16594
16595 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
16596
16597         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
16598         (LTO_WRAPPER_OBJS): New variable.
16599         (lto-wrapper$(exeext)): Use it.
16600         * collect2.c: Include "collect-utils.h".
16601         (verbose, debug): Remove variables.
16602         (at_file_supplied): No longer static.
16603         (tool_name): New variable.
16604         (do_wait, fork_execute, maybe_unlink): Don't declare.
16605         (tool_cleanup): No longer static.
16606         (notice): Remove function.
16607         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
16608         fork_execute calls.
16609         (collect_wait, do_wait, collect_execute): Remove functions.
16610         (maybe_unlink): No longer static.
16611         * collect2.h (verbose, debug): Don't declare.
16612         (at_file_supplied): Declare.
16613         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
16614         changed.
16615         (collect_execute): Replace with implementation from collect2, plus a
16616         new arg use_atfile.  All callers changed.
16617         (collect_wait): Replace with implementation from collect2.
16618         (maybe_unlink_file): Remove function.
16619         (fork_execute): Replace with implementation from collect2, plus a
16620         new arg use_atfile.  All callers changed.
16621         (do_wait): Add call to utils_cleanup to the error path.
16622         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
16623         (tool_cleanup): Adjust declarations.
16624         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
16625         * tlink.c: Include "collect-utils.h".
16626         (tlink_execute): New arg use_atfile.  All callers changed.
16627         (tlink_init, tlink_execute): Remove declarations.
16628
16629         * collect-utils.c (save_temps): New variable.
16630         (do_wait): Use it instead of debug.  Use fatal_error.
16631         * collect-utils.h (save_temps): Declare.
16632         * collect2.c (verbose): Rename from vflag.  All uses changed.
16633         (tool_cleanup): New function, copied from collect_atexit.
16634         (collect_atexit, handler): Just call it.
16635         * collect2.h (verbose): Declaration renamed from vflag.
16636         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
16637         debug.
16638
16639         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
16640         (lto-wrapper$(exeext)): Link with collect-utils.o.
16641         * collect-utils.c: New file.
16642         * collect-utils.h: New file.
16643         * lto-wrapper.c: Include "collect-utils.h".
16644         (args_name): Delete variable.
16645         (tool_name): New variable.
16646         (tool_cleanup): New function.
16647         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
16648         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
16649         (fork_execute): Remove functions.
16650
16651 2014-06-26  Nick Clifton  <nickc@redhat.com>
16652
16653         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
16654
16655         * doc/extend.texi (Function Attributes): Fix typo in description
16656         of RX vector attribute.
16657
16658 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
16659
16660         * config.gcc (supported_defaults): Error when passing either
16661         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
16662
16663 2014-06-26  Richard Biener  <rguenther@suse.de>
16664
16665         * tree-ssa-dom.c (cprop_operand): Remove restriction on
16666         propagating volatile pointers.
16667
16668 2014-06-26  Richard Biener  <rguenther@suse.de>
16669
16670         PR tree-optimization/61607
16671         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
16672         loop if we redirected its latch edge.
16673         (thread_block_1): Do not cancel loops prematurely.
16674
16675 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
16676
16677         * toplev.c (backend_init_target): Move init_emit_regs and
16678         init_regs to...
16679         (backend_init) ... here; skip ira_init_once and backend_init_target.
16680         (target_reinit) ... and here; clear
16681         this_target_rtl->lang_dependent_initialized.
16682         (lang_dependent_init_target): Clear
16683         this_target_rtl->lang_dependent_initialized;
16684         break out rtl initialization to ...
16685         (initialize_rtl): ... here; call also backend_init_target
16686         and ira_init_once.
16687         * toplev.h (initialize_rtl): New function.
16688         * function.c: Include toplev.h
16689         (init_function_start): Call initialize_rtl.
16690         * rtl.h (target_rtl): Add target_specific_initialized,
16691         lang_dependent_initialized.
16692
16693 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
16694             Jakub Jelinek  <jakub@redhat.com>
16695
16696         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
16697
16698 2014-06-25  Tom de Vries  <tom@codesourcery.com>
16699
16700         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
16701
16702 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16703
16704         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
16705         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
16706         Issue a strict overflow warning if appropriate.
16707
16708 2014-06-25  Martin Liska  <mliska@suse.cz>
16709
16710         IPA REF refactoring
16711         * Makefile.in: Removed header file (ipa-ref-inline.h).
16712         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
16713         called.
16714         (cgraph_speculative_call_info): Likewise.
16715         (cgraph_for_node_thunks_and_aliases): Likewise.
16716         (cgraph_for_node_and_aliases): Likewise.
16717         (verify_cgraph_node): Likewise.
16718         * cgraph.h: Batch of IPA REF functions become member functions of
16719         symtab_node: add_reference, maybe_add_reference, clone_references,
16720         clone_referring, clone_reference, find_reference,
16721         remove_stmt_references, remove_all_references,
16722         remove_all_referring, dump_references, dump_referring,
16723         has_alias_p, iterate_reference, iterate_referring.
16724         * cgraphbuild.c (record_reference): New IPA REF function used.
16725         (record_type_list): Likewise.
16726         (record_eh_tables): Likewise.
16727         (mark_address): Likewise.
16728         (mark_load): Likewise.
16729         (mark_store): Likewise.
16730         (pass_build_cgraph_edges): Likewise.
16731         (rebuild_cgraph_edge): Likewise.
16732         (cgraph_rebuild_references): Likewise.
16733         (pass_remove_cgraph_callee_edges): Likewise.
16734         * cgraphclones.c (cgraph_clone_node): Likewise.
16735         (cgraph_create_virtual_clone): Likewise.
16736         (cgraph_materialize_clone): Likewise.
16737         (cgraph_materialize_all_clones): Likewise.
16738         * cgraphunit.c (cgraph_reset_node): Likewise.
16739         (cgraph_reset_node): Likewise.
16740         (analyze_function): Likewise.
16741         (assemble_thunks_and_aliases): Likewise.
16742         (expand_function): Likewise.
16743         * ipa-comdats.c (propagate_comdat_group): Likewise.
16744         (enqueue_references): Likewise.
16745         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
16746         (create_specialized_node): Likewise.
16747         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
16748         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
16749         * ipa-inline.c (reset_edge_caches): Likewise.
16750         (update_caller_keys): Likewise.
16751         (execute): Likewise.
16752         * ipa-prop.c (remove_described_reference): Likewise.
16753         (propagate_controlled_uses): Likewise.
16754         (ipa_edge_duplication_hook): Likewise.
16755         (ipa_modify_call_arguments): Likewise.
16756         * ipa-pure-const.c (propagate_pure_const): Likewise.
16757         * ipa-ref-inline.h: Header file removed, functions moved
16758         to symtab_node class.
16759         * ipa-ref.c (remove_reference): New class member function.
16760         (cannot_lead_to_return): New class member function.
16761         (referring_ref_list): Likewise.
16762         (referred_ref_list): Likewise.
16763         Rest of functions moved to symtab_node class.
16764         * ipa-ref.h: New member functions remove_reference,
16765         cannot_lead_to_return, referring_ref_list, referred_ref_list added
16766         to ipa_ref class.
16767         ipa_ref_list class has new member functions: first_reference,
16768         first_referring, clear, nreferences.
16769         * ipa-reference.c (analyze_function): New IPA REF function used.
16770         (write_node_summary_p): Likewise.
16771         (ipa_reference_write_optimization_summary): Likewise.
16772         * ipa-split.c (split_function): Likewise.
16773         * ipa-utils.c (ipa_reverse_postorder): Likewise.
16774         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
16775         (function_and_variable_visibility): Likewise.
16776         * ipa.c (has_addr_references_p): Likewise.
16777         (process_references): Argument type changed.
16778         (symtab_remove_unreachable_nodes): New IPA REF function used.
16779         (process_references): Likewise.
16780         (set_writeonly_bit): Likewise.
16781         * lto-cgraph.c: Implementation of new symtab_node member functions
16782         that uses new IPA REF functions.
16783         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
16784         function used.
16785         * lto-streamer-out.c (output_symbol_p): Likewise.
16786         * lto-streamer.h (referenced_from_this_partition_p): Argument type
16787         changed.
16788         * symtab.c: Implementation of new IPA REF API.
16789         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
16790         (ipa_tm_create_version): Likewise.
16791         (ipa_tm_execute): Likewise.
16792         * tree-emutls.c (gen_emutls_addr): Likewise.
16793         * tree-inline.c (copy_bb): Likewise.
16794         (delete_unreachable_blocks_update_callgraph): Likewise.
16795         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
16796         (varpool_for_node_and_aliases): Likewise.
16797
16798 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
16799
16800         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
16801
16802 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
16803
16804         PR bootstrap/61598
16805         * fold-const.c (fold_checksum_tree): Use a hash_table of const
16806         tree_node * instead of tree_node *.
16807         (fold): Adjust.
16808         (print_fold_checksum): Likewise.
16809         (fold_check_failed): Likewise.
16810         (debug_fold_checksum): Likewise.
16811         (fold_build1_stat_loc): Likewise.
16812         (fold_build2_stat_loc): Likewise.
16813         (fold_build3_stat_loc): Likewise.
16814         (fold_build_call_array_loc): Likewise.
16815
16816 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
16817
16818         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
16819         implementation with call to...
16820         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
16821         function.
16822         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
16823         Declare.
16824
16825 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
16826
16827         PR tree-optimization/57742
16828         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
16829         after replacing the statement.
16830
16831 2014-06-25  Nick Clifton  <nickc@redhat.com>
16832
16833         * config/v850/v850.c (GHS_default_section_names): Change to const
16834         char * type.
16835         (GHS_current_section_names): Likewise.
16836         (v850_insert_attributes): Do not build strings, just assign the
16837         names directly.  Change the type of 'chosen_section' to const
16838         char*.
16839         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
16840         directly to the array entry.
16841         * config/v850/v850.h (GHS_default_section_names): Change to const
16842         char * type.
16843         (GHS_current_section_names): Likewise.
16844
16845 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
16846
16847         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
16848         (LANG_HOOKS_DECLS): Add it.
16849         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
16850         has correct type.
16851         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
16852         * langhooks.h (struct lang_hooks_for_decls): Add
16853         omp_clause_linear_ctor hook.
16854         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
16855         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
16856         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
16857         combined simd loop use omp_clause_linear_ctor hook.
16858
16859 2014-06-24  Cong Hou  <congh@google.com>
16860
16861         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
16862         pattern recognition.
16863         (type_conversion_p): PROMOTION is true if it's a type promotion
16864         conversion, and false otherwise.  Return true if the given expression
16865         is a type conversion one.
16866         * tree-vectorizer.h: Adjust the number of patterns.
16867         * tree.def: Add SAD_EXPR.
16868         * optabs.def: Add sad_optab.
16869         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
16870         * expr.c (expand_expr_real_2): Likewise.
16871         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
16872         * gimple.c (get_gimple_rhs_num_ops): Likewise.
16873         * optabs.c (optab_for_tree_code): Likewise.
16874         * tree-cfg.c (estimate_operator_cost): Likewise.
16875         * tree-ssa-operands.c (get_expr_operands): Likewise.
16876         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
16877         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
16878         * doc/generic.texi: Add document for SAD_EXPR.
16879         * doc/md.texi: Add document for ssad and usad.
16880
16881 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
16882
16883         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
16884         qualification in cast.
16885
16886 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
16887
16888         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
16889         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
16890         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
16891         (tree_function_decl): ... here.
16892         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
16893         streaming of vindex to ...
16894         (write_ts_function_decl_tree_pointers): ... here.
16895         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
16896         Do not stream DECL_VINDEX.
16897         (lto_input_ts_function_decl_tree_pointers): Stream it here.
16898
16899 2014-06-24  Catherine Moore  <clm@codesourcery.com>
16900             Sandra Loosemore  <sandra@codesourcery.com>
16901
16902         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
16903         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
16904         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
16905
16906 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
16907
16908         * doc/invoke.texi (Warning Options): Remove duplicated
16909         -Wmaybe-uninitialized.
16910
16911 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
16912
16913         PR tree-optimization/57742
16914         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
16915         (handle_builtin_malloc, handle_builtin_memset): New functions.
16916         (strlen_optimize_stmt): Call them.
16917         * passes.def: Move strlen after loop+dom but before vrp.
16918
16919 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
16920
16921         PR target/61570
16922         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
16923         model family 6 CPU with has_longmode never use a CPU without
16924         64-bit support.
16925
16926 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
16927
16928         PR target/61570
16929         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
16930         the last change.
16931
16932 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
16933
16934         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
16935         * dominance.c (iterate_fix_dominators): Use hash_map instead of
16936         pointer_map.
16937         * hash-map.h: New file.
16938         * ipa-comdats.c: Use hash_map instead of pointer_map.
16939         * ipa.c: Likewise.
16940         * lto-section-out.c: Adjust.
16941         * lto-streamer.h: Replace pointer_map with hash_map.
16942         * symtab.c (verify_symtab): Likewise.
16943         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
16944         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
16945         * tree-streamer.h: Likewise.
16946         * tree-streamer.c: Adjust.
16947         * pointer-set.h: Remove pointer_map.
16948
16949 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
16950
16951         * hash-table.h: Add a template arg to choose between storing values
16952         and storing pointers to values, and then provide partial
16953         specializations for both.
16954         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
16955         should store, not the type values should point to.
16956         * tree-into-ssa.c (var_info_hasher): Likewise.
16957         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
16958         * tree-complex.c: Adjust.
16959         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
16960         table instead of int_tree_map *.
16961         * tree-parloops.c: Adjust.
16962         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
16963         type is being stored.
16964         * tree-vectorizer.c: Adjust.
16965
16966 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
16967
16968         * hash-table.h: Remove a layer of indirection from hash_table so that
16969         it contains the hash table's data instead of a pointer to the data.
16970         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
16971         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
16972         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
16973         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
16974         fold-const.c, gcse.c, ggc-common.c,
16975         gimple-ssa-strength-reduction.c, gimplify.c,
16976         graphite-clast-to-gimple.c, graphite-dependences.c,
16977         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
16978         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
16979         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
16980         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
16981         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
16982         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
16983         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
16984         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
16985         tree-ssa-live.c, tree-ssa-loop-im.c,
16986         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
16987         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
16988         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
16989         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
16990         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
16991         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
16992         vtable-verify.c, vtable-verify.h: Adjust.
16993
16994 2014-06-24  Richard Biener  <rguenther@suse.de>
16995
16996         PR tree-optimization/61572
16997         * tree-ssa-sink.c (statement_sink_location): Do not sink
16998         loads from hard registers.
16999
17000 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
17001
17002         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
17003         not mentioned in clauses use private clause if the iterator is
17004         declared in #pragma omp for simd, and when adding lastprivate
17005         instead, add it to the outer #pragma omp for too.  Diagnose
17006         if the variable is private in outer context.  For simd collapse > 1
17007         loops, replace all iterators with temporaries.
17008         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
17009         same even in collapse > 1 loops.
17010
17011         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
17012         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
17013         non-NULL.
17014         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
17015         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
17016         non-NULL.
17017         (gimplify_adjust_omp_clauses): Likewise.
17018         * omp-low.c (lower_rec_simd_input_clauses,
17019         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
17020         safelen the same as safelen(1).
17021         * tree-nested.c (convert_nonlocal_omp_clauses,
17022         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
17023         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
17024         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
17025         Fixup handling of GIMPLE_OMP_TARGET.
17026         (convert_tramp_reference_stmt, convert_gimple_call): Handle
17027         GIMPLE_OMP_TARGET.
17028
17029 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
17030
17031         PR tree-optimization/61554
17032         * tree-ssa-propagate.c: Include "bitmap.h".
17033         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
17034         properly update constructor/destructor.
17035         (substitute_and_fold_dom_walker::before_dom_children):
17036         Remove call to gimple_purge_dead_eh_edges, add bb->index to
17037         need_eh_cleaup instead.
17038         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
17039         need_eh_cleanup.
17040
17041 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
17042
17043         * varpool.c (dump_varpool_node): Dump used_by_single_function.
17044         * tree-pass.h (make_pass_ipa_single_use): New pass.
17045         * cgraph.h (used_by_single_function): New flag.
17046         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
17047         Stream it.
17048         * passes.def (pass_ipa_single_use): Scedule.
17049         * ipa.c (BOTTOM): New macro.
17050         (meet): New function
17051         (propagate_single_user): New function.
17052         (ipa_single_use): New function.
17053         (pass_data_ipa_single_use): New pass.
17054         (pass_ipa_single_use): New pass.
17055         (pass_ipa_single_use::gate): New gate.
17056         (make_pass_ipa_single_use): New function.
17057
17058 2014-06-23  Kai Tietz  <ktietz@redhat.com>
17059
17060         PR target/39284
17061         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
17062         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
17063
17064 2014-06-23  Richard Biener  <rguenther@suse.de>
17065
17066         * tree-ssa-loop.c (gate_loop): New function.
17067         (pass_tree_loop::gate): Call it.
17068         (pass_data_tree_no_loop, pass_tree_no_loop,
17069         make_pass_tree_no_loop): New.
17070         * tree-vectorizer.c: Include tree-scalar-evolution.c
17071         (pass_slp_vectorize::execute): Initialize loops and SCEV if
17072         required.
17073         (pass_slp_vectorize::clone): New method.
17074         * timevar.def (TV_TREE_NOLOOP): New.
17075         * tree-pass.h (make_pass_tree_no_loop): Declare.
17076         * passes.def (pass_tree_no_loop): New pass group with
17077         SLP vectorizer.
17078
17079 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
17080
17081         PR target/61570
17082         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
17083         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
17084
17085 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
17086
17087         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
17088         "yes" where needed.
17089
17090 2014-06-23  Alan Modra  <amodra@gmail.com>
17091
17092         PR bootstrap/61583
17093         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
17094         to zero on debug statements.
17095
17096 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
17097
17098         PR target/60825
17099         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
17100         Ignore third operand if present by marking qualifier_internal.
17101
17102         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
17103
17104         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
17105         vector extension.
17106         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
17107         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
17108         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
17109         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
17110         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
17111         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
17112         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
17113         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
17114         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
17115         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
17116         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
17117         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
17118         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
17119         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
17120         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
17121         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
17122         logic in GCC vector extensions
17123
17124         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
17125         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
17126         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
17127         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
17128         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
17129         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
17130         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
17131         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
17132         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
17133         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
17134
17135         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
17136
17137         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
17138         extensions.
17139
17140         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
17141         (vget_low_s64): Use __GET_LOW macro.
17142         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
17143         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
17144         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
17145         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
17146         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
17147
17148         (vcombine_s64): Use GCC vector extensions; remove cast.
17149         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
17150         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
17151         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
17152         Fix type signature; remove cast.
17153
17154 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
17155
17156         PR target/60825
17157         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
17158         V1DFmode.
17159         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
17160         add V1DFmode
17161         (BUILTIN_VD1): New.
17162         (BUILTIN_VD_RE): Remove.
17163         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
17164         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
17165         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
17166         variant but not df.
17167         (vreinterpretv1df*, vreinterpret*v1df): New.
17168         (vreinterpretdf*, vreinterpret*df): Remove.
17169         * config/aarch64/aarch64-simd.md (aarch64_create,
17170         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
17171         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
17172         (VD1): New.
17173         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
17174         (vcreate_f64): Remove cast, use v1df builtin.
17175         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
17176         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
17177         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
17178         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
17179         vmov_n_f64, vst1_f64): Use gcc vector extensions.
17180         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
17181         add range check using __builtin_aarch64_im_lane_boundsi.
17182         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
17183         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
17184         type signature, use gcc vector extensions.
17185         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
17186         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
17187         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
17188         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
17189         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
17190         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
17191         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
17192         vreinterpret_u64_f64): Use v1df builtin not df.
17193
17194 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
17195
17196         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
17197         vector registers.
17198
17199 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
17200
17201         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
17202         priority directly.
17203
17204 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
17205
17206         * loop-invariant.c (pre_check_invariant_p): New function.
17207         (find_invariant_insn): Call pre_check_invariant_p.
17208
17209 2014-06-22  Richard Henderson  <rth@redhat.com>
17210
17211         PR target/61565
17212         * compare-elim.c (struct comparison): Add eh_note.
17213         (find_comparison_dom_walker::before_dom_children): Don't eliminate
17214         a redundant comparison in a different EH region.  Purge EH edges if
17215         necessary.
17216
17217 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
17218
17219         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
17220         (var_shift): Use it.
17221         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
17222         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
17223         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
17224         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
17225         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
17226         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
17227         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
17228         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
17229         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
17230         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
17231         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
17232         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
17233         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
17234         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
17235         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
17236         *rotldi3_internal15be): Use the new attribute.  Merge register and
17237         integer alternatives.
17238
17239 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
17240
17241         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
17242         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
17243         split, *ashrdi3_internal3 and split): Delete, merge into...
17244         (ashr<mode>3): New expander.
17245         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
17246         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
17247
17248 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
17249
17250         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
17251         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
17252         *rotldi3_internal3 and split): Delete, merge into...
17253         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
17254         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
17255         Use "rotlw" extended mnemonic.
17256
17257 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
17258
17259         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
17260         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
17261         and split, *ashldi3_internal3 and split): Delete, merge into...
17262         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
17263         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
17264
17265 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
17266
17267         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
17268         (lshrsi3, two anonymous define_insns and define_splits,
17269         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
17270         *lshrdi3_internal3 and split): Delete, merge into...
17271         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
17272         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
17273
17274 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
17275
17276         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
17277         Remove "O" alternative.
17278
17279 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
17280
17281         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
17282         (mips_move_from_gpr_cost): Likewise.
17283         (mips_register_move_cost): Update accordingly.
17284         (mips_secondary_reload_class): Remove name of in_p.
17285
17286 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
17287
17288         PR target/61503
17289         * config/i386/i386.md (x86_64_shrd, x86_shrd,
17290         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
17291
17292 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
17293
17294         * config/nios2/nios2.c: Include "builtins.h".
17295
17296 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
17297
17298         * cgraph.h (tls_model_names): New variable.
17299         * print-tree.c (print_node): Simplify.
17300         * varpool.c (tls_model_names): New variable.
17301         (dump_varpool_node): Output tls model.
17302
17303 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
17304
17305         * ipa-visibility.c (function_and_variable_visibility): Disable
17306         temporarily local aliases for some targets.
17307
17308 2014-06-20  Marek Polacek  <polacek@redhat.com>
17309
17310         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
17311         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
17312         into SANITIZE_UNDEFINED.
17313         * doc/invoke.texi: Describe -fsanitize=bounds.
17314         * gimplify.c (gimplify_call_expr): Add gimplification of internal
17315         functions created in the FEs.
17316         * internal-fn.c: Move "internal-fn.h" after "tree.h".
17317         (expand_UBSAN_BOUNDS): New function.
17318         * internal-fn.def (UBSAN_BOUNDS): New internal function.
17319         * internal-fn.h: Don't define internal functions here.
17320         * opts.c (common_handle_option): Add -fsanitize=bounds.
17321         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
17322         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
17323         * tree-core.h: Define internal functions here.
17324         (struct tree_base): Add ifn field.
17325         * tree-pretty-print.c: Include "internal-fn.h".
17326         (dump_generic_node): Handle functions without CALL_EXPR_FN.
17327         * tree.c (get_callee_fndecl): Likewise.
17328         (build_call_expr_internal_loc): New function.
17329         * tree.def (CALL_EXPR): Update description.
17330         * tree.h (CALL_EXPR_IFN): Define.
17331         (build_call_expr_internal_loc): Declare.
17332         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
17333         types.
17334         (ubsan_type_descriptor): Change bool parameter to enum
17335         ubsan_print_style.  Adjust the code.  Add handling of
17336         UBSAN_PRINT_ARRAY.
17337         (ubsan_expand_bounds_ifn): New function.
17338         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
17339         (ubsan_build_overflow_builtin): Likewise.
17340         (instrument_bool_enum_load): Likewise.
17341         (ubsan_instrument_float_cast): Likewise.
17342         * ubsan.h (enum ubsan_print_style): New enum.
17343         (ubsan_expand_bounds_ifn): Declare.
17344         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
17345
17346 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
17347
17348         * config/rs6000/rs6000.md: Append `DONE' to preparation
17349         statements of `bswap' pattern splitters.
17350
17351 2014-06-20  Tom de Vries  <tom@codesourcery.com>
17352
17353         * target.def (call_fusage_contains_non_callee_clobbers): Update
17354         definition.
17355         * doc/tm.texi: Regenerate.
17356
17357 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
17358             Max Ostapenko  <m.ostapenko@partner.samsung.com>
17359
17360         PR sanitizer/61547
17361         * asan.c (instrument_strlen_call): Fixed instrumentation of
17362         trailing byte.
17363
17364 2014-06-20  Martin Jambor  <mjambor@suse.cz>
17365
17366         PR ipa/61540
17367         * ipa-prop.c (impossible_devirt_target): New function.
17368         (try_make_edge_direct_virtual_call): Use it, also instead of
17369         asserting.
17370
17371 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
17372             Max Ostapenko  <m.ostapenko@partner.samsung.com>
17373
17374         PR sanitizer/61530
17375         * asan.c (build_check_stmt): Add condition.
17376
17377 2014-06-20  Martin Jambor  <mjambor@suse.cz>
17378
17379         PR ipa/61211
17380         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
17381         expanded clones.
17382
17383 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17384
17385         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
17386         Update comments.
17387         (VCONQ): Make comment more helpful.
17388         (VCON): Delete.
17389         * config/aarch64/aarch64-simd.md
17390         (aarch64_sqdmulh_lane<mode>):
17391         Use VCOND for operands 2.  Update lane checking and flipping logic.
17392         (aarch64_sqrdmulh_lane<mode>): Likewise.
17393         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
17394         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
17395         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
17396         attribute of operand 3 to VCOND.
17397         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
17398         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
17399         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
17400         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
17401         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
17402         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
17403         define_insn.
17404         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
17405         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
17406         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
17407         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
17408         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
17409         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
17410         operand to VCOND.  Update lane flipping and bounds checking logic.
17411         (aarch64_sqdmlal2_lane<mode>): Likewise.
17412         (aarch64_sqdmlsl_lane<mode>): Likewise.
17413         (aarch64_sqdmull_lane<mode>): Likewise.
17414         (aarch64_sqdmull2_lane<mode>): Likewise.
17415         (aarch64_sqdmlal_laneq<mode>):
17416         Replace VCON usage with VCONQ.
17417         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
17418         (aarch64_sqdmlal2_laneq<mode>): Emit
17419         aarch64_sqdmlal2_laneq<mode>_internal insn.
17420         Replace VCON with VCONQ.
17421         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
17422         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
17423         (aarch64_sqdmull_laneq<mode>): Emit
17424         aarch64_sqdmull_laneq<mode>_internal insn.
17425         Replace VCON with VCONQ.
17426         (aarch64_sqdmull2_laneq<mode>): Emit
17427         aarch64_sqdmull2_laneq<mode>_internal insn.
17428         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
17429         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
17430         of 3rd argument to int16x4_t.
17431         (vqdmlalh_lane_s16): Likewise.
17432         (vqdmlslh_lane_s16): Likewise.
17433         (vqdmull_high_lane_s16): Likewise.
17434         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
17435         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
17436         (vqdmlsl_lane_s16): Likewise.
17437         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
17438         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
17439         (vqdmlals_lane_s32): Likewise.
17440         (vqdmlsls_lane_s32): Likewise.
17441         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
17442         (vqdmulls_lane_s32): Likewise.
17443         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
17444         (vqdmlsl_lane_s32): Likewise.
17445         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
17446         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
17447         (vqrdmulhh_lane_s16): Likewise.
17448         (vqdmlsl_high_lane_s16): Likewise.
17449         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
17450         (vqdmlsl_high_lane_s32): Likewise.
17451         (vqrdmulhs_lane_s32): Likewise.
17452
17453 2014-06-20  Tom de Vries  <tom@codesourcery.com>
17454
17455         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
17456         get_call_reg_set_usage.
17457
17458 2014-06-20  Tom de Vries  <tom@codesourcery.com>
17459
17460         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
17461         it contains all call_used_regs.
17462
17463 2014-06-20  Tom de Vries  <tom@codesourcery.com>
17464
17465         * final.c (collect_fn_hard_reg_usage): Add and use variable
17466         function_used_regs.
17467
17468 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
17469
17470         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
17471         (set_init_priority, get_init_priority, set_fini_priority,
17472         get_fini_priority): New methods.
17473         * tree.c (init_priority_for_decl): Remove.
17474         (init_ttree): Do not initialize init priority.
17475         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
17476         (decl_priority_info): Remove.
17477         (decl_init_priority_insert): Rewrite.
17478         (decl_fini_priority_insert): Rewrite.
17479         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
17480         tree_priority_map_marked_p): Remove.
17481         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
17482         * lto-streamer-out.c (hash_tree): Do not hash priorities.
17483         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
17484         not output priorities.
17485         (pack_ts_function_decl_value_fields): Likewise.
17486         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
17487         not input priorities.
17488         (unpack_ts_function_decl_value_fields): Likewise.
17489         * symtab.c (symbol_priority_map): Declare.
17490         (init_priority_hash): Declare.
17491         (symtab_unregister_node): Unregister from priority hash, too.
17492         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
17493         New methods.
17494         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
17495         (symbol_priority_info): New function.
17496         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
17497         New methods.
17498         * tree-core.h (tree_priority_map): Remove.
17499
17500 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
17501
17502         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
17503         0xff to uint64_t before shifting it up.
17504
17505 2014-06-20  Julian Brown  <julian@codesourcery.com>
17506             Chung-Lin Tang  <cltang@codesourcery.com>
17507
17508         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
17509         TARGET_THUMB1_ONLY. Add comments.
17510
17511 2014-06-19  Tom de Vries  <tom@codesourcery.com>
17512
17513         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
17514         return type to void.
17515         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
17516
17517 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
17518
17519         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
17520         as "move", from depends_on.
17521
17522 2014-06-19  Terry Guo  <terry.guo@arm.com>
17523
17524         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
17525         stage.
17526
17527 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
17528
17529         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
17530         Remove cr5.
17531         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
17532
17533 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
17534
17535         PR target/61550
17536         * config/sh/sh.c (prepare_move_operands): Don't process TLS
17537         addresses here if reload in progress or completed.
17538
17539 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
17540
17541         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
17542         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
17543         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
17544         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
17545         (mips_register_priority): New function that implements the target
17546         hook TARGET_REGISTER_PRIORITY.
17547         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
17548         (mips_lra_p): Likewise for TARGET_LRA_P.
17549         (TARGET_REGISTER_PRIORITY): Define macro.
17550         (TARGET_SPILL_CLASS): Likewise.
17551         (TARGET_LRA_P): Likewise.
17552         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
17553         classes.
17554         (REG_CLASS_NAMES): Likewise.
17555         (REG_CLASS_CONTENTS): Likewise.
17556         (BASE_REG_CLASS): Use M16_SP_REGS.
17557         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
17558         New set attribute to enable alternatives depending on the register
17559         allocator used.
17560         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
17561         (*lea64): Disable pattern for MIPS16.
17562         * config/mips/mips.opt (mlra): New option.
17563
17564 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
17565
17566         * lra-constraints.c (base_to_reg): New function.
17567         (process_address): Use new function.
17568
17569 2014-06-18  Tom de Vries  <tom@codesourcery.com>
17570
17571         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
17572         * config/aarch64/aarch64.c
17573         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
17574         (aarch64_emit_call_insn): New function.
17575         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
17576         of emit_call_insn.
17577         * config/aarch64/aarch64.md (define_expand "call_internal")
17578         (define_expand "call_value_internal", define_expand "sibcall_internal")
17579         (define_expand "sibcall_value_internal"): New.
17580         (define_expand "call", define_expand "call_value")
17581         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
17582         expand variant and aarch64_emit_call_insn.
17583
17584 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
17585             Tom de Vries  <tom@codesourcery.com>
17586
17587         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
17588         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
17589         Redefine to true.
17590         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
17591         clobbers to CALL_INSN_FUNCTION_USAGE.
17592         (define_expand "sibcall_internal")
17593         (define_expand "sibcall_value_internal"): New.
17594         (define_expand "call", define_expand "call_value"): Add argument to
17595         arm_emit_call_insn.
17596         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
17597         (define_expand "sibcall_value"): Use sibcall_value_internal and
17598         arm_emit_call_insn.
17599
17600 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
17601
17602         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
17603
17604 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
17605
17606         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
17607         __udivmoddi4.
17608
17609 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
17610
17611         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
17612         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
17613         annotations. Fix DWARF information.
17614
17615 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
17616
17617         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
17618         __udivmoddi4, and fixups for negative operands.
17619
17620 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
17621
17622         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
17623
17624 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
17625
17626         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
17627         to __udivmoddi4.
17628
17629 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
17630
17631         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
17632         manipulation.
17633
17634 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
17635
17636         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
17637         describing register usage on function entry and exit.
17638
17639 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
17640
17641         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
17642         (__aeabi_ldivmod): Fix whitespace.
17643
17644 2014-06-18  Andreas Schwab  <schwab@suse.de>
17645
17646         * doc/md.texi (Standard Names): Use @itemx for grouped items.
17647         Remove blank line after @item.
17648
17649 2014-06-18  Richard Henderson  <rth@redhat.com>
17650
17651         PR target/61545
17652         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
17653
17654 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
17655
17656         * config/arm/arm.c (neon_vector_mem_operand): Allow register
17657         POST_MODIFY for neon loads and stores.
17658         (arm_print_operand): Output post-index register for neon loads and
17659         stores.
17660
17661 2014-06-18  Richard Biener  <rguenther@suse.de>
17662
17663         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
17664
17665 2014-06-18  Richard Biener  <rguenther@suse.de>
17666
17667         * tree-pass.h (make_pass_dce_loop): Remove.
17668         * passes.def: Replace pass_dce_loop with pass_dce.
17669         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
17670         changed free niter estimates and reset the scev cache.
17671         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
17672         make_pass_dce_loop): Remove.
17673         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
17674         (fini_copy_prop): Return whether something changed.  Always
17675         let substitute_and_fold perform DCE and free niter estimates
17676         and reset the scev cache if so.
17677         (execute_copy_prop): If sth changed schedule cleanup-cfg.
17678         (pass_data_copy_prop): Do not unconditionally schedule
17679         cleanup-cfg or update-ssa.
17680
17681 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
17682
17683         PR tree-optimization/61518
17684         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
17685         reduction var is used in reduction stmt or phi-function only.
17686
17687 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17688
17689         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
17690
17691 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17692
17693         PR tree-optimization/61517
17694         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
17695         whose rhs's first tree is the source expression instead of the
17696         expression itself.
17697         (find_bswap_or_nop): Likewise.
17698         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
17699         gimple stmt whose rhs's first tree is the source. In the memory source
17700         case, move the stmt to be replaced close to one of the original load to
17701         avoid the problem of a store between the load and the stmt's original
17702         location.
17703         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
17704         signature.
17705
17706 2014-06-18  Andreas Schwab  <schwab@suse.de>
17707
17708         PR rtl-optimization/54555
17709         * postreload.c (move2add_use_add2_insn): Substitute
17710         STRICT_LOW_PART only if it is cheaper.
17711
17712 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
17713
17714         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
17715         Do not use unspec as call operand.  Use memory_operand instead of
17716         memory_nox32_operand and add "m" operand constraint.  Disable
17717         pattern for TARGET_X32.
17718         (*sibcall_pop_memory): Ditto.
17719         (*sibcall_value_memory): Ditto.
17720         (*sibcall_value_pop_memory): Ditto.
17721         (sibcall peepholes): Merge SImode and DImode patterns using
17722         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
17723         Disable pattern for TARGET_X32.  Check if eliminated register is
17724         really dead after call insn.  Generate call RTX without unspec operand.
17725         (sibcall_value peepholes): Ditto.
17726         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
17727         instead of memory_nox32_operand.  Check if eliminated register is
17728         really dead after call insn. Generate call RTX without unspec operand.
17729         (sibcall_value_pop peepholes): Ditto.
17730         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
17731
17732 2014-06-18  Terry Guo  <terry.guo@arm.com>
17733
17734         PR target/61544
17735         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
17736         reach the head.
17737
17738 2014-06-18  Olivier Hainque  <hainque@adacore.com>
17739
17740         * tree-core.h (tree_block): Add an "end_locus" field, allowing
17741         memorization of the end of block source location.
17742         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
17743         * gimplify.c (gimplify_bind_expr): Propagate the block start and
17744         end source location info we have on the block entry/exit code we
17745         generate.
17746
17747 2014-06-18  Richard Biener  <rguenther@suse.de>
17748
17749         * common.opt (fssa-phiopt): New option.
17750         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
17751         but not with -Og.
17752         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
17753         * doc/invoke.texi (-fssa-phiopt): Document.
17754
17755 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17756
17757         * genattrtab.c (n_bypassed): New variable.
17758         (process_bypasses): Initialise n_bypassed.
17759         Count number of bypassed reservations.
17760         (make_automaton_attrs): Allocate space for bypassed reservations
17761         rather than number of bypasses.
17762
17763 2014-06-18  Richard Biener  <rguenther@suse.de>
17764
17765         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
17766         we propagated anything.
17767         (substitute_and_fold_dom_walker::before_dom_children): Something
17768         changed if we propagated into PHI arguments.
17769         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
17770         we removed a stmt.
17771
17772 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
17773
17774         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
17775         vector case.
17776         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
17777         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
17778         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
17779         Introduces alternative way of loads group permutaions.
17780         (vect_transform_grouped_load): Try alternative way of permutations.
17781
17782 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
17783
17784         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
17785         changed in ORT_TARGET region, don't jump to do_outer.
17786         (struct gimplify_adjust_omp_clauses_data): New type.
17787         (gimplify_adjust_omp_clauses_1): Adjust for data being
17788         a struct gimplify_adjust_omp_clauses_data pointer instead
17789         of tree *.  Pass pre_p as a new argument to
17790         lang_hooks.decls.omp_finish_clause hook.
17791         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
17792         splay_tree_foreach to pass both list_p and pre_p.
17793         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
17794         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
17795         gimplify_adjust_omp_clauses callers.
17796         * langhooks.c (lhd_omp_finish_clause): New function.
17797         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
17798         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
17799         * langhooks.h (struct lang_hooks_for_decls): Add a new
17800         gimple_seq * argument to omp_finish_clause hook.
17801         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
17802         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
17803         (scan_omp_parallel, lower_omp_for): When adding
17804         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
17805         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
17806         * tree-nested.c (convert_nonlocal_omp_clauses,
17807         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
17808         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
17809
17810 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
17811
17812         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
17813         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
17814
17815 2014-06-17  Xinliang David Li  <davidxl@google.com>
17816
17817         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
17818         * passes.c (pass_init_dump_file): Do not set initialize
17819         flag to false unconditionally.
17820
17821 2014-06-17  Richard Biener  <rguenther@suse.de>
17822
17823         * genopinit.c (main): Use vec<>::qsort method.
17824         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
17825         Likewise.
17826         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
17827
17828 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
17829
17830         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
17831         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
17832         (mips_move_to_gpr_cost): Remove ST_REGS case.
17833         (mips_move_from_gpr_cost): Likewise.
17834         (mips_register_move_cost): Likewise.
17835         (mips_secondary_reload_class): Likewise.
17836
17837 2014-06-17  Richard Biener  <rguenther@suse.de>
17838
17839         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
17840         (pass_all_optimizations): Move 3rd copy-prop pass from after
17841         fre to before ifcombine/phiopt.
17842
17843 2014-06-17  Richard Biener  <rguenther@suse.de>
17844
17845         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
17846         and allow all blocks to be forwarders.
17847
17848 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
17849
17850         PR target/61483
17851         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
17852         variable 'size'; calculate 'size' right in the front; use
17853         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
17854         pcum->aapcs_stack_words.
17855
17856 2014-06-17  Nick Clifton  <nickc@redhat.com>
17857
17858         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
17859         (umulhi3, mulsidi3, umulsidi3): Likewise.
17860
17861 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
17862
17863         PR middle-end/61508
17864         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
17865         check for section name.
17866
17867 2014-06-17  Richard Biener  <rguenther@suse.de>
17868
17869         * tree-ssa-propagate.c: Include domwalk.h.
17870         (substitute_and_fold): Outline main worker into a domwalker ...
17871         (substitute_and_fold_dom_walker::before_dom_children): ... here.
17872         Schedule stmts we can fully propagate for removal.  Remove
17873         poor-mans DCE.
17874         (substitute_and_fold): Apply a dominator walk to perform
17875         substitution.  Process stmts scheduled for removal here.
17876
17877 2014-06-17  Richard Biener  <rguenther@suse.de>
17878
17879         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
17880         of PHI node moving.
17881
17882 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
17883
17884         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
17885         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
17886         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
17887         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
17888         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
17889         TARGET_HARD_FLOAT.
17890         (get_fpscr) : Likewise.
17891
17892 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
17893
17894         PR rtl-optimization/61325
17895         * lra-constraints.c (valid_address_p): Add forward declaration.
17896         (simplify_operand_subreg): Check address validity before and after
17897         alter_reg of memory subreg.
17898
17899 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
17900
17901         * config/i386/i386.c (decide_alg): Correctly handle
17902         maximum size of stringop algorithm.
17903
17904 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
17905
17906         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
17907
17908 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
17909
17910         PR rtl-optimization/61522
17911         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
17912
17913 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
17914
17915         Revert:
17916         * symtab.c (symtab_node::reset_section): New method.
17917         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
17918         for localization.
17919         * cgraph.h (reset_section): Declare.
17920         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
17921         do not consider comdat locals.
17922         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
17923         for new symbol.
17924         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
17925         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
17926         reset sections of symbols dragged out of the comdats.
17927         (function_and_variable_visibility): Reset sections of
17928         localized symbols.
17929
17930 2014-06-16  Richard Biener  <rguenther@suse.de>
17931
17932         PR tree-optimization/61482
17933         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
17934         [-INF(OVF), +INF(OVF)] range.
17935
17936 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17937
17938         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
17939         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
17940         handling 32-bit multiplication.
17941
17942 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
17943
17944         PR middle-end/61430
17945         * lra-lives.c (process_bb_lives): Skip creating copy during
17946         insn scan when src/dest has constrained to same regno.
17947
17948 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
17949
17950         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
17951         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
17952
17953 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
17954
17955         * asan.c (check_func): New function.
17956         (maybe_create_ssa_name): Likewise.
17957         (build_check_stmt_with_calls): Likewise.
17958         (use_calls_p): Likewise.
17959         (report_error_func): Change interface.
17960         (build_check_stmt): Allow non-integer lengths; add support
17961         for new parameter.
17962         (asan_instrument): Likewise.
17963         (instrument_mem_region_access): Moved code to build_check_stmt.
17964         (instrument_derefs): Likewise.
17965         (instrument_strlen_call): Likewise.
17966         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
17967         * doc/invoke.texi: Describe new parameter.
17968         * params.def: Define new parameter.
17969         * params.h: Likewise.
17970         * sanitizer.def: Describe new builtins.
17971
17972 2014-06-16  Richard Biener  <rguenther@suse.de>
17973
17974         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
17975         Make all defs available at the end.
17976         (eliminate): If we remove a PHI node schedule cfg-cleanup.
17977
17978 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
17979
17980         PR plugins/45078
17981         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
17982
17983 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
17984
17985         PR bootstrap/61516
17986         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
17987         initialization.  Replace remaining use of uid.
17988
17989 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
17990
17991         * c-family/c-common.c (handle_tls_model_attribute): Use
17992         set_decl_tls_model.
17993         * c-family/c-common.c (handle_tls_model_attribute): Use
17994         set_decl_tls_model.
17995         * cgraph.h (struct varpool_node): Add tls_model.
17996         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
17997         * tree.h (DECL_TLS_MODEL): Update.
17998         (DECL_THREAD_LOCAL_P): Check that variable is static.
17999         (decl_tls_model): Declare.
18000         (set_decl_tls_model): Declare.
18001         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
18002         set symbol prorperties.
18003         (get_emutls_init_templ_addr): Cleanup.
18004         (new_emutls_decl): Update.
18005         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
18006         (lto_input_varpool_node): Likewise.
18007         * lto-streamer-out.c (hash_tree): Likewise.
18008         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
18009         not stream DECL_TLS_MODEL.
18010         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
18011         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
18012
18013 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
18014
18015         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
18016
18017 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
18018
18019         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
18020         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
18021         lists.
18022         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
18023         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
18024         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
18025         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
18026         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
18027         (df_get_artificial_defs, df_get_artificial_uses)
18028         (df_single_def, df_single_use): Update accordingly.
18029         (df_refs_chain_dump): Take the first element in a linked list as
18030         parameter, rather than a pointer to an array of pointers.
18031         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
18032         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
18033         (df_chain_create_bb_process_use): Likewise.
18034         (df_md_bb_local_compute_process_def): Likewise.
18035         * fwprop.c (process_defs, process_uses): Likewise.
18036         (register_active_defs, update_uses): Likewise.
18037         (forward_propagate_asm): Update for new df_ref linking.
18038         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
18039         (df_null_ref_rec, df_null_mw_rec): Likewise.
18040         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
18041         explicitly.
18042         (df_scan_free_bb_info): Remove check for null artificial_defs.
18043         (df_install_ref_incremental): Adjust for new df_ref linking.
18044         Use a single-element insertion rather than a full sort.
18045         (df_ref_chain_delete_du_chain): Take the first element
18046         in a linked list as parameter, rather than a pointer to an array of
18047         pointers.
18048         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
18049         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
18050         (df_insn_info_delete): Remove check for null defs and call to
18051         df_scan_free_mws_vec.
18052         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
18053         null rather than df_null_*_rec.
18054         (df_insn_rescan_debug_internal): Likewise, and update null
18055         checks in the same way.  Remove check for null defs.
18056         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
18057         Move a single element rather doing a full sort.
18058         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
18059         linking.
18060         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
18061         Initialize df_ref and df_mw_hardreg lists to null rather than
18062         df_null_*_rec.
18063         (df_ref_compare): Take df_refs as parameter, transferring the
18064         old interface to...
18065         (df_ref_ptr_compare): ...this new function.
18066         (df_sort_and_compress_refs): Update accordingly.
18067         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
18068         old interface to...
18069         (df_mw_ptr_compare): ...this new function.
18070         (df_sort_and_compress_mws): Update accordingly.
18071         (df_install_refs, df_install_mws): Return a linked list rather than
18072         an array of pointers.
18073         (df_refs_add_to_chains): Assert that old lists are empty rather
18074         than freeing them.
18075         (df_insn_refs_verify): Don't handle null defs speciailly.
18076         * web.c (union_match_dups): Update for new df_ref linking.
18077
18078 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
18079
18080         * df.h (df_ref_create, df_ref_remove): Delete.
18081         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
18082         (df_ref_remove): Likewise.
18083
18084 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
18085
18086         * df.h (df_single_def, df_single_use): New functions.
18087         * ira.c (find_moveable_pseudos): Use them.
18088
18089 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
18090
18091         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
18092         * df-problems.c (df_note_bb_compute): Use it.
18093         * regstat.c (regstat_bb_compute_ri): Likewise.
18094
18095 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
18096
18097         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
18098         * cse.c (cse_extended_basic_block): Use them.
18099         * dce.c (mark_artificial_use): Likewise.
18100         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
18101         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
18102         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
18103         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
18104         (df_simulate_initialize_backwards): Likewise.
18105         (df_simulate_finalize_backwards): Likewise.
18106         (df_simulate_initialize_forwards): Likewise.
18107         (df_md_simulate_artificial_defs_at_top): Likewise.
18108         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
18109         * regrename.c (init_rename_info): Likewise.
18110         * regstat.c (regstat_bb_compute_ri): Likewise.
18111         (regstat_bb_compute_calls_crossed): Likewise.
18112
18113 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
18114
18115         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
18116         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
18117         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
18118         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
18119         * combine.c (create_log_links): Likewise.
18120         * compare-elim.c (find_flags_uses_in_insn): Likewise.
18121         (try_eliminate_compare): Likewise.
18122         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
18123         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
18124         (remove_reg_equal_equiv_notes_for_defs): Likewise.
18125         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
18126         (word_dce_process_block, dce_process_block): Likewise.
18127         * ddg.c (def_has_ccmode_p): Likewise.
18128         * df-core.c (df_bb_regno_first_def_find): Likewise.
18129         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
18130         * df-problems.c (df_rd_simulate_one_insn): Likewise.
18131         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
18132         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
18133         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
18134         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
18135         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
18136         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
18137         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
18138         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
18139         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
18140         * fwprop.c (local_ref_killed_between_p): Likewise.
18141         (all_uses_available_at, free_load_extend): Likewise.
18142         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
18143         * hw-doloop.c (scan_loop): Likewise.
18144         * ifcvt.c (dead_or_predicable): Likewise.
18145         * init-regs.c (initialize_uninitialized_regs): Likewise.
18146         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
18147         (process_bb_node_lives): Likewise.
18148         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
18149         (find_moveable_pseudos): Likewise.
18150         * loop-invariant.c (check_dependencies, record_uses): Likewise.
18151         * recog.c (peep2_find_free_register): Likewise.
18152         * ree.c (get_defs): Likewise.
18153         * regstat.c (regstat_bb_compute_ri): Likewise.
18154         (regstat_bb_compute_calls_crossed): Likewise.
18155         * sched-deps.c (find_inc, find_mem): Likewise.
18156         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
18157         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
18158         * shrink-wrap.c (requires_stack_frame_p): Likewise.
18159         (prepare_shrink_wrap): Likewise.
18160         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
18161         * web.c (union_defs, pass_web::execute): Likewise.
18162         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
18163         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
18164
18165 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
18166
18167         * lra-assign.c (assign_by_spills): Add code to assign vector regs
18168         to inheritance pseudos.
18169         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
18170
18171 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
18172
18173         PR target/61415
18174         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
18175         (BU_MISC_2): Rename to ...
18176         (BU_LDBL128_2): ... this.
18177         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
18178         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
18179         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
18180         RS6000_BTM_LDBL128.
18181         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
18182         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
18183         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
18184         (unpacktf_1): Likewise.
18185         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
18186         (__builtin_longdouble_dw1): Likewise.
18187         * doc/sourcebuild.texi (longdouble128): Document.
18188
18189 2014-06-13  Jeff Law  <law@redhat.com>
18190
18191         PR rtl-optimization/61094
18192         PR rtl-optimization/61446
18193         * ree.c (combine_reaching_defs): Get the mode for the copy from
18194         the extension insn rather than the defining insn.
18195
18196 2014-06-13  Dehao Chen  <dehao@google.com>
18197
18198         * dwarf2out.c (add_linkage_name): Emit more linkage name.
18199
18200 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
18201
18202         * doc/install.texi (--enable-linker-plugin-configure-flags)
18203         (--enable-linker-plugin-flags): Document new flags.
18204
18205 2014-06-13  Martin Jambor  <mjambor@suse.cz>
18206
18207         PR ipa/61186
18208         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
18209         cache_token if returning early.
18210
18211 2014-06-13  Nick Clifton  <nickc@redhat.com>
18212
18213         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
18214         requested alignment is active.
18215         (LABEL_ALIGN): Likewise.
18216         (LOOP_ALIGN): Likewise.
18217
18218 2014-06-13  Richard Biener  <rguenther@suse.de>
18219
18220         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
18221         Rewrite to propagate the VN result into all uses where
18222         possible and to remove stmts becoming dead because of that.
18223         (eliminate): Generalize stmt removal handling, remove in
18224         reverse dominator order to support proper debug stmt
18225         generation.  Update stmts before removing stmts.
18226         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
18227
18228 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18229
18230         PR tree-optimization/61375
18231         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
18232         symbolic number cannot be represented in an uint64_t.
18233         (find_bswap_or_nop_1): Likewise.
18234
18235 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
18236
18237         * symtab.c (symtab_node::reset_section): New method.
18238         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
18239         for localization.
18240         * cgraph.h (reset_section): Declare.
18241         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
18242         do not consider comdat locals.
18243         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
18244         for new symbol.
18245         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
18246         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
18247         reset sections of symbols dragged out of the comdats.
18248         (function_and_variable_visibility): Reset sections of
18249         localized symbols.
18250
18251 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
18252
18253         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
18254         to use symtab and decl_binds_to_current_def_p
18255         * tree-vectorizer.c (increase_alignment): Increase alignment
18256         of alias target, too.
18257
18258 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
18259
18260         PR middle-end/61486
18261         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
18262         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
18263         if outer combined construct is distribute.
18264         (gimplify_omp_for): For OMP_DISTRIBUTE set
18265         gimplify_omp_ctxp->distribute.
18266         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
18267         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
18268         mapping into decl map.
18269
18270 2014-06-12  Jason Merrill  <jason@redhat.com>
18271
18272         * common.opt (fabi-version): Change default to 0.
18273
18274 2014-06-12  Jason Merrill  <jason@redhat.com>
18275
18276         * toplev.c (process_options): Reject -fabi-version=1.
18277
18278 2014-06-12  Jeff Law  <law@redhat.com>
18279
18280         PR tree-optimization/61009
18281         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
18282         value when we stop processing a block due to problematic PHIs.
18283
18284 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
18285
18286         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
18287         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
18288         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
18289         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
18290         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
18291         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
18292         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
18293         are not in the spec.
18294
18295 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
18296
18297         PR target/59843
18298         * config/aarch64/aarch64-modes.def: Add V1DFmode.
18299         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
18300         Support V1DFmode.
18301
18302 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
18303
18304         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
18305
18306 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
18307
18308         PR target/61443
18309         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
18310         loading from address spaces.
18311
18312 2014-06-12  Martin Liska  <mliska@suse.cz>
18313
18314         PR ipa/61462
18315         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
18316         statement is reachable.
18317
18318 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
18319
18320         * symtab.c (section_hash): New hash.
18321         (symtab_unregister_node): Clear section before freeing.
18322         (hash_section_hash_entry): New haser.
18323         (eq_sections): New function.
18324         (symtab_node::set_section_for_node): New method.
18325         (set_section_1): Update.
18326         (symtab_node::set_section): Take string instead of tree as parameter.
18327         (symtab_resolve_alias): Update.
18328         * cgraph.h (section_hash_entry_d): New structure.
18329         (section_hash_entry): New typedef.
18330         (cgraph_node): Change comdat_group_ to x_comdat_group,
18331         change section_ to x_section and turn into section_hash_entry;
18332         update accestors; put set_section_for_node offline.
18333         * tree.c (decl_section_name): Turn into string.
18334         (set_decl_section_name): Change parameter to be string.
18335         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
18336         * sdbout.c (sdbout_one_type): Update.
18337         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
18338         * varasm.c (IN_NAMED_SECTION, get_named_section,
18339         resolve_unique_section, hot_function_section, get_named_text_section,
18340         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
18341         make_decl_rtl, default_unique_section): Update.
18342         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
18343         (c6x_elf_unique_section): Update.
18344         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
18345         * config/pa/pa.c (pa_function_section): Update.
18346         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
18347         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
18348         * config/arc/arc.c (arc_in_small_data_p): Update.
18349         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
18350         * config/mcore/mcore.c (mcore_unique_section): Update.
18351         * config/mips/mips.c (mips16_build_function_stub): Update.
18352         (mips16_build_call_stub): Update.
18353         (mips_function_rodata_section): Update.
18354         (mips_in_small_data_p): Update.
18355         * config/score/score.c (score_in_small_data_p): Update.
18356         * config/rx/rx.c (rx_in_small_data): Update.
18357         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
18358         (rs6000_xcoff_asm_named_section): Update.
18359         (rs6000_xcoff_unique_section): Update.
18360         * config/frv/frv.c (frv_string_begins_with): Update.
18361         (frv_in_small_data_p): Update.
18362         * config/v850/v850.c (v850_encode_data_area): Update.
18363         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
18364         (bfin_handle_l1_data_attribute): Update.
18365         (bfin_handle_l2_attribute): Update.
18366         * config/mep/mep.c (mep_unique_section): Update.
18367         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
18368         Update.
18369         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
18370         (h8300_handle_tiny_data_attribute): Update.
18371         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
18372         (m32r_in_small_data_p): Update.
18373         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
18374         * config/i386/i386.c (ix86_in_large_data_p): Update.
18375         * config/i386/winnt.c (i386_pe_unique_section): Update.
18376         * config/darwin.c (darwin_function_section): Update.
18377         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
18378         * tree-emutls.c (get_emutls_init_templ_addr): Update.
18379         (new_emutls_decl): Update.
18380         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
18381         input_varpool_node): Update.
18382         (ead_string_cst): Turn to ...
18383         (read_string): ... this one.
18384         * dwarf2out.c (secname_for_decl): Update.
18385         * asan.c (asan_protect_global): Update.
18386
18387 2014-06-11  DJ Delorie  <dj@redhat.com>
18388
18389         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
18390         cache lines.
18391         * config/rx/rx.c (rx_option_override): Likewise.
18392         (rx_align_for_label): Likewise.
18393
18394         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
18395
18396 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
18397
18398         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
18399         prototype.
18400
18401 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
18402
18403         * common.md: New file.
18404         * doc/md.texi: Update description of generic, machine-independent
18405         constraints.
18406         * config/s390/constraints.md (e): Delete.
18407         * Makefile.in (md_file): Include common.md.
18408         * config/m32c/t-m32c (md_file): Likewise.
18409         * genpreds.c (general_mem): New array.
18410         (generic_constraint_letters): Remove constraints now defined by
18411         common.md.
18412         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
18413         Allow the first character to be '<' or '>' as well.
18414         * genoutput.c (general_mem): New array.
18415         (indep_constraints): Remove constraints now defined by common.md.
18416         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
18417         Remove special handling of 'm'.
18418         * ira-costs.c (record_reg_classes): Remove special handling of
18419         constraints now defined by common.md.
18420         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
18421         * ira-lives.c (single_reg_class): Likewise.
18422         (ira_implicitly_set_insn_hard_regs): Likewise.
18423         * lra-constraints.c (reg_class_from_constraints): Likewise.
18424         (process_alt_operands, process_address, curr_insn_transform): Likewise.
18425         * postreload.c (reload_cse_simplify_operands): Likewise.
18426         * reload.c (push_secondary_reload, scratch_reload_class)
18427         (find_reloads, alternative_allows_const_pool_ref): Likewise.
18428         * reload1.c (maybe_fix_stack_asms): Likewise.
18429         * targhooks.c (default_secondary_reload): Likewise.
18430         * stmt.c (parse_output_constraint): Likewise.
18431         * recog.c (preprocess_constraints): Likewise.
18432         (constrain_operands, peep2_find_free_register): Likewise.
18433         (asm_operand_ok): Likewise, but add a comment saying why 'o'
18434         must be handled specially.
18435
18436 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
18437
18438         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
18439         * genpreds.c (have_const_dbl_constraints): Delete.
18440         (add_constraint): Don't set it.
18441         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
18442         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
18443         constraints using the lookup_constraint logic.
18444         * ira-lives.c (single_reg_class): Likewise.
18445         * ira.c (ira_setup_alts): Likewise.
18446         * lra-constraints.c (process_alt_operands): Likewise.
18447         * recog.c (asm_operand_ok, constrain_operands): Likewise.
18448         * reload.c (find_reloads): Likewise.
18449
18450 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
18451
18452         * genpreds.c (const_int_start, const_int_end): New variables.
18453         (choose_enum_order): Output CONST_INT constraints before memory
18454         constraints.
18455         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
18456         Add CT_CONST_INT.
18457         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
18458         * ira.c (ira_setup_alts): Likewise.
18459         * lra-constraints.c (process_alt_operands): Likewise.
18460         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
18461         * reload.c (find_reloads): Likewise.
18462
18463 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
18464
18465         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
18466         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
18467         * recog.c (preprocess_constraints): Update accordingly.
18468
18469 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
18470
18471         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
18472         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
18473         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
18474         * genpreds.c (print_type_tree): New function.
18475         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
18476         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
18477         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
18478         Write out enum constraint_type and get_constraint_type.
18479         * lra-constraints.c (satisfies_memory_constraint_p): Take a
18480         constraint_num rather than a constraint string.
18481         (satisfies_address_constraint_p): Likewise.
18482         (reg_class_from_constraints): Avoid old constraint macros.
18483         (process_alt_operands, process_address_1): Likewise.
18484         (curr_insn_transform): Likewise.
18485         * ira-costs.c (record_reg_classes): Likewise.
18486         (record_operand_costs): Likewise.
18487         * ira-lives.c (single_reg_class): Likewise.
18488         (ira_implicitly_set_insn_hard_regs): Likewise.
18489         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
18490         * postreload.c (reload_cse_simplify_operands): Likewise.
18491         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
18492         (constrain_operands, peep2_find_free_register): Likewise.
18493         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
18494         (find_reloads, alternative_allows_const_pool_ref): Likewise.
18495         * reload1.c (maybe_fix_stack_asms): Likewise.
18496         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
18497         * targhooks.c (default_secondary_reload): Likewise.
18498         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
18499         to EXTRA_CONSTRAINT_STR.
18500         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
18501
18502 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
18503
18504         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
18505         (write_constraint_satisfied_p_array): ...this new function.
18506         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
18507         an array.
18508         (write_insn_preds_c): Update accordingly.
18509
18510 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
18511
18512         * genpreds.c (write_lookup_constraint): Rename to...
18513         (write_lookup_constraint_1): ...this.
18514         (write_lookup_constraint_array): New function.
18515         (write_tm_preds_h): Define lookup_constraint as an inline function
18516         that uses write_lookup_constraint_array where possible.
18517         (write_insn_preds_c): Update for the changes above.
18518
18519 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
18520
18521         * doc/md.texi (regclass_for_constraint): Rename to...
18522         (reg_class_for_constraint): ...this.
18523         * genpreds.c (num_constraints, enum_order, register_start)
18524         (register_end, satisfied_start, memory_start, memory_end)
18525         (address_start, address_end): New variables.
18526         (add_constraint): Count the number of constraints.
18527         (choose_enum_order): New function.
18528         (write_enum_constraint_num): Iterate over enum_order.
18529         (write_regclass_for_constraint): Rename to...
18530         (write_reg_class_for_constraint_1): ...this and update output
18531         accordingly.
18532         (write_constraint_satisfied_p): Rename to...
18533         (write_constraint_satisfied_p_1): ...this and update output
18534         accordingly.  Do nothing if all extra constraints are register
18535         constraints.
18536         (write_insn_extra_memory_constraint): Delete.
18537         (write_insn_extra_address_constraint): Delete.
18538         (write_range_function): New function.
18539         (write_tm_preds_h): Define constraint_satisfied_p and
18540         reg_class_for_constraint as inline functions that do a range check
18541         before calling the out-of-line function.  Use write_range_function
18542         to implement insn_extra_{register,memory,address}_constraint,
18543         the first of which is new.
18544         (write_insn_preds_c): Update after above changes to write_* functions.
18545         (main): Call choose_enum_order.
18546
18547 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18548
18549         PR tree-optimization/61306
18550         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
18551         expression instead of its size.
18552         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
18553         false to prevent optimization when the result is unpredictable due to
18554         arithmetic right shift of signed type with highest byte is set.
18555         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
18556         (init_symbolic_number): Likewise.
18557         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
18558         when the result is unpredictable due to sign extension.
18559
18560 2014-06-11  Terry Guo  <terry.guo@arm.com>
18561
18562         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
18563         (*thumb1_addsi3): Ditto.
18564         (*thumb_subdi3): Ditto.
18565         (thumb1_subsi3_insn): Ditto.
18566         (*thumb_mulsi3): Ditto.
18567         (*thumb_mulsi3_v6): Ditto.
18568         (*thumb1_andsi3_insn): Ditto.
18569         (thumb1_bicsi3): Ditto.
18570         (*thumb1_iorsi3_insn): Ditto.
18571         (*thumb1_xorsi3_insn): Ditto.
18572         (*thumb1_ashlsi3): Ditto.
18573         (*thumb1_ashrsi3): Ditto.
18574         (*thumb1_lshrsi3): Ditto.
18575         (*thumb1_rotrsi3): Ditto.
18576         (*thumb1_negdi2): Ditto.
18577         (*thumb1_negsi2): Ditto.
18578         (*thumb1_abssi2): Ditto.
18579         (*thumb1_neg_abssi2): Ditto.
18580         (*thumb1_one_cmplsi2): Ditto.
18581         (*thumb1_zero_extendhisi2): Ditto.
18582         (*thumb1_zero_extendqisi2): Ditto.
18583         (*thumb1_zero_extendqisi2_v6): Ditto.
18584         (thumb1_extendhisi2): Ditto.
18585         (thumb1_extendqisi2): Ditto.
18586         (*thumb1_movdi_insn): Ditto.
18587         (*thumb1_movsi_insn): Ditto.
18588         (*thumb1_movhi_insn): Ditto.
18589         (thumb_movhi_clobber): Ditto.
18590         (*thumb1_movqi_insn): Ditto.
18591         (*thumb1_movhf): Ditto.
18592         (*thumb1_movsf_insn): Ditto.
18593         (*thumb_movdf_insn): Ditto.
18594         (movmem12b): Ditto.
18595         (movmem8b): Ditto.
18596         (cbranchqi4): Ditto.
18597         (cbranchsi4_insn): Ditto.
18598         (cbranchsi4_scratch): Ditto.
18599         (*negated_cbranchsi4): Ditto.
18600         (*tbit_cbranch): Ditto.
18601         (*tlobits_cbranch): Ditto.
18602         (*tstsi3_cbranch): Ditto.
18603         (*cbranchne_decr1): Ditto.
18604         (*addsi3_cbranch): Ditto.
18605         (*addsi3_cbranch_scratch): Ditto.
18606         (*thumb_cmpdi_zero): Ditto.
18607         (cstoresi_eq0_thumb1): Ditto.
18608         (cstoresi_ne0_thumb1): Ditto.
18609         (*cstoresi_eq0_thumb1_insn): Ditto.
18610         (*cstoresi_ne0_thumb1_insn): Ditto.
18611         (cstoresi_nltu_thumb1): Ditto.
18612         (cstoresi_ltu_thumb1): Ditto.
18613         (thumb1_addsi3_addgeu): Ditto.
18614         (*thumb_jump): Ditto.
18615         (*call_reg_thumb1_v5): Ditto.
18616         (*call_reg_thumb1): Ditto.
18617         (*call_value_reg_thumb1_v5): Ditto.
18618         (*call_value_reg_thumb1): Ditto.
18619         (*call_insn): Ditto.
18620         (*call_value_insn): Ditto.
18621         (thumb1_casesi_internal_pic): Ditto.
18622         (thumb1_casesi_dispatch): Ditto.
18623         (*thumb1_indirect_jump): Ditto.
18624         (prologue_thumb1_interwork): Ditto.
18625         (*epilogue_insns): Ditto.
18626         (consttable_1): Ditto.
18627         (consttable_2): Ditto.
18628         (tablejump): Ditto.
18629         (*thumb1_tablejump): Ditto.
18630         (thumb_eh_return): Ditto.
18631         (define_peephole2): Two of them are thumb1 only and got moved into
18632         new file thumb1.md.
18633         (define_split): Six of them are thumb1 only and got moved into new
18634         file thumb1.md.
18635         * config/arm/thumb1.md: New file comprised of above thumb1 only
18636         patterns.
18637
18638 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18639
18640         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
18641         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
18642         dependencies.
18643         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
18644         (aarch64_crc_builtin_datum): New struct.
18645         (aarch64_crc_builtin_data): New.
18646         (aarch64_init_crc32_builtins): New function.
18647         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
18648         (aarch64_crc32_expand_builtin): New.
18649         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
18650         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
18651         __ARM_FEATURE_CRC32 when appropriate.
18652         (TARGET_CRC32): Define.
18653         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
18654         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
18655         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
18656         (aarch64_<crc_variant>): New pattern.
18657         * config/aarch64/arm_acle.h: New file.
18658         * config/aarch64/iterators.md (CRC): New int iterator.
18659         (crc_variant, crc_mode): New int attributes.
18660         * doc/aarch64-acle-intrinsics.texi: New file.
18661         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
18662         Include aarch64-acle-intrinsics.texi.
18663
18664 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
18665
18666         * tree-vect-data-refs.c (vect_grouped_store_supported): New
18667         check for stores group of length 3.
18668         (vect_permute_store_chain): New permutations for stores group of
18669         length 3.
18670         * tree-vect-stmts.c (vect_model_store_cost): Change cost
18671         of vec_perm_shuffle for the new permutations.
18672
18673 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
18674
18675         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
18676         table rewriting temporarily on targets not supporting ONE_ONLY.
18677
18678 2014-06-11  Richard Biener  <rguenther@suse.de>
18679
18680         PR middle-end/61437
18681         Revert
18682         2014-06-04  Richard Biener  <rguenther@suse.de>
18683
18684         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
18685         TREE_PUBLIC and DECL_EXTERNAL decls.
18686
18687 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
18688
18689         * varasm.c (set_implicit_section): New function.
18690         (resolve_unique_section): Use it to set implicit section
18691         for aliases, too.
18692         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
18693         (default_function_section): Likewise.
18694         (decl_binds_to_current_def_p): Constify argument.
18695         * varasm.h (decl_binds_to_current_def_p): Update prototype.
18696         * asan.c (asan_protect_global): Use
18697         symtab_get_node (decl)->implicit_section.
18698         * symtab.c (dump_symtab_base): Dump implicit sections.
18699         (verify_symtab_base): Verify sanity of sectoins and comdats.
18700         (symtab_resolve_alias): Alias share the section of its target.
18701         (set_section_1): New function.
18702         (symtab_node::set_section): Move here, recurse to aliases.
18703         (verify_symtab): Check for duplicated symtab lists.
18704         * tree-core.h (implicit_section_name_p): Remove.
18705         * tree-vect-data-refs.c: Include varasm.h.
18706         (vect_can_force_dr_alignment_p): Fix conditional on when
18707         decl bints to current definition; use
18708         symtab_get_node (decl)->implicit_section.
18709         * cgraph.c (cgraph_make_node_local_1): Fix section set.
18710         * cgraph.h (struct symtab_node): Add implicit_section.
18711         (set_section): Rename to ...
18712         (set_section_for_node): ... this one.
18713         (set_section): Declare.
18714         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
18715         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
18716         input_overwrite_node, input_varpool_node): Stream implicit_section.
18717         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
18718         removal; it will fail in LTO.
18719
18720 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18721
18722         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
18723         Change second alternative type to f_mcr.
18724         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
18725         and 12th alternatives' types to f_mcr and f_mrc.
18726         (*movdi_aarch64): Same for 12th and 13th alternatives.
18727         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
18728         (aarch64_movtilow_tilow): Change type to fmov.
18729
18730 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
18731
18732         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
18733         (aarch64_save_or_restore_callee_save_registers): Fix layout.
18734
18735 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18736
18737         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
18738         New expander.
18739         (aarch64_sqrdmulh_lane<mode>): Likewise.
18740         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
18741         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
18742         (aarch64_sqdmulh_laneq<mode>): New expander.
18743         (aarch64_sqrdmulh_laneq<mode>): Likewise.
18744         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
18745         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
18746         (aarch64_sqdmulh_lane<mode>): New expander.
18747         (aarch64_sqrdmulh_lane<mode>): Likewise.
18748         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
18749         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
18750         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
18751         (aarch64_sqdmlal_laneq<mode>): Likewise.
18752         (aarch64_sqdmlsl_lane<mode>): Likewise.
18753         (aarch64_sqdmlsl_laneq<mode>): Likewise.
18754         (aarch64_sqdmlal2_lane<mode>): Likewise.
18755         (aarch64_sqdmlal2_laneq<mode>): Likewise.
18756         (aarch64_sqdmlsl2_lane<mode>): Likewise.
18757         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
18758         (aarch64_sqdmull_lane<mode>): Likewise.
18759         (aarch64_sqdmull_laneq<mode>): Likewise.
18760         (aarch64_sqdmull2_lane<mode>): Likewise.
18761         (aarch64_sqdmull2_laneq<mode>): Likewise.
18762
18763 2014-06-10  Richard Biener  <rguenther@suse.de>
18764
18765         PR tree-optimization/61438
18766         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
18767         (eliminate_dom_walker::before_dom_children): Only try to inhibit
18768         insertion of IVs if running PRE.
18769         (eliminate): Adjust.
18770         (pass_pre::execute): Likewise.
18771         (pass_fre::execute): Likewise.
18772
18773 2014-06-10  Richard Biener  <rguenther@suse.de>
18774
18775         PR middle-end/61456
18776         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
18777         Do not use the main variant for the type comparison.
18778         (ncr_compar): Likewise.
18779         (nonoverlapping_component_refs_p): Likewise.
18780
18781 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
18782
18783         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
18784         REG_CFA_RESTORE mode.
18785
18786 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
18787
18788         * config/i386/i386.c (expand_vec_perm_pblendv): New.
18789         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
18790         expand_vec_perm_pblendv.
18791
18792 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18793
18794         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
18795         available.
18796         Simplify description of __crc32d and __crc32cd intrinsics.
18797         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
18798         availability.
18799
18800 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
18801
18802         PR lto/61334
18803         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
18804         * config.in: Regenerate.
18805         * configure: Likewise.
18806
18807 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
18808
18809         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
18810         and public vars.
18811         (intersect_static_var_sets): Remove.
18812         (propagate): Do not prune local statics.
18813
18814 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
18815
18816         PR fortran/60928
18817         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
18818         Set lastprivate_firstprivate even if omp_private_outer_ref
18819         langhook returns true.
18820         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
18821         langhook, call unshare_expr on new_var and call
18822         build_outer_var_ref to get the last argument.
18823
18824 2014-06-10  Marek Polacek  <polacek@redhat.com>
18825
18826         PR c/60988
18827         * doc/extend.texi: Add cindex for transparent_union.
18828
18829 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18830
18831         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
18832         init_symbolic_number ().
18833
18834 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
18835
18836         PR middle-end/61141
18837         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
18838         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
18839         (verify_rtl_sharing): Likewise.
18840
18841 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
18842
18843         PR c++/54442
18844         * tree.c (build_qualified_type): Use a canonical type for
18845         TYPE_CANONICAL.
18846
18847 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18848
18849         * config/arm/arm-modes.def: Remove XFmode.
18850
18851 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
18852
18853         PR target/61062
18854         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
18855         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
18856         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
18857         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
18858         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
18859         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
18860         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
18861         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
18862         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
18863
18864 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
18865
18866         * tree-core.h (tree_decl_with_vis): Remove section_name.
18867
18868 2014-06-09  Kito Cheng  <kito@0xlab.org>
18869
18870         * ira.c (ira): Don't call init_caller_save if LRA enabled
18871         since LRA use its own infrastructure to handle that.
18872
18873 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
18874
18875         * symtab.c (dump_symtab_base): Update dumping.
18876         (symtab_make_decl_local): Clear only DECL_COMDAT.
18877         * tree-vect-data-refs.c (Check that variable is static before
18878         tampering with sections.
18879         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
18880         (cgraph_create_virtual_clone): Likewise.
18881         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
18882         (decl_section_name, set_decl_section_name): New accessors.
18883         (find_decls_types_r): Do not walk section name
18884         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
18885         (decl_comdat_group, decl_comdat_group_id): Constify.
18886         (decl_section_name, set_decl_section_name): Update.
18887         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
18888         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
18889         (cgraph_make_node_local_1): Clear section and comdat group.
18890         * cgraph.h (set_comdat_group): Sanity check.
18891         (get_section, set_section): New.
18892         * ipa-comdats.c (ipa_comdats): Use get_section.
18893         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
18894         * lto-streamer-out.c: Do not follow section names.
18895         * c-family/c-common.c (handle_section_attribute): Update.
18896         * lto-cgraph.c (lto_output_node): Output section.
18897         (lto_output_varpool_node): Likewise.
18898         (read_comdat_group): Rename to ...
18899         (read_identifier): ... this one.
18900         (read_string_cst): New function.
18901         (input_node, input_varpool_node): Input section names.
18902         * tree-emutls.c (get_emutls_init_templ_addr): Update.
18903         (new_emutls_decl): Update.
18904         (secname_for_decl): Check section names only of static vars.
18905         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
18906         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
18907         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
18908         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
18909         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
18910         * config/mcore/mcore.c (mcore_unique_section): Likewise.
18911         * config/mips/mips.c (mips16_build_function_stub): Likewise.
18912         * config/v850/v850.c (v850_insert_attributes): Likewise.
18913         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
18914         Likewise.
18915         (h8300_handle_tiny_data_attribute): Likewise.
18916         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
18917         (bfin_handle_l2_attribute): Likewise.
18918
18919 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
18920
18921         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
18922         remove static initializer.
18923
18924 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
18925
18926         * varasm.c (use_blocks_for_decl_p): Check symbol table
18927         instead of alias attribute.
18928         (place_block_symbol): Recurse on aliases.
18929
18930 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
18931
18932         * ipa-visibility.c: Include varasm.h
18933         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
18934
18935 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
18936
18937         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
18938         outputting aliases.
18939
18940 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
18941
18942         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
18943         from test_insn into GGC space escape via SET_SRC.
18944
18945 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
18946
18947         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
18948         call statement, if any.
18949         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
18950         statements, if any.  Tidy up.
18951
18952 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
18953
18954         PR target/61431
18955         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
18956         iterators, VSX_D that handles 64-bit types, and VSX_LE that
18957         handles swapping the two 64-bit double words on little endian
18958         systems.  Include V1TImode and optionally TImode in VSX_LE so that
18959         these types are properly swapped.  Change all of the insns and
18960         splits that do the 64-bit swaps to use VSX_LE.
18961         (vsx_le_perm_load_<mode>): Likewise.
18962         (vsx_le_perm_store_<mode>): Likewise.
18963         (splitters for little endian memory operations): Likewise.
18964         (vsx_xxpermdi2_le_<mode>): Likewise.
18965         (vsx_lxvd2x2_le_<mode>): Likewise.
18966         (vsx_stxvd2x2_le_<mode>): Likewise.
18967
18968 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
18969
18970         PR target/61423
18971         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
18972         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
18973         and corresponding splitters.  Zero extend general register
18974         or memory input operand to XMM temporary.  Enable for
18975         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
18976         (floatunssi<mode>2): Update expander predicate.
18977
18978 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
18979
18980         PR rtl-optimization/61325
18981         * lra-constraints.c (process_address_1): Check scale equal to one
18982         to prevent transformation: base + scale * index => base + new_reg.
18983
18984 2014-06-06  Richard Biener  <rguenther@suse.de>
18985
18986         PR tree-optimization/59299
18987         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
18988         a def operand.
18989         (nearest_common_dominator_of_uses): Likewise.
18990         (statement_sink_location): Adjust.  Support sinking loads.
18991
18992 2014-06-06  Martin Jambor  <mjambor@suse.cz>
18993
18994         * ipa-prop.c (get_place_in_agg_contents_list): New function.
18995         (build_agg_jump_func_from_list): Likewise.
18996         (determine_known_aggregate_parts): Renamed to
18997         determine_locally_known_aggregate_parts.  Moved some functionality
18998         to the two functions above, removed bound checks.
18999
19000 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
19001
19002         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
19003         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
19004         (aarch64_progress_pointer): Likewise.
19005         (aarch64_copy_one_part_and_move_pointers): Likewise.
19006         (aarch64_expand_movmen): Likewise.
19007         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
19008         * config/aarch64/aarch64.md (movmem<mode>): New.
19009
19010 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
19011
19012         * targhooks.c (default_add_stmt_cost): Call target specific
19013         hook instead of default one.
19014
19015 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19016
19017         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
19018         endianness instead of host endianness.
19019         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
19020         comments.
19021
19022 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
19023
19024         PR debug/53927
19025         * function.c (instantiate_decls): Process the saved static chain.
19026         (expand_function_start): If not optimizing, save the static chain
19027         onto the stack.
19028         * tree-nested.c (convert_all_function_calls): Always create the static
19029         chain for nested functions if not optimizing.
19030
19031 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
19032
19033         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
19034
19035 2014-06-06  Richard Biener  <rguenther@suse.de>
19036
19037         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
19038         (construct_init_block): Likewise.
19039         (construct_exit_block): Likewise.
19040         (pass_expand::execute): Likewise.
19041         * graphite.c (graphite_transforms): Replace check for current_loops
19042         with a check for > 1 loops.
19043         (pass_graphite_transforms::execute): Adjust.
19044         * ipa-split.c (split_function): Remove check for current_loops.
19045         * omp-low.c (expand_parallel_call): Likewise.
19046         (expand_omp_for_init_counts): Likewise.
19047         (extract_omp_for_update_vars): Likewise.
19048         (expand_omp_for_generic): Likewise.
19049         (expand_omp_sections): Likewise.
19050         (expand_omp_target): Likewise.
19051         * tracer.c (tail_duplicate): Likewise.
19052         (pass_tracer::execute): Likewise.
19053         * trans-mem.c (expand_transaction): Likewise.
19054         * tree-complex.c (expand_complex_div_wide): Likewise.
19055         * tree-eh.c (lower_resx): Likewise.
19056         (cleanup_empty_eh_merge_phis): Likewise.
19057         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
19058         current_loops with a check for > 1 loops.
19059         (pass_predcom::execute): Adjust.
19060         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
19061         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
19062         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
19063         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
19064         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
19065         * tree-switch-conversion.c (process_switch): Likewise.
19066         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
19067         * tree-vrp.c (vrp_visit_phi_node): Likewise.
19068         (execute_vrp): Likewise.
19069         * ubsan.c (ubsan_expand_null_ifn): Likewise.
19070
19071 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
19072
19073         * rtl.h (insn_location): Declare.
19074         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
19075         with UNKNOWN_LOCATION.
19076         * emit-rtl.c (insn_location): New function.
19077         * final.c (notice_source_line): Check that the instruction has a
19078         location before retrieving it and use insn_location.
19079         * modulo-sched.c (loop_single_full_bb_p): Likewise.
19080         * print-rtl.c (print_rtx): Likewise.
19081
19082 2014-06-06  Richard Biener  <rguenther@suse.de>
19083
19084         * passes.def: Move 2nd VRP pass before phi-only-cprop.
19085
19086 2014-06-06  Christian Bruel  <christian.bruel@st.com>
19087
19088         PR tree-optimization/43934
19089         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
19090         cost.
19091
19092 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
19093
19094         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
19095         return NO_REGS for extra address and memory constraints.  Handle
19096         operands that match (or are equivalent to something that matches)
19097         extra constant constraints.  Ignore other non-register operands.
19098
19099 2014-06-06  Alan Modra  <amodra@gmail.com>
19100
19101         PR target/61300
19102         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
19103         * doc/tm.texi: Regenerate.
19104         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
19105         Use throughout in place of REG_PARM_STACK_SPACE.
19106         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
19107         "incoming" param.  Pass to rs6000_function_parms_need_stack.
19108         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
19109         prototype_p when incoming.  Use function decl when incoming
19110         to handle K&R style functions.
19111         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
19112         (INCOMING_REG_PARM_STACK_SPACE): Define.
19113
19114 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
19115
19116         PR target/52472
19117         * cfgexpand.c (expand_debug_expr): Use address space of nested
19118         TREE_TYPE for ADDR_EXPR and MEM_REF.
19119
19120 2014-06-05  Jeff Law  <law@redhat.com>
19121
19122         PR tree-optimization/61289
19123         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
19124         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
19125         looking for those which match LHS.  All callers changed.
19126         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
19127         parameters and code which manipulated them.  All callers changed.
19128         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
19129         and DST_MAP parameters.  Simplify invalidation code by just calling
19130         invalidate_equivalences.  All callers changed.
19131         (thread_across_edge): Simplify now that we don't need to maintain
19132         the map of equivalences to invalidate.
19133
19134 2014-06-05  Kai Tietz  <ktietz@redhat.com>
19135             Richard Henderson  <rth@redhat.com>
19136
19137         PR target/46219
19138         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
19139         checking for !TARGET_X32.
19140         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
19141         (sibcall_intern): New define_insn, plus required peepholes.
19142         (sibcall_pop_intern): Likewise.
19143         (sibcall_value_intern): Likewise.
19144         (sibcall_value_pop_intern): Likewise.
19145
19146 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
19147
19148         * tree-inline.c (tree_function_versioning): Check DF info existence
19149         before accessing it.
19150
19151 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
19152
19153         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
19154         frame_size.
19155         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
19156         aarch64_frame hard_fp_offset and frame_size.
19157         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
19158         frame_size; remove original_frame_size.
19159         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
19160         (aarch64_initial_elimination_offset): Remove frame_size and
19161         offset.  Use aarch64_frame frame_size.
19162
19163 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
19164             Jiong Wang  <jiong.wang@arm.com>
19165             Renlin  <renlin.li@arm.com>
19166
19167         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
19168         initialization of R30 offset.  Update offset.  Iterate core
19169         regisers upto X30.  Remove X29, X30 specific code.
19170
19171 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
19172             Jiong Wang  <jiong.wang@arm.com>
19173
19174         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
19175         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
19176         (aarch64_register_saved_on_entry): Adjust test.
19177
19178 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
19179
19180         * config/aarch64/aarch64.h (machine_function): Move
19181         saved_varargs_size from here...
19182         (aarch64_frame): ... to here.
19183
19184         * config/aarch64/aarch64.c (aarch64_expand_prologue)
19185         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
19186         (aarch64_initial_elimination_offset)
19187         (aarch64_setup_incoming_varargs): Adjust location of
19188         saved_varargs_size.
19189
19190 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
19191
19192         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
19193         layout comment.
19194
19195 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
19196             Prachi Godbole  <Prachi.Godbole@imgtec.com>
19197
19198         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
19199         mips32r5 entry to use PROCESSOR_P5600.
19200         * config/mips/mips-tables.opt: Regenerate.
19201         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
19202         * config/mips/mips.c (mips_fmadd_bypass): New function.
19203         (mips_rtx_cost_data): Add costs for p5600.
19204         (mips_issue_rate): Add support for p5600.
19205         (mips_multipass_dfa_lookahead): Likewise.
19206         * config/mips/mips.h (TUNE_P5600): New define.
19207         (TUNE_MACC_CHAINS): Add TUNE_P5600.
19208         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
19209         * config/mips/mips.md: Include p5600.md.
19210         (processor): Add p5600.
19211         * config/mips/p5600.md: New file.
19212
19213 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
19214
19215         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
19216         * config/i386/predicates.md (palignr_operand): New.
19217         Indicates if permutation is suitable for palignr instruction.
19218
19219 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
19220
19221         PR tree-optimization/61319
19222         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
19223         stmt belongs to loop.
19224
19225 2014-06-05  Richard Biener  <rguenther@suse.de>
19226
19227         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
19228         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
19229         (lookup_tmp_var): Adjust.
19230         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
19231
19232 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19233
19234         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
19235
19236 2014-06-05  Marek Polacek  <polacek@redhat.com>
19237
19238         PR c/49706
19239         * doc/invoke.texi: Document -Wlogical-not-parentheses.
19240
19241 2014-06-04  Tom de Vries  <tom@codesourcery.com>
19242
19243         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
19244         CONST_INT.
19245
19246 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
19247
19248         PR tree-optimization/61385
19249         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
19250
19251 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
19252
19253         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
19254         changed to use fatal_error.
19255         (main): Ensure lto_wrapper_cleanup is run atexit.
19256
19257 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
19258
19259         * lra-constraints.c (valid_address_p): Move earlier in file.
19260         (address_eliminator): New structure.
19261         (satisfies_memory_constraint_p): New function.
19262         (satisfies_address_constraint_p): Likewise.
19263         (process_alt_operands, process_address, curr_insn_transform): Use them.
19264
19265 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
19266
19267         * lra-int.h (lra_static_insn_data): Make operand_alternative a
19268         const pointer.
19269         (target_lra_int, default_target_lra_int, this_target_lra_int)
19270         (op_alt_data): Delete.
19271         * lra.h (lra_init): Delete.
19272         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
19273         (init_insn_code_data_once): Remove op_alt_data handling.
19274         (finish_insn_code_data_once): Likewise.
19275         (init_op_alt_data): Delete.
19276         (get_static_insn_data): Initialize operand_alternative to null.
19277         (free_insn_recog_data): Cast operand_alternative before freeing it.
19278         (setup_operand_alternative): Take the operand_alternative as
19279         parameter and assume it isn't already cached in the static
19280         insn data.
19281         (lra_set_insn_recog_data): Update accordingly.
19282         (lra_init): Delete.
19283         * ira.c (ira_init): Don't call lra_init.
19284         * target-globals.h (this_target_lra_int): Declare.
19285         (target_globals): Remove lra_int.
19286         (restore_target_globals): Update accordingly.
19287         * target-globals.c: Don't include lra-int.h.
19288         (default_target_globals, save_target_globals): Remove lra_int.
19289
19290 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
19291
19292         * recog.h (operand_alternative): Convert reg_class, reject,
19293         matched and matches into bitfields.
19294         (preprocess_constraints): New overload.
19295         (preprocess_insn_constraints): New function.
19296         (preprocess_constraints): Take the insn as parameter.
19297         (recog_op_alt): Change into a pointer.
19298         (target_recog): Add x_op_alt.
19299         * recog.c (asm_op_alt): New variable.
19300         (recog_op_alt): Change into a pointer.
19301         (preprocess_constraints): New overload, replacing the old function
19302         definition with one that doesn't use global state.
19303         (preprocess_insn_constraints): New function.
19304         (preprocess_constraints): Use them.  Take the insn as parameter.
19305         Use asm_op_alt for asms.
19306         (recog_init): Free existing x_op_alt entries.
19307         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
19308         pointer const.
19309         (make_early_clobber_and_input_conflicts): Likewise.
19310         (process_bb_node_lives): Pass the insn to process_constraints.
19311         * reg-stack.c (check_asm_stack_operands): Likewise.
19312         (subst_asm_stack_regs): Likewise.
19313         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
19314         * regrename.c (build_def_use): Likewise.
19315         * sched-deps.c (sched_analyze_insn): Likewise.
19316         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
19317         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
19318         (note_invalid_constants): Likewise.
19319         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
19320         (ix86_legitimate_combined_insn): Make operand_alternative pointer
19321         const.
19322
19323 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
19324
19325         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
19326         * ira-lives.c (check_and_make_def_conflict): Check for disabled
19327         alternatives.
19328         (make_early_clobber_and_input_conflicts): Likewise.
19329         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
19330
19331 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
19332
19333         * recog.h (alternative_class): New function.
19334         (which_op_alt): Return a const recog_op_alt.
19335         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
19336         (subst_asm_stack_regs): Likewise.
19337         * config/arm/arm.c (note_invalid_constants): Likewise.
19338         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
19339         the operand_alternative; use alternative class instead.
19340         * sel-sched.c (get_reg_class): Likewise.
19341         * regrename.c (build_def_use): Likewise.
19342         (hide_operands, restore_operands, record_out_operands): Update type
19343         accordingly.
19344
19345 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
19346
19347         * recog.h (recog_op_alt): Convert to a flat array.
19348         (which_op_alt): New function.
19349         * recog.c (recog_op_alt): Convert to a flat array.
19350         (preprocess_constraints): Update accordingly, grouping all
19351         operands of the same alternative together, rather than the
19352         other way around.
19353         * ira-lives.c (check_and_make_def_conflict): Likewise.
19354         (make_early_clobber_and_input_conflicts): Likewise.
19355         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
19356         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
19357         (subst_asm_stack_regs): Likewise.
19358         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
19359         * regrename.c (hide_operands, record_out_operands): Likewise.
19360         (build_def_use): Likewise.
19361         * sel-sched.c (get_reg_class): Likewise.
19362         * config/arm/arm.c (note_invalid_constants): Likewise.
19363
19364 2014-06-04  Jason Merrill  <jason@redhat.com>
19365
19366         PR c++/51253
19367         PR c++/61382
19368         * gimplify.c (gimplify_arg): Non-static.
19369         * gimplify.h: Declare it.
19370
19371 2014-06-04  Richard Biener  <rguenther@suse.de>
19372
19373         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
19374         TREE_PUBLIC and DECL_EXTERNAL decls.
19375
19376 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
19377
19378         * regcprop.c (copyprop_hardreg_forward_1): Account for
19379         HARD_REGNO_CALL_PART_CLOBBERED.
19380
19381 2014-06-04  Richard Biener  <rguenther@suse.de>
19382
19383         * configure.ac: Check whether the underlying type of int64_t
19384         is long or long long.
19385         * configure: Regenerate.
19386         * config.in: Likewise.
19387         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
19388         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
19389
19390 2014-06-04  Richard Biener  <rguenther@suse.de>
19391
19392         PR tree-optimization/60098
19393         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
19394         we hit a kill.
19395         (dse_optimize_stmt): Simplify, now that we found a kill
19396         earlier.
19397
19398 2014-06-04  Richard Biener  <rguenther@suse.de>
19399
19400         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
19401         of accesses with non-invariant address.
19402
19403 2014-06-04  Martin Liska  <mliska@suse.cz>
19404
19405         * cgraph.h (cgraph_make_wrapper): New function introduced.
19406         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
19407         * ipa-inline.h (inline_analyze_function): The function is global.
19408         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
19409
19410 2014-06-04  Martin Liska  <mliska@suse.cz>
19411
19412         * tree.h (private_lookup_attribute_starting): New function.
19413         (lookup_attribute_starting): Likewise.
19414         * tree.c (private_lookup_attribute_starting): Likewise.
19415
19416 2014-06-04  Martin Liska  <mliska@suse.cz>
19417
19418         * cgraph.h (expand_thunk): New argument added.
19419         (address_taken_from_non_vtable_p): New global function.
19420         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
19421         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
19422         * cgraphunit.c (analyze_function): Likewise.
19423         (assemble_thunks_and_aliases): Argument added to call.
19424         (expand_thunk): New argument forces to produce GIMPLE thunk.
19425
19426 2014-06-04  Martin Liska  <mliska@suse.cz>
19427
19428         * coverage.h (coverage_compute_cfg_checksum): Argument added.
19429         * coverage.c (coverage_compute_cfg_checksum): Likewise.
19430         * profile.c (branch_prob): Likewise.
19431
19432 2014-06-04  Martin Jambor  <mjambor@suse.cz>
19433
19434         PR ipa/61340
19435         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
19436         handler for switch on an ipa_ref_use enum.
19437         * ipa-reference.c (analyze_function): Likewise.
19438
19439 2014-06-04  Kai Tietz  <ktietz@redhat.com>
19440
19441         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
19442         from old call-instruction.
19443
19444 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
19445
19446         * config/aarch64/aarch64.c (aarch64_classify_address)
19447         (aarch64_legitimize_reload_address): Support full addressing modes
19448         for vector modes.
19449         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
19450         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
19451
19452 2014-06-03  Andrew Pinski  <apinski@cavium.com>
19453
19454         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
19455         for OP0.
19456
19457 2014-06-03  Andrew Pinski  <apinski@cavium.com>
19458
19459         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
19460         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
19461
19462 2014-06-03  Kai Tietz  <ktietz@redhat.com>
19463
19464         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
19465         for 64-bit ms-abi.
19466
19467 2014-06-03  Dehao Chen  <dehao@google.com>
19468
19469         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
19470         the same loop.
19471
19472 2014-06-03  Marek Polacek  <polacek@redhat.com>
19473
19474         PR c/60439
19475         * doc/invoke.texi: Document -Wswitch-bool.
19476         * function.c (stack_protect_epilogue): Cast controlling expression of
19477         the switch to int.
19478         * gengtype.c (walk_type): Generate switch expression with its
19479         controlling expression cast to int.
19480
19481 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
19482
19483         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
19484         and attiny841.
19485         * config/avr/avr-tables.opt: Regenerate.
19486         * config/avr/t-multilib: Regenerate.
19487         * doc/avr-mmcu.texi: Regenerate.
19488
19489 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
19490             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
19491
19492         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
19493         (ata6617c, ata664251): Add new avr35 devices.
19494         (ata6612c): Add new avr4 device.
19495         (ata6613c, ata6614q): Add new avr5 devices.
19496         * config/avr/avr-tables.opt: Regenerate.
19497         * config/avr/t-multilib: Regenerate.
19498         * doc/avr-mmcu.texi: Regenerate.
19499
19500 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
19501
19502         * gcc/config/aarch64/aarch64-builtins.c
19503         (aarch64_types_binop_ssu_qualifiers): New static data.
19504         (TYPES_BINOP_SSU): Define.
19505         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
19506         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
19507         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
19508         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
19509         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
19510         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
19511         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
19512         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
19513         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
19514         suffix to builtin function name, remove cast.
19515         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
19516         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
19517         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
19518
19519 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
19520
19521         * gcc/config/aarch64/aarch64-builtins.c
19522         (aarch64_types_binop_uus_qualifiers,
19523         aarch64_types_shift_to_unsigned_qualifiers,
19524         aarch64_types_unsigned_shiftacc_qualifiers): Define.
19525         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
19526         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
19527         sqshlu_n, uqshl_n): Update qualifiers.
19528         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
19529         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
19530         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
19531         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
19532         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
19533         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
19534         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
19535         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
19536         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
19537         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
19538         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
19539         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
19540         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
19541         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
19542         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
19543         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
19544         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
19545         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
19546         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
19547         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
19548         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
19549         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
19550         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
19551         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
19552         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
19553         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
19554         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
19555
19556 2014-06-03  Teresa Johnson  <tejohnson@google.com>
19557
19558         * tree-sra.c (modify_function): Record caller nodes after rebuild.
19559
19560 2014-06-02  Jason Merrill  <jason@redhat.com>
19561
19562         PR c++/61020
19563         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
19564
19565 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
19566
19567         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
19568         location == 0.
19569
19570 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
19571
19572         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
19573         New pattern.
19574         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
19575         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
19576         * config/aarch64/iterators.md (REVERSE): New iterator.
19577         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
19578         (rev_op): New int_attribute.
19579         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
19580         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
19581         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
19582         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
19583         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
19584         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
19585         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
19586         Replace temporary __asm__ with __builtin_shuffle.
19587
19588 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
19589
19590         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
19591         mips64r5.
19592         * config/mips/mips-tables.opt: Regenerate.
19593         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
19594         to use mips_isa_rev rather than ISA_MIPS32R2.
19595         * config/mips/mips.h (ISA_MIPS32R3): New define.
19596         (ISA_MIPS32R5): New define.
19597         (ISA_MIPS64R3): New define.
19598         (ISA_MIPS64R5): New define.
19599         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
19600         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
19601         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
19602         and mips64r5.
19603         (MIPS_ISA_SYNCI_SPEC): Likewise.
19604         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
19605         (LINK_SPEC): Added mips32r3 and mips32r5.
19606         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
19607         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
19608         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
19609         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
19610         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
19611         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
19612         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
19613
19614 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
19615
19616         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
19617         options.
19618         * config/mips/mips.opt (mxpa): New option.
19619         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
19620         assembler.
19621
19622 2014-06-03  Martin Jambor  <mjambor@suse.cz>
19623
19624         PR ipa/61160
19625         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
19626         thunks.
19627
19628 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19629
19630         PR tree-optimization/61328
19631         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
19632         initialization from find_bswap_or_nop_1.
19633         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
19634         in source_expr2 before using the size value the function sets. Also
19635         make use of init_symbolic_number () in both the old place and
19636         find_bswap_or_nop_load () to avoid reading uninitialized memory when
19637         doing recursion in the GIMPLE_BINARY_RHS case.
19638
19639 2014-06-03  Richard Biener  <rguenther@suse.de>
19640
19641         PR tree-optimization/61383
19642         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
19643         stmts can't trap.
19644
19645 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
19646
19647         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
19648         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
19649         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
19650         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
19651         in this file.
19652         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
19653         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
19654         * system.h: ...here and make it unconditional.
19655         * target.def (conditional_register_usage): Mention
19656         define_register_constraint instead of old-style constraint macros.
19657         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
19658         * doc/tm.texi: Regenerate.
19659         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
19660         protected by !USE_MD_CONSTRAINTS.
19661         * config/frv/frv.md: Remove quote from old version of documentation.
19662         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
19663         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
19664         CONST_DOUBLE_OK_FOR_LETTER.
19665         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
19666
19667 2014-06-02  Andrew Pinski  <apinski@cavium.com>
19668
19669         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
19670         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
19671         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
19672         file whose name depends on -mabi= and -mbig-endian.
19673         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
19674         Handle LP64 better and handle ilp32 too.
19675         (MULTILIB_OPTIONS): Delete.
19676         (MULTILIB_DIRNAMES): Delete.
19677
19678 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
19679
19680         * expr.h: Remove prototypes of functions defined in builtins.c.
19681         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
19682         Remove prototypes of functions defined in builtins.c.
19683         * builtins.h: Update prototype list to include all exported functions.
19684         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
19685         no_c99_libc_has_function): Move to targhooks.c
19686         (build_string_literal, build_call_expr_loc_array,
19687         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
19688         to tree.c.
19689         (expand_builtin_object_size, fold_builtin_object_size): Make static.
19690         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
19691         no_c99_libc_has_function): Relocate from builtins.c.
19692         * tree.c: Include builtins.h.
19693         (build_call_expr_loc_array, build_call_expr_loc_vec,
19694         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
19695         from builtins.c.
19696         * fold-const.h (fold_fma): Move prototype to builtins.h.
19697         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
19698         * asan.c: Include builtins.h.
19699         * cfgexpand.c: Likewise.
19700         * convert.c: Likewise.
19701         * emit-rtl.c: Likewise.
19702         * except.c: Likewise.
19703         * expr.c: Likewise.
19704         * fold-const.c: Likewise.
19705         * gimple-fold.c: Likewise.
19706         * gimple-ssa-strength-reduction.c: Likewise.
19707         * gimplify.c: Likewise.
19708         * ipa-inline.c: Likewise.
19709         * ipa-prop.c: Likewise.
19710         * lto-streamer-out.c: Likewise.
19711         * stmt.c: Likewise.
19712         * tree-inline.c: Likewise.
19713         * tree-object-size.c: Likewise.
19714         * tree-sra.c: Likewise.
19715         * tree-ssa-ccp.c: Likewise.
19716         * tree-ssa-forwprop.c: Likewise.
19717         * tree-ssa-loop-ivcanon.c: Likewise.
19718         * tree-ssa-loop-ivopts.c: Likewise.
19719         * tree-ssa-math-opts.c: Likewise.
19720         * tree-ssa-reassoc.c: Likewise.
19721         * tree-ssa-threadedge.c: Likewise.
19722         * tree-streamer-in.c: Likewise.
19723         * tree-vect-data-refs.c: Likewise.
19724         * tree-vect-patterns.c: Likewise.
19725         * tree-vect-stmts.c: Likewise.
19726         * config/aarch64/aarch64.c: Likewise.
19727         * config/alpha/alpha.c: Likewise.
19728         * config/arc/arc.c: Likewise.
19729         * config/arm/arm.c: Likewise.
19730         * config/avr/avr.c: Likewise.
19731         * config/bfin/bfin.c: Likewise.
19732         * config/c6x/c6x.c: Likewise.
19733         * config/cr16/cr16.c: Likewise.
19734         * config/cris/cris.c: Likewise.
19735         * config/epiphany/epiphany.c: Likewise.
19736         * config/fr30/fr30.c: Likewise.
19737         * config/frv/frv.c: Likewise.
19738         * config/h8300/h8300.c: Likewise.
19739         * config/i386/i386.c: Likewise.
19740         * config/i386/winnt.c: Likewise.
19741         * config/ia64/ia64.c: Likewise.
19742         * config/iq2000/iq2000.c: Likewise.
19743         * config/lm32/lm32.c: Likewise.
19744         * config/m32c/m32c.c: Likewise.
19745         * config/m32r/m32r.c: Likewise.
19746         * config/m68k/m68k.c: Likewise.
19747         * config/mcore/mcore.c: Likewise.
19748         * config/mep/mep.c: Likewise.
19749         * config/microblaze/microblaze.c: Likewise.
19750         * config/mips/mips.c: Likewise.
19751         * config/mmix/mmix.c: Likewise.
19752         * config/mn10300/mn10300.c: Likewise.
19753         * config/moxie/moxie.c: Likewise.
19754         * config/msp430/msp430.c: Likewise.
19755         * config/nds32/nds32.c: Likewise.
19756         * config/pa/pa.c: Likewise.
19757         * config/pdp11/pdp11.c: Likewise.
19758         * config/picochip/picochip.c: Likewise.
19759         * config/rl78/rl78.c: Likewise.
19760         * config/rs6000/rs6000.c: Likewise.
19761         * config/rx/rx.c: Likewise.
19762         * config/s390/s390.c: Likewise.
19763         * config/score/score.c: Likewise.
19764         * config/sh/sh.c: Likewise.
19765         * config/sparc/sparc.c: Likewise.
19766         * config/spu/spu.c: Likewise.
19767         * config/stormy16/stormy16.c: Likewise.
19768         * config/tilegx/tilegx.c: Likewise.
19769         * config/tilepro/tilepro.c: Likewise.
19770         * config/v850/v850.c: Likewise.
19771         * config/vax/vax.c: Likewise.
19772         * config/xtensa/xtensa.c: Likewise.
19773
19774 2014-06-02  Jeff Law  <law@redhat.com>
19775
19776         PR rtl-optimization/61094
19777         * ree.c (combine_reaching_defs): Do not reextend an insn if it
19778         was marked as do_no_reextend.  If a copy is needed to eliminate
19779         an extension, then mark it as do_not_reextend.
19780
19781 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
19782
19783         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
19784
19785 2014-06-02  Richard Henderson  <rth@redhat.com>
19786
19787         PR target/61336
19788         * config/alpha/alpha.c (print_operand_address): Allow symbolic
19789         addresses inside asms.  Use output_operand_lossage instead of
19790         gcc_unreachable.
19791
19792 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
19793
19794         PR target/61239
19795         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
19796         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
19797
19798 2014-06-02  Tom de Vries  <tom@codesourcery.com>
19799
19800         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
19801         case that x has VOIDmode.
19802
19803 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
19804
19805         * varasm.c (copy_constant): Delete function.
19806         (build_constant_desc): Don't call it.
19807
19808 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19809
19810         PR target/61154
19811         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
19812         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
19813         with immediate_operand.
19814
19815 2014-06-02  Andreas Schwab  <schwab@suse.de>
19816
19817         * config/ia64/ia64.c
19818         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
19819         pending_data_specs first.
19820
19821 2014-06-02  Richard Biener  <rguenther@suse.de>
19822
19823         PR tree-optimization/61378
19824         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
19825         valueized_anything.
19826
19827 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
19828
19829         * config/i386/constraints.md (Bw): Rename from 'w'.
19830         (Bz): Rename from 'z'.
19831         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
19832
19833 2014-06-01  Kai Tietz  <ktietz@redhat.com>
19834
19835         PR target/61377
19836         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
19837         * config/i386/i386.md (sibcall_insn_operand): Use Bs
19838         instead of m constraint.
19839
19840 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
19841
19842         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
19843         a separate alternative where the scratch operand 2 is marked as
19844         early clobber.
19845
19846 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
19847
19848         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
19849         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
19850         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
19851         and __builtins_arm_get_fpscr.
19852         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
19853         __builtins_arm_get_fpscr.
19854         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
19855         __builtins_arm_ldfpscr.
19856         (arm_atomic_assign_expand_fenv): New function.
19857         * config/arm/vfp.md (set_fpscr): New pattern.
19858         (get_fpscr) : Likewise.
19859         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
19860         VUNSPEC_SET_FPSCR.
19861         * doc/extend.texi (AARCH64 Built-in Functions) : Document
19862         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
19863
19864 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
19865
19866         * asan.c (report_error_func): Add SLOW_P argument, use
19867         BUILT_IN_ASAN_*_N if set.
19868         (build_check_stmt): Likewise.
19869         (instrument_derefs): If T has insufficient alignment,
19870         force same handling as for odd sizes.
19871
19872         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
19873         BUILT_IN_ASAN_REPORT_STORE_N): New.
19874         * asan.c (struct asan_mem_ref): Change access_size type to
19875         HOST_WIDE_INT.
19876         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
19877         update_mem_ref_hash_table): Likewise.
19878         (asan_mem_ref_hasher::hash): Hash in a HWI.
19879         (report_error_func): Change size_in_bytes argument to HWI.
19880         Use *_N builtins if size_in_bytes is larger than 16 or not power of
19881         two.
19882         (build_shadow_mem_access): New function.
19883         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
19884         Handle size_in_bytes not power of two or larger than 16.
19885         (instrument_derefs): Don't give up if size_in_bytes is not
19886         power of two or is larger than 16.
19887
19888 2014-05-30  Kai Tietz  <ktietz@redhat.com>
19889
19890         PR target/60104
19891         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
19892         for sibling-tail-calls.
19893         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
19894         to its use.
19895         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
19896         (sibcall_insn_operand): Add check for sibcall_memory_operand.
19897
19898 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
19899
19900         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
19901         * config/avr/avr-tables.opt: Regenerate.
19902         * config/avr/t-multilib: Regenerate.
19903         * doc/avr-mmcu.texi: Regenerate.
19904
19905 2014-05-30  Ian Lance Taylor  <iant@google.com>
19906
19907         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
19908         target("sse").
19909
19910 2014-05-30  Tom de Vries  <tom@codesourcery.com>
19911
19912         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
19913         Redefine as true.
19914
19915 2014-05-30  Tom de Vries  <tom@codesourcery.com>
19916
19917         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
19918         * lra.c (initialize_lra_reg_info_element): Add init of
19919         actual_call_used_reg_set field.
19920         (lra): Call lra_create_live_ranges before lra_inheritance for
19921         -fuse-caller-save.
19922         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
19923         -fuse-caller-save.
19924         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
19925         instead of call_used_reg_set for -fuse-caller-save.
19926         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
19927
19928 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19929
19930         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
19931         to mov_imm.
19932         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
19933
19934 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
19935
19936         * ira.c (ira_get_dup_out_num): Check for output operands at
19937         the start of the loop.  Handle cases where an included alternative
19938         follows an excluded one.
19939
19940 2014-05-29  Mike Stump  <mikestump@comcast.net>
19941
19942         PR debug/61352
19943         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
19944         post ld passes when lto is used.
19945
19946 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
19947
19948         PR rtl-optimization/61325
19949         * lra-constraints.c (process_address): Rename to process_address_1.
19950         (process_address): New function.
19951
19952 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
19953
19954         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
19955         TYPES_BINOPV): New static data.
19956         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
19957         New builtin.
19958         * config/aarch64/aarch64-simd.md (aarch64_ext,
19959         aarch64_im_lane_boundsi): New patterns.
19960         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
19961         patterns for EXT.
19962         (aarch64_evpc_ext): New function.
19963
19964         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
19965
19966         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
19967         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
19968         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
19969         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
19970         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
19971
19972 2014-05-29  Tom de Vries  <tom@codesourcery.com>
19973
19974         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
19975
19976 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
19977             Richard Sandiford  <rdsandiford@googlemail.com>
19978
19979         * arm/iterators.md (shiftable_ops): New code iterator.
19980         (t2_binop0, arith_shift_insn): New code attributes.
19981         * arm/predicates.md (shift_nomul_operator): New predicate.
19982         * arm/arm.md (insn_enabled): Delete.
19983         (enabled): Remove insn_enabled test.
19984         (*arith_shiftsi): Delete.  Replace with ...
19985         (*<arith_shift_insn>_multsi): ... new pattern.
19986         (*<arith_shift_insn>_shiftsi): ... new pattern.
19987         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
19988
19989 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
19990             Tom de Vries  <tom@codesourcery.com>
19991
19992         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
19993         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
19994         clobber.
19995         (mips_split_call): Use POST_CALL_TMP_REG.
19996         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
19997
19998 2014-05-29  Tom de Vries  <tom@codesourcery.com>
19999
20000         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
20001         with #ifdef STACK_REGS.
20002
20003 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
20004
20005         * varasm.c (get_variable_section): Walk aliases.
20006         (place_block_symbol): Walk aliases.
20007
20008 2014-05-28  Tom de Vries  <tom@codesourcery.com>
20009
20010         Revert:
20011         2014-05-28  Tom de Vries  <tom@codesourcery.com>
20012
20013         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
20014         * lra.c (initialize_lra_reg_info_element): Add init of
20015         actual_call_used_reg_set field.
20016         (lra): Call lra_create_live_ranges before lra_inheritance for
20017         -fuse-caller-save.
20018         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
20019         -fuse-caller-save.
20020         * lra-constraints.c (need_for_call_save_p): Use
20021         actual_call_used_reg_set instead of call_used_reg_set for
20022         -fuse-caller-save.
20023         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
20024
20025 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
20026
20027         * doc/md.texi: Document that the % constraint character must
20028         be at the beginning of the string.
20029         * genoutput.c (validate_insn_alternatives): Check that '=',
20030         '+' and '%' only appear at the beginning of a constraint.
20031         * ira.c (commutative_constraint_p): Delete.
20032         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
20033         at the start of the string.
20034         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
20035         duplicate '='s.
20036         * config/arm/neon.md (bicdi3_neon): Likewise.
20037         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
20038         (slt_si, sltu_si): Likewise.
20039         * config/vax/vax.md (sbcdi3): Likewise.
20040         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
20041         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
20042         (mul64): Move '%' to beginning of constraint.
20043         * config/arm/arm.md (*xordi3_insn): Likewise.
20044         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
20045         (xorsi3): Likewise.
20046
20047 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
20048
20049         * doc/md.texi: Document the restrictions on the "enabled" attribute.
20050
20051 2014-05-28  Jason Merrill  <jason@redhat.com>
20052
20053         PR c++/47202
20054         * cgraph.h (symtab_node::get_comdat_group_id): New.
20055         * cgraphunit.c (analyze_functions): Call it.
20056         * symtab.c (dump_symtab_node): Likewise.
20057         * tree.c (decl_comdat_group_id): New.
20058         * tree.h: Declare it.
20059         * lto-streamer-out.c (write_symbol): Use it.
20060         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
20061
20062 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
20063
20064         PR bootstrap/PR61146
20065         * wide-int.cc: Do not include longlong.h when compiling with clang.
20066
20067 2014-05-28  Richard Biener  <rguenther@suse.de>
20068
20069         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
20070         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
20071         (vrp_visit_assignment_or_call): Print less vertical space.
20072         (vrp_visit_stmt): Likewise.
20073         (vrp_visit_phi_node): Likewise.  For a PHI argument with
20074         VR_VARYING range consider recording it as copy.
20075
20076 2014-05-28  Richard Biener  <rguenther@suse.de>
20077
20078         Revert
20079         2014-05-28  Richard Biener  <rguenther@suse.de>
20080
20081         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
20082
20083 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20084
20085         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
20086         sufficiently aligned and an offset is used at the same time.
20087         (expand_expr_real_1): Likewise.
20088
20089 2014-05-28  Richard Biener  <rguenther@suse.de>
20090
20091         PR middle-end/61045
20092         * fold-const.c (fold_comparison): When folding
20093         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
20094         the sign of the remaining constant operand stays the same.
20095
20096 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
20097
20098         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
20099         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
20100         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
20101         to the assembler.
20102         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
20103         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
20104         (m32bit-doubles) Likewise.
20105         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
20106         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
20107         option for RL78.
20108
20109 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20110
20111         * configure.ac ($gcc_cv_ld_clearcap): New test.
20112         * configure: Regenerate.
20113         * config.in: Regenerate.
20114         * config/sol2.opt (mclear-hwcap): New option.
20115         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
20116         * config/sol2-clearcap.map: Moved here from
20117         testsuite/gcc.target/i386/clearcap.map.
20118         * config/sol2-clearcapv2.map: Move here from
20119         gcc.target/i386/clearcapv2.map.
20120         * config/t-sol2 (install): Depend on install-clearcap-map.
20121         (install-clearcap-map): New target.
20122         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
20123         -mclear-hwcap.
20124
20125 2014-05-28  Richard Biener  <rguenther@suse.de>
20126
20127         * hwint.h (*_HALF_WIDE_INT*): Move to ...
20128         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
20129         ... here and remove the rest.
20130         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
20131
20132 2014-05-28  Richard Biener  <rguenther@suse.de>
20133
20134         PR tree-optimization/61335
20135         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
20136         new range fails, drop to varying.
20137
20138 2014-05-28  Olivier Hainque  <hainque@adacore.com>
20139
20140         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
20141         (CPP_SPEC): Add entry for -mcpu=8548.
20142         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
20143         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
20144
20145 2014-05-28  Tom de Vries  <tom@codesourcery.com>
20146
20147         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
20148         * lra.c (initialize_lra_reg_info_element): Add init of
20149         actual_call_used_reg_set field.
20150         (lra): Call lra_create_live_ranges before lra_inheritance for
20151         -fuse-caller-save.
20152         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
20153         -fuse-caller-save.
20154         * lra-constraints.c (need_for_call_save_p): Use
20155         actual_call_used_reg_set instead of call_used_reg_set for
20156         -fuse-caller-save.
20157         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
20158
20159 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
20160             Tom de Vries  <tom@codesourcery.com>
20161
20162         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
20163         to gccoptlist.
20164         (@item -fuse-caller-save): New item.
20165
20166 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
20167             Tom de Vries  <tom@codesourcery.com>
20168
20169         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
20170         OPT_fuse_caller_save.
20171
20172 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
20173             Tom de Vries  <tom@codesourcery.com>
20174
20175         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
20176         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
20177         get_call_reg_set_usage.
20178         * resource.c (mark_set_resources, mark_target_live_regs): Use
20179         get_call_reg_set_usage.
20180         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
20181         field.
20182         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
20183         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
20184         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
20185         * ira-build.c (ira_create_allocno): Init
20186         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
20187         (create_cap_allocno, propagate_allocno_info)
20188         (propagate_some_info_from_allocno)
20189         (copy_info_to_removed_store_destinations): Handle
20190         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
20191         * ira-costs.c (ira_tune_allocno_costs): Use
20192         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
20193
20194 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
20195             Tom de Vries  <tom@codesourcery.com>
20196
20197         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
20198         and function_used_regs_valid fields.
20199         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
20200         find_all_hard_reg_sets.
20201         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
20202         (get_call_reg_set_usage): New function.
20203         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
20204         * regs.h (get_call_reg_set_usage): Declare.
20205
20206 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
20207
20208         PR libgcc/61152
20209         * config/dbx.h (License): Add Runtime Library Exception.
20210         * config/newlib-stdint.h (License): Same.
20211         * config/rtems.h (License): Same
20212         * config/initfini-array.h (License): Same
20213         * config/v850/v850.h (License): Same.
20214         * config/v850/v850-opts.h (License): Same
20215         * config/v850/rtems.h (License): Same.
20216
20217 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
20218
20219         PR target/61044
20220         * doc/extend.texi (Local Labels): Note that label differences are
20221         not supported for AVR.
20222
20223 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
20224             Olivier Hainque  <hainque@adacore.com>
20225
20226         * rtl.h (set_for_reg_notes): Declare.
20227         * emit-rtl.c (set_for_reg_notes): New function.
20228         (set_unique_reg_note): Use it.
20229         * optabs.c (add_equal_note): Likewise
20230
20231 2014-05-27  Andrew Pinski  <apinski@cavium.com>
20232
20233         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
20234         Use <w> for the register in assembly template.
20235         (stack_protect_test): Use the mode of operands[0] for the result.
20236         (stack_protect_test_<mode>): Use <w> for the register
20237         in assembly template.
20238
20239 2014-05-27  DJ Delorie  <dj@redhat.com>
20240
20241         * config/rx/rx.c (add_vector_labels): New.
20242         (rx_output_function_prologue): Call it.
20243         (rx_handle_func_attribute): Don't require empty arguments.
20244         (rx_handle_vector_attribute): New.
20245         (rx_attribute_table): Add "vector" attribute.
20246         * doc/extend.texi (interrupt, vector): Document new/changed
20247         RX-specific attributes.
20248
20249         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
20250
20251 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
20252
20253         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
20254         predicate to detect a negative quotient.
20255
20256 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
20257
20258         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
20259         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
20260         Add X - Y CMP 0 to X CMP Y transformation.
20261         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
20262
20263 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
20264
20265         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
20266         before printing.
20267
20268 2014-05-27  Steve Ellcey  <sellcey@mips.com>
20269
20270         * config/mips/mips.c: Add include of cgraph.h.
20271
20272 2014-05-27  Richard Biener  <rguenther@suse.de>
20273
20274         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
20275
20276 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
20277
20278         PR libgcc/61152
20279         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
20280         * config/arm/arm-cores.def (License): Same.
20281         * config/arm/arm-opts.h (License): Same.
20282         * config/arm/aout.h (License): Same.
20283         * config/arm/bpabi.h (License): Same.
20284         * config/arm/elf.h (License): Same.
20285         * config/arm/linux-elf.h (License): Same.
20286         * config/arm/linux-gas.h (License): Same.
20287         * config/arm/netbsd-elf.h (License): Same.
20288         * config/arm/uclinux-eabi.h (License): Same.
20289         * config/arm/uclinux-elf.h (License): Same.
20290         * config/arm/vxworks.h (License): Same.
20291
20292 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20293
20294         * config/arm/neon.md (neon_bswap<mode>): New pattern.
20295         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
20296         (arm_init_neon_builtins): Handle NEON_BSWAP.
20297         Define required type nodes.
20298         (arm_expand_neon_builtin): Handle NEON_BSWAP.
20299         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
20300         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
20301         * config/arm/iterators.md (VDQHSD): New mode iterator.
20302
20303 2014-05-27  Richard Biener  <rguenther@suse.de>
20304
20305         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
20306         Try using literal operands when comparing value-ranges failed.
20307
20308 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
20309
20310         * ira.c (commutative_operand): Adjust for change to recog_data.
20311         [Missing from previous commit.]
20312
20313 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
20314
20315         * system.h (TEST_BIT): New macro.
20316         * recog.h (alternative_mask): New type.
20317         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
20318         (recog_data_d): Replace alternative_enabled_p array with
20319         enabled_alternatives.
20320         (target_recog): New structure.
20321         (default_target_recog, this_target_recog): Declare.
20322         (get_enabled_alternatives, recog_init): Likewise.
20323         * recog.c (default_target_recog, this_target_recog): New variables.
20324         (get_enabled_alternatives): New function.
20325         (extract_insn): Use it.
20326         (recog_init): New function.
20327         (preprocess_constraints, constrain_operands): Adjust for change to
20328         recog_data.
20329         * postreload.c (reload_cse_simplify_operands): Likewise.
20330         * reload.c (find_reloads): Likewise.
20331         * ira-costs.c (record_reg_classes): Likewise.
20332         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
20333         all alternatives after a disabled one would be skipped.
20334         (ira_implicitly_set_insn_hard_regs): Likewise.
20335         * ira.c (ira_setup_alts): Adjust for change to recog_data.
20336         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
20337         with enabled_alternatives.
20338         * lra.c (free_insn_recog_data): Update accordingly.
20339         (lra_update_insn_recog_data): Likewise.
20340         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
20341         * lra-constraints.c (process_alt_operands): Likewise.  Handle
20342         only_alternative as part of the enabled mask.
20343         * target-globals.h (this_target_recog): Declare.
20344         (target_globals): Add a recog field.
20345         (restore_target_globals): Restore this_target_recog.
20346         * target-globals.c: Include recog.h.
20347         (default_target_globals): Initialize recog field.
20348         (save_target_globals): Likewise.
20349         * reginfo.c (reinit_regs): Call recog_init.
20350         * toplev.c (backend_init_target): Likewise.
20351
20352 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
20353
20354         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
20355         rather than any named insn's code.
20356
20357 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
20358
20359         PR libgcc/61152
20360         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
20361         * config/arm/arm-cores.def (License): Same.
20362
20363 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
20364
20365         * tree.h (decl_comdat_group): Declare.
20366         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
20367         * tree.c (decl_comdat_group): Here.
20368
20369 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
20370
20371         PR rtl-optimization/61222
20372         * combine.c (simplify_shift_const_1): When moving a PLUS outside
20373         the shift, truncate the PLUS operand to the result mode.
20374
20375 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
20376
20377         PR target/61271
20378         * config/i386/i386.c (ix86_rtx_costs)
20379         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
20380         Fix condition.
20381
20382 2014-05-26  Martin Jambor  <mjambor@suse.cz>
20383
20384         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
20385         subreg uses.
20386
20387 2014-05-26  Richard Biener  <rguenther@suse.de>
20388
20389         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
20390         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
20391         Provide specializations.
20392         (wi::int_traits <HOST_WIDE_INT>,
20393         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
20394
20395 2014-05-26  Alan Modra  <amodra@gmail.com>
20396
20397         PR target/61098
20398         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
20399         params and return a bool.  Remove dead code.  Update comment.
20400         Assert we have a const_int source.  Remove bogus code from
20401         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
20402         handling of constants > 2G and reg_equal note, from..
20403         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
20404         return value.  Update comment.  If we can, use a new pseudo
20405         for intermediate calculations.
20406         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
20407         prototype.
20408         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
20409         call to rs6000_emit_set_const in splitter.
20410         (movdi_internal64+2, +3): Likewise.
20411
20412 2014-05-26  Richard Biener  <rguenther@suse.de>
20413
20414         * system.h: Define __STDC_FORMAT_MACROS before
20415         including inttypes.h.
20416         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
20417         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
20418         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
20419         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
20420         HOST_WIDEST_INT_C): Remove.
20421         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
20422         if C99 inttypes.h is not available.
20423         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
20424         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
20425         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
20426         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
20427         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
20428         (struct output_info): Likewise.
20429         (print_statistics): Adjust.
20430         (dump_bitmap_statistics): Likewise.
20431         * bt-load.c (migrate_btr_defs): Print with PRId64.
20432         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
20433         (MAX_SAFE_MULTIPLIER): Adjust.
20434         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
20435         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
20436         dump_cgraph_node): Likewise.
20437         * final.c (dump_basic_block_info): Likewise.
20438         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
20439         * gcov.c (format_gcov): Likewise.
20440         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
20441         for calculation.
20442         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
20443         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
20444         (inline_small_functions, dump_overall_stats, dump_inline_stats):
20445         Use PRId64 for dumping.
20446         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
20447         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
20448         (add_allocno_hard_regs): Adjust.
20449         * loop-doloop.c (doloop_modify): Print using PRId64.
20450         * loop-iv.c (inverse): Compute in uint64_t.
20451         (determine_max_iter, iv_number_of_iterations): Likewise.
20452         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
20453         Print using PRId64.
20454         * lto-streamer-out.c (write_symbol): Use uint64_t.
20455         * mcf.c (CAP_INFINITY): Use int64_t maximum.
20456         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
20457         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
20458         * modulo-sched.c (const_iteration_count): Use int64_t.
20459         (sms_schedule): Dump using PRId64.
20460         * predict.c (dump_prediction): Likewise.
20461         * pretty-print.h (pp_widest_integer): Remove.
20462         * profile.c (get_working_sets, is_edge_inconsistent,
20463         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
20464         * tree-pretty-print.c (pp_double_int): Remove case handling
20465         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
20466         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
20467         and adjust users.
20468         (pass_optimize_bswap::execute): Remove restriction on hosts.
20469         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
20470         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
20471         * tree.c (widest_int_cst_value): Remove.
20472         * tree.h (widest_int_cst_value): Likewise.
20473         * value-prof.c (dump_histogram_value): Print using PRId64.
20474         * gengtype.c (main): Also inject int64_t.
20475         * ggc-page.c (struct max_alignment): Use int64_t.
20476         * alloc-pool.c (struct allocation_object_def): Likewise.
20477         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
20478         for computation.
20479         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
20480         * doc/tm.texi: Regenerated.
20481         * gengtype-lex.l (IWORD): Handle [u]int64_t.
20482         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
20483         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
20484         mmix_output_register_setting): Use [u]int64_t in prototypes.
20485         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
20486         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
20487         mmix_output_octa, mmix_output_shifted_value): Adjust.
20488         (mmix_intval): Adjust.  Remove unreachable case.
20489         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
20490
20491 2014-05-26  Richard Biener  <rguenther@suse.de>
20492
20493         * configure.ac: Drop __int64 type check.  Insist that we
20494         found uint64_t and int64_t.
20495         * hwint.h (HOST_BITS_PER___INT64): Remove.
20496         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
20497         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
20498         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
20499         (HOST_WIDEST_FAST_INT): Remove __int64 case.
20500         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
20501         for dst_q_src_df_rms_cdt.
20502         * configure: Regenerate.
20503         * config.in: Likewise.
20504
20505 2014-05-26  Michael Tautschnig  <mt@debian.org>
20506
20507         PR target/61249
20508         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
20509         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
20510
20511 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20512
20513         PR rtl-optimization/61278
20514         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
20515
20516 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20517
20518         PR rtl-optimization/61220
20519         Part of PR rtl-optimization/61225
20520         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
20521         insn; skip split_edge for a block with only one successor.
20522
20523 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
20524
20525         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
20526         for variables.
20527
20528 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
20529
20530         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
20531         (update_vtable_references): New function.
20532         (function_and_variable_visibility): Rewrite also vtable initializers.
20533         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
20534
20535 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
20536
20537         * ggc.h (ggc_grow): New function.
20538         * ggc-none.c (ggc_grow): New function.
20539         * ggc-page.c (ggc_grow): Likewise.
20540
20541 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
20542
20543         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
20544         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
20545         comdat_can_be_unshared_p, cgraph_externally_visible_p,
20546         varpool_externally_visible_p, can_replace_by_local_alias,
20547         update_visibility_by_resolution_info, function_and_variable_visibility,
20548         pass_data_ipa_function_and_variable_visibility,
20549         make_pass_ipa_function_and_variable_visibility,
20550         whole_program_function_and_variable_visibility,
20551         pass_data_ipa_whole_program_visibility,
20552         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
20553         * cgraph.h (cgraph_local_node_p): Declare.
20554         * ipa-visibility.c: New file.
20555         * Makefile.in (OBJS): Add ipa-visiblity.o
20556
20557 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
20558
20559         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
20560         that var decl is available.
20561
20562 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
20563
20564         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
20565         symtab_node pointer.
20566         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
20567         (find_decls_types_r): Do not walk COMDAT_GROUP.
20568         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
20569         * varasm.c (make_decl_one_only): Use set_comdat_group;
20570         create node if needed.
20571         * ipa-inline-transform.c (save_inline_function_body): Update
20572         way we decl->symtab mapping.
20573         * symtab.c (symtab_hash, hash_node, eq_node
20574         symtab_insert_node_to_hashtable): Remove.
20575         (symtab_register_node): Update.
20576         (symtab_unregister_node): Update.
20577         (symtab_get_node): Reimplement as inline function.
20578         (symtab_add_to_same_comdat_group): Update.
20579         (symtab_dissolve_same_comdat_group_list): Update.
20580         (dump_symtab_base): Update.
20581         (verify_symtab_base): Update.
20582         (symtab_make_decl_local): Update.
20583         (fixup_same_cpp_alias_visibility): Update.
20584         (symtab_nonoverwritable_alias): Update.
20585         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
20586         * ipa.c (update_visibility_by_resolution_info): UPdate.
20587         * bb-reorder.c: Include cgraph.h
20588         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
20589         with comdat groups.
20590         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
20591         * cgraph.c (cgraph_get_create_node): Update.
20592         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
20593         and comdat_group_.
20594         (symtab_get_node): Make inline.
20595         (symtab_insert_node_to_hashtable): Remove.
20596         (symtab_can_be_discarded): Update.
20597         (decl_comdat_group): New function.
20598         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
20599         Update.
20600         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
20601         comdat group name.
20602         (read_comdat_group): New function.
20603         (input_node, input_varpool_node): Use it.
20604         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
20605         comdat groups.
20606         * mips.c (mips_start_unique_function): Likewise.
20607         (ix86_code_end): Likewise.
20608         (rs6000_code_end): Likweise.
20609         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
20610
20611 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
20612
20613         * gengtype-state.c (fatal_reading_state): Bring offline.
20614         * optabs.c (widening_optab_handler): Bring offline.
20615         * optabs.h (widening_optab_handler): Likewise.
20616         * final.c (get_attr_length_1): Likewise.
20617
20618 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
20619
20620         * sched-int.h (sd_iterator_cond): Manually tail recurse.
20621
20622 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
20623
20624         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
20625         (ppc440-compare): Include shift with dot.
20626         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
20627         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
20628         without dot.
20629         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
20630         without dot.
20631         (e6500_sfx2): Include it.
20632         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
20633         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
20634         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
20635         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
20636         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
20637         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
20638         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
20639         *lshiftrt_internal1le, *lshiftrt_internal1be,
20640         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
20641         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
20642         *rotldi3_internal10le, *rotldi3_internal10be,
20643         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
20644         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
20645         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
20646         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
20647         define_insns): Use type "shift" in the appropriate alternatives.
20648
20649 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
20650
20651         * config/rs6000/rs6000.md (type): Add "logical".  Delete
20652         "fast_compare".
20653         (dot): Adjust comment.
20654         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
20655         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
20656         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
20657         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
20658         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
20659         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
20660         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
20661         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
20662
20663         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
20664         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
20665         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
20666         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
20667         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
20668         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
20669         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
20670         * config/rs6000/8540.md (ppc8540_su): Adjust.
20671         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
20672         cell-cmp-microcoded): Adjust.
20673         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
20674         * config/rs6000/e500mc.md (e500mc_su): Adjust.
20675         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
20676         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
20677         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
20678         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
20679         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
20680         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
20681         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
20682         Adjust.
20683         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
20684         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
20685         Adjust.  Adjust comment.
20686         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
20687         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
20688
20689 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
20690
20691         * config/rs6000/rs6000.md (type): Add "add".
20692         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
20693         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
20694         define_insns): Use it.
20695         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
20696
20697         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
20698         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
20699         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
20700         * config/rs6000/601.md (ppc601-integer): Adjust.
20701         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
20702         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
20703         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
20704         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
20705         * config/rs6000/8540.md (ppc8540_su): Adjust.
20706         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
20707         cell-cmp-microcoded): Adjust.
20708         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
20709         * config/rs6000/e500mc.md (e500mc_su): Adjust.
20710         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
20711         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
20712         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
20713         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
20714         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
20715         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
20716         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
20717         Adjust.
20718         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
20719         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
20720         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
20721         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
20722
20723 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
20724
20725         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
20726         "delayed_compare", "var_delayed_compare".
20727         (var_shift): New attribute.
20728         (cell_micro): Adjust.
20729         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
20730         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
20731         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
20732         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
20733         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
20734         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
20735         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
20736         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
20737         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
20738         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
20739         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
20740         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
20741         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
20742         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
20743         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
20744         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
20745         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
20746         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
20747         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
20748         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
20749         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
20750         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
20751         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
20752         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
20753         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
20754
20755         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
20756         * config/rs6000/440.md (ppc440-integer): Adjust.
20757         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
20758         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
20759         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
20760         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
20761         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
20762         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
20763         * config/rs6000/8540.md (ppc8540_su): Adjust.
20764         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
20765         cell-cmp-microcoded): Adjust.
20766         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
20767         * config/rs6000/e500mc.md (e500mc_su): Adjust.
20768         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
20769         e500mc64_delayed): Adjust.
20770         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
20771         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
20772         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
20773         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
20774         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
20775         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
20776         power6-delayed-compare, power6-var-delayed-compare): Adjust.
20777         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
20778         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
20779         Adjust comment.
20780         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
20781         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
20782
20783 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
20784
20785         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
20786         (bits): New mode_attr.
20787         (idiv_ldiv): Delete mode_attr.
20788         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
20789         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
20790         rs6000_adjust_priority, is_nonpipeline_insn,
20791         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
20792
20793         * config/rs6000/40x.md (ppc403-idiv): Adjust.
20794         * config/rs6000/440.md (ppc440-idiv): Adjust.
20795         * config/rs6000/476.md (ppc476-idiv): Adjust.
20796         * config/rs6000/601.md (ppc601-idiv): Adjust.
20797         * config/rs6000/603.md (ppc603-idiv): Adjust.
20798         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
20799         ppc620-ldiv): Adjust.
20800         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
20801         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
20802         * config/rs6000/8540.md (ppc8540_divide): Adjust.
20803         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
20804         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
20805         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
20806         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
20807         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
20808         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
20809         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
20810         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
20811         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
20812         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
20813         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
20814         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
20815         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
20816         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
20817         * config/rs6000/titan.md (titan_fxu_div): Adjust.
20818
20819 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
20820
20821         * config/rs6000/rs6000.md (type): Delete "insert_word",
20822         "insert_dword".  Add "insert".
20823         (size): Update comment.
20824         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
20825         insn_must_be_first_in_group): Adjust.
20826         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
20827         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
20828         *insvsi_internal6, insvdi_internal): Adjust.
20829
20830         * config/rs6000/40x.md (ppc403-integer): Adjust.
20831         * config/rs6000/440.md (ppc440-integer): Adjust.
20832         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
20833         * config/rs6000/601.md (ppc601-integer): Adjust.
20834         * config/rs6000/603.md (ppc603-integer): Adjust.
20835         * config/rs6000/6xx.md (ppc604-integer): Adjust.
20836         * config/rs6000/7450.md (ppc7450-integer): Adjust.
20837         * config/rs6000/7xx.md (ppc750-integer): Adjust.
20838         * config/rs6000/8540.md (ppc8540_su): Adjust.
20839         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
20840         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
20841         * config/rs6000/e500mc.md (e500mc_su): Adjust.
20842         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
20843         * config/rs6000/e5500.md (e5500_sfx): Adjust.
20844         * config/rs6000/e6500.md (e6500_sfx): Adjust.
20845         * config/rs6000/mpc.md (mpccore-integer): Adjust.
20846         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
20847         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
20848         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
20849         * config/rs6000/power7.md (power7-integer): Adjust.
20850         * config/rs6000/power8.md (power8-1cyc): Adjust.
20851         * config/rs6000/rs64.md (rs64a-integer): Adjust.
20852         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
20853
20854 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
20855
20856         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
20857         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
20858         (size): New attribute.
20859         (dot): New attribute.
20860         (cell_micro): Adjust.
20861         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
20862         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
20863         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
20864         umuldi3_highpart): Adjust.
20865         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
20866         rs6000_adjust_priority, is_nonpipeline_insn,
20867         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
20868
20869         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
20870         ppc405-imul3): Adjust.
20871         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
20872         * config/rs6000/476.md (ppc476-imul): Adjust.
20873         * config/rs6000/601.md (ppc601-imul): Adjust.
20874         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
20875         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
20876         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
20877         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
20878         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
20879         Adjust.
20880         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
20881         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
20882         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
20883         cell-imul): Adjust.
20884         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
20885         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
20886         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
20887         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
20888         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
20889         * config/rs6000/mpc.md (mpccore-imul): Adjust.
20890         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
20891         power4-lmul, power4-imul, power4-imul3): Adjust.
20892         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
20893         power5-lmul, power5-imul, power5-imul3): Adjust.
20894         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
20895         power6-lmul, power6-imul, power6-imul3): Adjust.
20896         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
20897         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
20898
20899         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
20900         rs64a-lmul): Adjust.
20901         * config/rs6000/titan.md (titan_imul): Adjust.
20902
20903 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
20904
20905         * config/rs6000/rs6000.md (type): Add new value "halfmul".
20906         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
20907         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
20908         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
20909         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
20910         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
20911         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
20912         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
20913         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
20914         * config/rs6000/titan.md: Delete nonsensical comment.
20915         (titan_imul): Add type imul3.
20916         (titan_mulhw): Remove type imul3; add type halfmul.
20917
20918 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
20919
20920         * config/rs6000/rs6000.md (type): Reorder, reformat.
20921
20922 2014-05-23  Martin Jambor  <mjambor@suse.cz>
20923
20924         PR tree-optimization/53787
20925         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
20926         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
20927         analysis_done, update all uses.
20928         * ipa-prop.c: Include domwalk.h
20929         (param_analysis_info): Removed.
20930         (param_aa_status): New type.
20931         (ipa_bb_info): Likewise.
20932         (func_body_info): Likewise.
20933         (ipa_get_bb_info): New function.
20934         (aa_overwalked): Likewise.
20935         (find_dominating_aa_status): Likewise.
20936         (parm_bb_aa_status_for_bb): Likewise.
20937         (parm_preserved_before_stmt_p): Changed to use new param AA info.
20938         (load_from_unmodified_param): Accept func_body_info as a parameter
20939         instead of parms_ainfo.
20940         (parm_ref_data_preserved_p): Changed to use new param AA info.
20941         (parm_ref_data_pass_through_p): Likewise.
20942         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
20943         (compute_complex_assign_jump_func): Changed to use new param AA info.
20944         (compute_complex_ancestor_jump_func): Likewise.
20945         (ipa_compute_jump_functions_for_edge): Likewise.
20946         (ipa_compute_jump_functions): Removed.
20947         (ipa_compute_jump_functions_for_bb): New function.
20948         (ipa_analyze_indirect_call_uses): Likewise, moved variable
20949         declarations down.
20950         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
20951         and info, moved variable declarations down.
20952         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
20953         node and info.
20954         (ipa_analyze_stmt_uses): Likewise.
20955         (ipa_analyze_params_uses): Removed.
20956         (ipa_analyze_params_uses_in_bb): New function.
20957         (ipa_analyze_controlled_uses): Likewise.
20958         (free_ipa_bb_info): Likewise.
20959         (analysis_dom_walker): New class.
20960         (ipa_analyze_node): Handle node-specific forbidden analysis,
20961         initialize and free func_body_info, use dominator walker.
20962         (ipcp_modif_dom_walker): New class.
20963         (ipcp_transform_function): Create and free func_body_info, use
20964         ipcp_modif_dom_walker, moved a lot of functionality there.
20965
20966 2014-05-23  Marek Polacek  <polacek@redhat.com>
20967             Jakub Jelinek  <jakub@redhat.com>
20968
20969         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
20970         * gcc.c (sanitize_spec_function): Likewise.
20971         * convert.c (convert_to_integer): Include "ubsan.h".  Add
20972         floating-point to integer instrumentation.
20973         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
20974         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
20975         SANITIZE_NONDEFAULT.
20976         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
20977         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
20978         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
20979         * ubsan.c: Include "realmpfr.h" and "dfp.h".
20980         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
20981         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
20982         float/double/long double.
20983         (ubsan_instrument_float_cast): New function.
20984         * ubsan.h (ubsan_instrument_float_cast): Declare.
20985
20986 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
20987
20988         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
20989         predicate.
20990         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
20991         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
20992         Adjust for tailcalling through registers.
20993         * config/aarch64/aarch64.h (enum reg_class): New caller save
20994         register class.
20995         (REG_CLASS_NAMES): Likewise.
20996         (REG_CLASS_CONTENTS): Likewise.
20997         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
20998         Allow tailcalling without decls.
20999
21000 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
21001
21002         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
21003         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
21004
21005         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
21006         gsi, and variables v_* to v*.
21007
21008 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
21009
21010         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
21011
21012 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
21013
21014         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
21015         * omp-low.c: Update accordingly.
21016
21017         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
21018         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
21019         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
21020         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
21021         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
21022         GF_OMP_TARGET_KIND_UPDATE.
21023
21024         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
21025         Explicitly enumerate the expected region types.
21026
21027 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
21028
21029         PR other/56955
21030         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
21031         documentation; the old documentation didn't clearly state the
21032         constraints on the contents of the pointed-to storage.
21033
21034 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
21035
21036         Fix bootstrap error on ia64
21037         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
21038         Return default value.
21039
21040 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21041
21042         PR tree-optimization/54733
21043         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
21044         (CMPNOP): Define.
21045         (find_bswap_or_nop_load): New.
21046         (find_bswap_1): Renamed to ...
21047         (find_bswap_or_nop_1): This. Also add support for memory source.
21048         (find_bswap): Renamed to ...
21049         (find_bswap_or_nop): This. Also add support for memory source and
21050         detection of bitwise operations equivalent to load in target
21051         endianness.
21052         (execute_optimize_bswap): Likewise. Also move its leading comment back
21053         in place and split statement transformation into ...
21054         (bswap_replace): This.
21055
21056 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
21057
21058         PR rtl-optimization/61215
21059         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
21060         simplify_gen_subreg until final substitution.
21061
21062 2014-05-23  Alan Modra  <amodra@gmail.com>
21063
21064         PR target/61231
21065         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
21066         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
21067         Use "Y" constraint rather than "m".
21068
21069 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
21070
21071         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
21072         define.
21073         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
21074         New function declaration.
21075         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
21076         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
21077         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
21078         (aarch64_init_builtins) : Initialize builtins
21079         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
21080         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
21081         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
21082         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
21083         and __builtins_aarch64_set_fpsr.
21084         (aarch64_atomic_assign_expand_fenv): New function.
21085         * config/aarch64/aarch64.md (set_fpcr): New pattern.
21086         (get_fpcr) : Likewise.
21087         (set_fpsr) : Likewise.
21088         (get_fpsr) : Likewise.
21089         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
21090          and UNSPECV_SET_FPSR.
21091         * doc/extend.texi (AARCH64 Built-in Functions) : Document
21092         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
21093         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
21094
21095 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
21096
21097         PR rtl-optimization/60969
21098         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
21099         constraints.  Set up mem cost for NO_REGS case.
21100
21101 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
21102
21103         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
21104
21105 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
21106
21107         * config/darwin.c: Include "lto-section-names.h".
21108         (LTO_SEGMENT_NAME): Don't define.
21109         * config/i386/winnt.c: Include "lto-section-names.h".
21110         * lto-streamer.c: Include "lto-section-names.h".
21111         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
21112         * lto-wrapper.c: Include "lto-section-names.h".
21113         (LTO_SECTION_NAME_PREFIX): Don't define.
21114         * lto-section-names.h: New file.
21115         * cgraphunit.c: Include "lto-section-names.h".
21116
21117 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
21118
21119         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
21120
21121 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
21122
21123         PR target/61208
21124         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
21125
21126 2014-05-22  Nick Clifton  <nickc@redhat.com>
21127
21128         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
21129
21130 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
21131
21132         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
21133         -> (T)A transformation to integer types.
21134
21135 2014-05-22  Teresa Johnson  <tejohnson@google.com>
21136
21137         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
21138         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
21139         (gcov_rewrite): Use gcov_nonruntime_assert.
21140         (gcov_open): Ditto.
21141         (gcov_write_words): Ditto.
21142         (gcov_write_length): Ditto.
21143         (gcov_read_words): Use gcov_nonruntime_assert, and remove
21144         gcc_assert from IN_LIBGCOV code.
21145         (gcov_read_summary): Use gcov_error to flag profile corruption.
21146         (gcov_sync): Use gcov_nonruntime_assert.
21147         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
21148         (gcov_histo_index): Use gcov_nonruntime_assert.
21149         (static void gcov_histogram_merge): Ditto.
21150         (compute_working_sets): Ditto.
21151         * gcov-io.h (gcov_nonruntime_assert): Define.
21152         (gcov_error): Define for !IN_LIBGCOV
21153
21154 2014-05-22  Richard Biener  <rguenther@suse.de>
21155
21156         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
21157         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
21158         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
21159         and deallocation site.
21160         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
21161         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
21162         passing through the incoming points-to set.
21163         (handle_lhs_call): Use flags argument instead of recomputing it.
21164         (find_func_aliases_for_call): Call handle_lhs_call with proper
21165         call return flags.
21166
21167 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
21168
21169         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
21170         all padding bits in REAL_VALUE_TYPE are cleared.
21171
21172 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
21173
21174         Cleanup and improve multipass_dfa_lookahead_guard
21175         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
21176         (core2i7_first_cycle_multipass_begin,)
21177         (core2i7_first_cycle_multipass_issue,)
21178         (core2i7_first_cycle_multipass_backtrack): Update signature.
21179         * config/ia64/ia64.c
21180         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
21181         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
21182         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
21183         hook definition.
21184         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
21185         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
21186         values.
21187         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
21188         return values.
21189         * doc/tm.texi: Regenerate.
21190         * doc/tm.texi.in
21191         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
21192         * haifa-sched.c (ready_try): Make signed to allow negative values.
21193         (rebug_ready_list_1): Update.
21194         (choose_ready): Simplify.
21195         (sched_extend_ready_list): Update.
21196
21197 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
21198
21199         Remove IA64 speculation tweaking flags
21200         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
21201         speculation tuning flags.
21202         (msched-prefer-non-data-spec-insns,)
21203         (msched-prefer-non-control-spec-insns): Obsolete options.
21204         * haifa-sched.c (choose_ready): Remove handling of
21205         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
21206         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
21207         and PREFER_NON_DATA_SPEC.
21208         * sel-sched.c (process_spec_exprs): Remove handling of
21209         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
21210
21211 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
21212
21213         Improve scheduling debug output
21214         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
21215         (advance_one_cycle): Update.
21216         (schedule_insn, queue_to_ready): Add debug printouts.
21217         (debug_ready_list_1): New static function.
21218         (debug_ready_list): Update.
21219         (max_issue): Add debug printouts.
21220         (dump_insn_stream): New static function.
21221         (schedule_block): Use it.  Also better indent printouts.
21222
21223 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
21224
21225         Fix sched_insn debug counter
21226         * haifa-sched.c (schedule_insn): Update.
21227         (struct haifa_saved_data): Add nonscheduled_insns_begin.
21228         (save_backtrack_point, restore_backtrack_point): Update.
21229         (first_nonscheduled_insn): New static function.
21230         (queue_to_ready, choose_ready): Use it.
21231         (schedule_block): Init nonscheduled_insns_begin.
21232         (sched_emit_insn): Update.
21233
21234
21235 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
21236
21237         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
21238         to GENERAL_REGS.
21239         (aarch64_secondary_reload) : LikeWise.
21240         (aarch64_class_max_nregs) : Remove CORE_REGS.
21241         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
21242         (REG_CLASS_NAMES) : Likewise.
21243         (REG_CLASS_CONTENTS) : LikeWise.
21244         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
21245
21246 2014-05-21  Guozhi Wei  <carrot@google.com>
21247
21248         PR target/61202
21249         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
21250         constraint.
21251         (vqdmulhq_n_s16): Likewise.
21252
21253 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
21254
21255         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
21256
21257 2014-05-21  Marek Polacek  <polacek@redhat.com>
21258
21259         PR sanitizer/61272
21260         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
21261
21262 2014-05-21  Martin Jambor  <mjambor@suse.cz>
21263
21264         * doc/invoke.texi (Optimize Options): Document parameters
21265         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
21266         ipa-cp-array-index-hint-bonus.
21267
21268 2014-05-21  Mark Wielaard  <mjw@redhat.com>
21269
21270         PR debug/16063
21271         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
21272         version >= 3 or not strict DWARF.
21273         * langhooks.h (struct lang_hooks_for_types): Add
21274         enum_underlying_base_type.
21275         * langhooks.c (lhd_enum_underlying_base_type): New function.
21276         * gcc/langhooks.h (struct lang_hooks_for_types): Add
21277         enum_underlying_base_type.
21278         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
21279         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
21280         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
21281
21282 2014-05-21  Richard Biener  <rguenther@suse.de>
21283
21284         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
21285
21286 2014-05-21  John Marino  <gnugcc@marino.st>
21287
21288         * config.gcc (*-*-dragonfly*): New target.
21289         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
21290         * configure: Regenerate.
21291         * config/dragonfly-stdint.h: New.
21292         * config/dragonfly.h: New.
21293         * config/dragonfly.opt: New.
21294         * config/i386/dragonfly.h: New.
21295         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
21296
21297 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
21298
21299         * tree.def (VOID_CST): New.
21300         * tree-core.h (TI_VOID): New.
21301         * tree.h (void_node): New.
21302         * tree.c (tree_node_structure_for_code, tree_code_size)
21303         (iterative_hash_expr): Handle VOID_CST.
21304         (build_common_tree_nodes): Initialize void_node.
21305
21306 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
21307
21308         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
21309         functions.
21310         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
21311
21312         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
21313         more places.
21314
21315         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
21316         flag_reorder_blocks_and_partition.
21317         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
21318
21319 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
21320
21321         PR target/54236
21322         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
21323         constraints.
21324         (*addc_r_t): Add new insn_and_split.
21325
21326 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
21327
21328         PR middle-end/61252
21329         * omp-low.c (handle_simd_reference): New function.
21330         (lower_rec_input_clauses): Use it.  Defer adding reference
21331         initialization even for reduction without placeholder if in simd,
21332         handle it properly later on.
21333
21334 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
21335
21336         PR tree-optimization/60899
21337         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
21338         assume all static symbols will have definition wile parsing and
21339         check the do have definition later in compilation; check that
21340         variable referring symbol will be output before concluding that
21341         reference is safe; be conservative for referring local statics;
21342         be more precise about when comdat is output in other partition.
21343
21344 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
21345
21346         PR bootstrap/60984
21347         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
21348         parameter.
21349         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
21350         (ipa_inline): Loop inline_to_all_callers until no more aliases
21351         are removed.
21352
21353 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
21354
21355         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
21356         set writeonly flag only for vars actually written to.
21357
21358 2014-05-20  Dehao Chen  <dehao@google.com>
21359
21360         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
21361         and callee count to get clone count.
21362         * tree-inline.c (expand_call_inline): Use callee count instead of bb
21363         count in copy_body.
21364
21365 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
21366
21367         PR rtl-optimization/61243
21368         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
21369
21370 2014-05-20  Xinliang David Li  <davidxl@google.com>
21371
21372         * cgraphunit.c (walk_polymorphic_call_targets): Add
21373         dbgcnt and fopt-info support.
21374         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
21375         * ipa-devirt.c (ipa_devirt): Ditto.
21376         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
21377         * ipa.c (walk_polymorphic_call_targets): Ditto.
21378         * gimple-fold.c (fold_gimple_assign): Ditto.
21379         (gimple_fold_call): Ditto.
21380         * dbgcnt.def: New counter.
21381
21382 2014-05-20  DJ Delorie  <dj@redhat.com>
21383
21384         * config/msp430/msp430.md (split): Don't allow subregs when
21385         splitting SImode adds.
21386         (andneghi): Fix subtraction logic.
21387         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
21388
21389 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
21390
21391         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
21392         symbols.
21393         * except.c (switch_to_exception_section, resolve_unique_section,
21394         get_named_text_section, default_function_rodata_section,
21395         align_variable, get_block_for_decl, default_section_type_flags):
21396         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
21397         * symtab.c (symtab_add_to_same_comdat_group,
21398         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
21399         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
21400         Likewise.
21401         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
21402         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
21403         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
21404         (c6x_function_in_section_p): Likewise.
21405         * config/darwin.c (machopic_select_section): Likewise.
21406         * config/arm/arm.c (arm_function_in_section_p): Likewise.
21407         * config/mips/mips.c (mips_function_rodata_section): Likewise.
21408         * config/mep/mep.c (mep_select_section): LIkewise.
21409         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
21410
21411 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
21412
21413         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
21414         EH region of calls to pure functions that can throw an exception.
21415         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
21416         (copy_reference_ops_from_call): Also copy the EH region of the call if
21417         it can throw an exception.
21418
21419 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
21420
21421         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
21422         nested VEC_SELECTs that are inverses of each other.
21423
21424 2014-05-20  Richard Biener  <rguenther@suse.de>
21425
21426         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
21427         (extract_and_process_scc_for_name): not here.
21428         (cond_dom_walker::before_dom_children): Only process
21429         stmts that end the BB in interesting ways.
21430         (run_scc_vn): Mark param uses as visited.
21431
21432 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21433
21434         * config/arm/arm.md (arith_shiftsi): Do not predicate for
21435         arm_restrict_it.
21436
21437 2014-05-20  Nick Clifton  <nickc@redhat.com>
21438
21439         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
21440         (msp430_gimplify_va_arg_expr): New function.
21441         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
21442
21443         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
21444         operand 0 in order to prevent confusion about the number of
21445         registers involved.
21446
21447 2014-05-20  Richard Biener  <rguenther@suse.de>
21448
21449         PR tree-optimization/61221
21450         * tree-ssa-pre.c (el_to_update): Remove.
21451         (eliminate_dom_walker::before_dom_children): Handle released
21452         VDEFs by value-numbering them to the associated VUSE.  Update
21453         stmt immediately for substituted call address.
21454         (eliminate): Remove delayed stmt updating code.
21455         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
21456         possibly late re-numbered vuses.
21457         (vn_reference_lookup_2): Adjust.
21458         (vn_reference_lookup_pieces): Likewise.
21459         (vn_reference_lookup): Likewise.
21460
21461 2014-05-20  Richard Biener  <rguenther@suse.de>
21462
21463         * config.gcc: Remove need_64bit_hwint.
21464         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
21465         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
21466         it to be true.
21467         * config.in: Regenerate.
21468         * configure: Likewise.
21469
21470 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
21471
21472         * doc/extend.texi: Create Label Attributes section,
21473         move all label attributes into it and reference it.
21474
21475 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
21476
21477         * arm.c (thumb1_reorg): When scanning backwards skip anything
21478         that's not a proper insn.
21479
21480 2014-05-19  Richard Biener  <rguenther@suse.de>
21481
21482         PR tree-optimization/61221
21483         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21484         Do nothing for unreachable blocks.
21485         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
21486         Improve unreachability detection.
21487
21488 2014-05-19  Richard Biener  <rguenther@suse.de>
21489
21490         PR tree-optimization/61209
21491         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
21492
21493 2014-05-19  Nick Clifton  <nickc@redhat.com>
21494
21495         * except.c (init_eh): Fix computation of builtin setjmp buffer
21496         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
21497
21498 2014-05-19  Richard Biener  <rguenther@suse.de>
21499
21500         PR tree-optimization/61184
21501         * tree-vrp.c (is_negative_overflow_infinity): Use
21502         TREE_OVERFLOW_P and do that check first.
21503         (is_positive_overflow_infinity): Likewise.
21504         (is_overflow_infinity): Likewise.
21505         (vrp_operand_equal_p): Properly treat operands with
21506         differing overflow as not equal.
21507
21508 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
21509
21510         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
21511         shift simplification where it was intended.
21512
21513 2014-05-19  Christian Bruel  <christian.bruel@st.com>
21514
21515         PR target/61195
21516         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
21517
21518 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
21519
21520         PR target/61084
21521         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
21522         than wide_int.
21523
21524 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
21525
21526         * reg-notes.def (CROSSING_JUMP): Likewise.
21527         * rtl.h (rtx_def): Update comment for jump flag.
21528         (CROSSING_JUMP_P): Define.
21529         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
21530         of a REG_CROSSING_JUMP note.
21531         * cfghooks.c (tidy_fallthru_edges): Likewise.
21532         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
21533         * emit-rtl.c (try_split): Likewise.
21534         * haifa-sched.c (sched_create_recovery_edges): Likewise.
21535         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
21536         * jump.c (redirect_jump_2): Likewise.
21537         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
21538         (relax_delay_slots): Likewise.
21539         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
21540         (bbit_di): Likewise.
21541         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
21542         * config/sh/sh.md (jump_compact): Likewise.
21543         * bb-reorder.c (rotate_loop): Likewise.
21544         (pass_duplicate_computed_gotos::execute): Likewise.
21545         (add_reg_crossing_jump_notes): Rename to...
21546         (update_crossing_jump_flags): ...this.
21547         (pass_partition_blocks::execute): Update accordingly.
21548
21549 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
21550
21551         * tree.h: Remove extraneous template <>.
21552
21553 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
21554
21555         * ipa.c (symtab_remove_unreachable_nodes): Remove
21556         symbol from comdat group if its body was eliminated.
21557         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
21558         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
21559         (symtab_unregister_node): ... this one.
21560         (verify_symtab_base): More strict checking of comdats.
21561         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
21562
21563 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
21564
21565         * tree-pass.h (make_pass_ipa_comdats): New pass.
21566         * timevar.def (TV_IPA_COMDATS): New timevar.
21567         * passes.def (pass_ipa_comdats): Add.
21568         * Makefile.in (OBJS): Add ipa-comdats.o
21569         * ipa-comdats.c: New file.
21570
21571 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
21572
21573         * ipa.c (update_visibility_by_resolution_info): New function.
21574         (function_and_variable_visibility): Use it.
21575
21576 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
21577
21578         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
21579         New functions.
21580         (FOR_EACH_DEFINED_SYMBOL): New macro.
21581         (varpool_first_static_initializer, varpool_next_static_initializer,
21582         varpool_first_defined_variable, varpool_next_defined_variable):
21583         Fix comments.
21584         (symtab_in_same_comdat_p): Correctly deal with inline functions.
21585
21586 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
21587
21588         * ggc-page.c (ggc_handle_finalizers): Add comment.
21589
21590 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
21591
21592         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
21593         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
21594         (ggc_internal_cleared_alloc): Likewise.
21595         * ggc-page.c (finalizer): New class.
21596         (vec_finalizer): Likewise.
21597         (globals::finalizers): New member.
21598         (globals::vec_finalizers): Likewise.
21599         (ggc_internal_alloc): Record the finalizer if any for the block being
21600         allocated.
21601         (ggc_handle_finalizers): New function.
21602         (ggc_collect): Call ggc_handle_finalizers.
21603         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
21604         finalizer.
21605         (ggc_internal_cleared_alloc): Likewise.
21606         (finalize): New function.
21607         (need_finalization_p): Likewise.
21608         (ggc_alloc): Install the type's destructor as the finalizer if it
21609         might do something.
21610         (ggc_cleared_alloc): Likewise.
21611         (ggc_vec_alloc): Likewise.
21612         (ggc_cleared_vec_alloc): Likewise.
21613
21614 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
21615
21616         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
21617
21618 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
21619
21620         * alias.c (record_alias_subset): Adjust.
21621         * bitmap.c (bitmap_element_allocate): Likewise.
21622         (bitmap_gc_alloc_stat): Likewise.
21623         * cfg.c (init_flow): Likewise.
21624         (alloc_block): Likewise.
21625         (unchecked_make_edge): Likewise.
21626         * cfgloop.c (alloc_loop): Likewise.
21627         (flow_loops_find): Likewise.
21628         (rescan_loop_exit): Likewise.
21629         * cfgrtl.c (init_rtl_bb_info): Likewise.
21630         * cgraph.c (insert_new_cgraph_node_version): Likewise.
21631         (cgraph_allocate_node): Likewise.
21632         (cgraph_create_edge_1): Likewise.
21633         (cgraph_allocate_init_indirect_info): Likewise.
21634         * cgraphclones.c (cgraph_clone_edge): Likewise.
21635         * cgraphunit.c (add_asm_node): Likewise.
21636         (init_lowered_empty_function): Likewise.
21637         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
21638         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
21639         (alpha_use_linkage): Likewise.
21640         * config/arc/arc.c (arc_init_machine_status): Likewise.
21641         * config/arm/arm.c (arm_init_machine_status): Likewise.
21642         * config/avr/avr.c (avr_init_machine_status): Likewise.
21643         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
21644         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
21645         * config/cris/cris.c (cris_init_machine_status): Likewise.
21646         * config/darwin.c (machopic_indirection_name): Likewise.
21647         (darwin_build_constant_cfstring): Likewise.
21648         (darwin_enter_string_into_cfstring_table): Likewise.
21649         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
21650         * config/frv/frv.c (frv_init_machine_status): Likewise.
21651         * config/i386/i386.c (get_dllimport_decl): Likewise.
21652         (ix86_init_machine_status): Likewise.
21653         (assign_386_stack_local): Likewise.
21654         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
21655         (i386_pe_maybe_record_exported_symbol): Likewise.
21656         (i386_pe_record_stub): Likewise.
21657         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
21658         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
21659         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
21660         (m32c_note_pragma_address): Likewise.
21661         * config/mep/mep.c (mep_init_machine_status): Likewise.
21662         (mep_note_pragma_flag): Likewise.
21663         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
21664         (mips16_local_alias): Likewise.
21665         (mips_init_machine_status): Likewise.
21666         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
21667         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
21668         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
21669         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
21670         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
21671         * config/pa/pa.c (pa_init_machine_status): Likewise.
21672         (pa_get_deferred_plabel): Likewise.
21673         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
21674         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
21675         (rs6000_init_machine_status): Likewise.
21676         (output_toc): Likewise.
21677         * config/s390/s390.c (s390_init_machine_status): Likewise.
21678         * config/score/score.c (score_output_external): Likewise.
21679         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
21680         * config/spu/spu.c (spu_init_machine_status): Likewise.
21681         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
21682         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
21683         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
21684         * coverage.c (coverage_end_function): Likewise.
21685         * dbxout.c (dbxout_init): Likewise.
21686         * doc/gty.texi: Don't mention variable_size attribute.
21687         * dwarf2cfi.c (new_cfi): Adjust.
21688         (new_cfi_row): Likewise.
21689         (copy_cfi_row): Likewise.
21690         (create_cie_data): Likewise.
21691         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
21692         (new_loc_descr): Likewise.
21693         (find_AT_string_in_table): Likewise.
21694         (add_addr_table_entry): Likewise.
21695         (new_die): Likewise.
21696         (add_var_loc_to_decl): Likewise.
21697         (clone_die): Likewise.
21698         (clone_as_declaration): Likewise.
21699         (break_out_comdat_types): Likewise.
21700         (new_loc_list): Likewise.
21701         (add_loc_descr_to_each): Likewise.
21702         (add_location_or_const_value_attribute): Likewise.
21703         (add_linkage_name): Likewise.
21704         (lookup_filename): Likewise.
21705         (dwarf2out_var_location): Likewise.
21706         (new_line_info_table): Likewise.
21707         (dwarf2out_init): Likewise.
21708         (mem_loc_descriptor): Likewise.
21709         (loc_descriptor): Likewise.
21710         (add_const_value_attribute): Likewise.
21711         (tree_add_const_value_attribute): Likewise.
21712         (comp_dir_string): Likewise.
21713         (dwarf2out_vms_debug_main_pointer): Likewise.
21714         (string_cst_pool_decl): Likewise.
21715         * emit-rtl.c (set_mem_attrs): Likewise.
21716         (get_reg_attrs): Likewise.
21717         (start_sequence): Likewise.
21718         (init_emit): Likewise.
21719         (init_emit_regs): Likewise.
21720         * except.c (init_eh_for_function): Likewise.
21721         (gen_eh_region): Likewise.
21722         (gen_eh_region_catch): Likewise.
21723         (gen_eh_landing_pad): Likewise.
21724         (add_call_site): Likewise.
21725         * function.c (add_frame_space): Likewise.
21726         (insert_temp_slot_address): Likewise.
21727         (assign_stack_temp_for_type): Likewise.
21728         (get_hard_reg_initial_val): Likewise.
21729         (allocate_struct_function): Likewise.
21730         (prepare_function_start): Likewise.
21731         (types_used_by_var_decl_insert): Likewise.
21732         * gengtype.c (variable_size_p): Remove function.
21733         (enum alloc_quantity): Remove enum.
21734         (write_typed_alloc_def): Remove function.
21735         (write_typed_struct_alloc_def): Likewise.
21736         (write_typed_typedef_alloc_def): Likewise.
21737         (write_typed_alloc_defns): Likewise.
21738         (main): Adjust.
21739         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
21740         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
21741         * ggc.h (ggc_alloc): new function.
21742         (ggc_cleared_alloc): Likewise.
21743         (ggc_vec_alloc): Template on type of vector element, and remove
21744         element size argument.
21745         (ggc_cleared_vec_alloc): Likewise.
21746         * gimple.c (gimple_build_omp_for): Adjust.
21747         (gimple_copy): Likewise.
21748         * ipa-cp.c (get_replacement_map): Likewise.
21749         (find_aggregate_values_for_callers_subset): Likewise.
21750         (known_aggs_to_agg_replacement_list): Likewise.
21751         * ipa-devirt.c (get_odr_type): Likewise.
21752         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
21753         (read_agg_replacement_chain): Likewise.
21754         * loop-iv.c (get_simple_loop_desc): Likewise.
21755         * lto-cgraph.c (input_node_opt_summary): Likewise.
21756         * lto-section-in.c (lto_new_in_decl_state): Likewise.
21757         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
21758         (input_eh_region): Likewise.
21759         (input_eh_lp): Likewise.
21760         (input_cfg): Likewise.
21761         * optabs.c (set_optab_libfunc): Likewise.
21762         (init_tree_optimization_optabs): Likewise.
21763         (set_conv_libfunc): Likewise.
21764         * passes.c (do_per_function_toporder): Likewise.
21765         * rtl.h: Don't use variable_size gty attribute.
21766         * sese.c (if_region_set_false_region): Adjust.
21767         * stringpool.c (gt_pch_save_stringpool): Likewise.
21768         * target-globals.c (save_target_globals): Likewise.
21769         * toplev.c (general_init): Likewise.
21770         * trans-mem.c (record_tm_replacement): Likewise.
21771         (split_bb_make_tm_edge): Likewise.
21772         * tree-cfg.c (move_sese_region_to_fn): Likewise.
21773         * tree-data-ref.h (lambda_vector_new): Likewise.
21774         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
21775         * tree-iterator.c (tsi_link_before): Likewise.
21776         (tsi_link_after): Likewise.
21777         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
21778         * tree-ssa-loop-niter.c (record_estimate): Likewise.
21779         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
21780         * tree-ssa-operands.h: Don't use variable_size gty attribute.
21781         * tree-ssa.c (init_tree_ssa): Adjust.
21782         * tree-ssanames.c (set_range_info): Likewise.
21783         (get_ptr_info): Likewise.
21784         (duplicate_ssa_name_ptr_info): Likewise.
21785         (duplicate_ssa_name_range_info): Likewise.
21786         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
21787         (unpack_ts_fixed_cst_value_fields): Likewise.
21788         * tree.c (build_fixed): Likewise.
21789         (build_real): Likewise.
21790         (build_string): Likewise.
21791         (decl_priority_info): Likewise.
21792         (decl_debug_expr_insert): Likewise.
21793         (decl_value_expr_insert): Likewise.
21794         (decl_debug_args_insert): Likewise.
21795         (type_hash_add): Likewise.
21796         (build_omp_clause): Likewise.
21797         * ubsan.c (decl_for_type_insert): Likewise.
21798         * varasm.c (get_unnamed_section): Likewise.
21799         (get_noswitch_section): Likewise.
21800         (get_section): Likewise.
21801         (get_block_for_section): Likewise.
21802         (create_block_symbol): Likewise.
21803         (build_constant_desc): Likewise.
21804         (create_constant_pool): Likewise.
21805         (force_const_mem): Likewise.
21806         (record_tm_clone_pair): Likewise.
21807         * varpool.c (varpool_create_empty_node): Likewise.
21808
21809 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
21810
21811         * dwarf2out.c (tree_add_const_value_attribute): Call
21812         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
21813         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
21814         instead of ggc_internal_<x>alloc_stat.
21815         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
21816         (ggc_realloc): Likewise.
21817         * ggc-none.c (ggc_internal_alloc): Likewise.
21818         (ggc_internal_cleared_alloc): Likewise.
21819         * ggc-page.c: Likewise.
21820         * ggc.h (ggc_internal_alloc_stat): Likewise.
21821         (ggc_internal_alloc): Remove macro.
21822         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
21823         (ggc_internal_cleared_alloc): Remove macro.
21824         (GGC_RESIZEVEC): Adjust.
21825         (ggc_resizevar): Remove macro.
21826         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
21827         (ggc_internal_cleared_vec_alloc_stat): Likewise.
21828         (ggc_internal_vec_cleared_alloc): Remove macro.
21829         (ggc_alloc_atomic_stat): Drop _stat suffix.
21830         (ggc_alloc_atomic): Remove macro.
21831         (ggc_alloc_cleared_atomic): Remove macro.
21832         (ggc_alloc_string_stat): Drop _stat suffix.
21833         (ggc_alloc_string): Remove macro.
21834         (ggc_alloc_rtx_def_stat): Adjust.
21835         (ggc_alloc_tree_node_stat): Likewise.
21836         (ggc_alloc_cleared_tree_node_stat): Likewise.
21837         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
21838         (ggc_alloc_cleared_simd_clone_stat): Likewise.
21839         * gimple.c (gimple_build_omp_for): Likewise.
21840         (gimple_copy): Likewise.
21841         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
21842         * toplev.c (realloc_for_line_map): Adjust.
21843         * tree-data-ref.h (lambda_vector_new): Likewise.
21844         * tree-phinodes.c (allocate_phi_node): Likewise.
21845         * tree.c (grow_tree_vec_stat): Likewise.
21846         * vec.h (va_gc::reserve): Adjust.
21847
21848 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
21849
21850         * config/microblaze/microblaze.c (break_handler): New Declaration.
21851         (microblaze_break_function_p,microblaze_is_break_handler): New.
21852         (compute_frame_size): Use microblaze_break_function_p.
21853         Add the test of break_handler.
21854         (microblaze_function_prologue) : Add the test of variable
21855         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
21856         (microblaze_function_epilogue) : Add the test of break_handler.
21857         (microblaze_globalize_label) : Add the test of break_handler.
21858         Check the name by BREAK_HANDLER_NAME.
21859
21860         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
21861
21862         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
21863         microblaze_is_break_handler test.
21864         (call_internal1,call_value_intern): Use microblaze_break_function_p.
21865         Use SYMBOL_REF_DECL.
21866
21867         * config/microblaze/microblaze-protos.h
21868         (microblaze_break_function_p,microblaze_is_break_handler):
21869         New Declaration.
21870
21871         * doc/extend.texi (MicroBlaze break_handler Functions): Document
21872         new MicroBlaze break_handler functions.
21873
21874 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
21875
21876         * doc/extend.texi (Size of an asm): Move node text according
21877         to its @menu entry position.
21878
21879 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
21880
21881         PR tree-optimization/61140
21882         PR tree-optimization/61150
21883         PR tree-optimization/61197
21884         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
21885
21886 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
21887
21888         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
21889
21890 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
21891
21892         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
21893         __SIZEOF_INT128__ is defined.
21894
21895 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
21896
21897         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
21898         (rs6000_delegitimize_address): Use it.
21899
21900 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
21901
21902         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
21903         inplace argument.  Store the new address in the original MEM when true.
21904         * emit-rtl.c (change_address_1): Likewise.
21905         (adjust_address_1, adjust_automodify_address_1, offset_address):
21906         Update accordingly.
21907         * rtl.h (plus_constant): Add an inplace argument.
21908         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
21909         when true.  Avoid generating (plus X (const_int 0)).
21910         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
21911         in-place.  Pass true to plus_constant.
21912         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
21913
21914 2014-05-16  Dehao Chen  <dehao@google.com>
21915
21916         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
21917
21918 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
21919
21920         PR target/54089
21921         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
21922         patterns.
21923         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
21924
21925 2014-05-16  Dehao Chen  <dehao@google.com>
21926
21927         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
21928         optimize_function_for_size_p.
21929         * regs.h (REG_FREQ_FROM_BB): Likewise.
21930
21931 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
21932
21933         PR target/51244
21934         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
21935         negt_reg_operand cases.
21936         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
21937         predicate.
21938         * config/sh/predicates.md (cbranch_treg_value): Simplify.
21939
21940 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
21941
21942         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
21943         target variants.
21944
21945 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
21946
21947         Revert:
21948         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
21949
21950         * tree-cfg.c (dump_function_to_file): Dump the return type of
21951         functions, in a line to itself before the function body, mimicking
21952         the layout of a C function.
21953
21954 2014-05-16  Dehao Chen  <dehao@google.com>
21955
21956         * cfghooks.c (make_forwarder_block): Use direct computation to
21957         get fall-through edge's count and frequency.
21958
21959 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
21960
21961         * config/arc/arc.c (arc_init): Fix typo in error message.
21962         * config/i386/i386.c (ix86_expand_builtin): Likewise.
21963         (split_stack_prologue_scratch_regno): Likewise.
21964         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
21965         word from error message.
21966
21967 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
21968
21969         * ira-costs.c: Fix typo in comment.
21970
21971 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
21972
21973         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
21974
21975 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
21976
21977         * varpool.c (dump_varpool_node): Dump write-only flag.
21978         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
21979         write-only flag.
21980         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
21981         write-only variables.
21982         * ipa.c (process_references): New function.
21983         (set_readonly_bit): New function.
21984         (set_writeonly_bit): New function.
21985         (clear_addressable_bit): New function.
21986         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
21987         fix handling of aliases.
21988         * cgraph.h (struct varpool_node): Add writeonly flag.
21989
21990 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
21991
21992         PR rtl-optimization/60969
21993         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
21994         Calculate costs for this case.
21995
21996 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
21997
21998         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
21999         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
22000
22001 2014-05-16  Richard Biener  <rguenther@suse.de>
22002
22003         PR tree-optimization/61194
22004         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
22005         bool patterns ending in a COND_EXPR.
22006
22007 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22008
22009         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
22010
22011 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22012
22013         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
22014         where we were unable to cost an RTX.
22015
22016 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22017
22018         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
22019         HIGH, LO_SUM.
22020
22021 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22022             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22023
22024         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
22025
22026 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22027             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22028
22029         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
22030         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
22031
22032 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22033             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22034
22035         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
22036         operators.
22037
22038 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22039             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22040
22041         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
22042         DIV/MOD.
22043
22044 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22045             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22046
22047         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
22048         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
22049
22050 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22051             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22052
22053         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
22054         rotates and shifts.
22055
22056 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22057             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22058
22059         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
22060         ZERO_EXTEND and SIGN_EXTEND better.
22061
22062 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22063             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22064
22065         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
22066         logical operations.
22067
22068 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22069             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22070
22071         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
22072         costs when costing loads and stores to memory.
22073
22074 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22075             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
22076
22077         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
22078         for SET RTX.
22079
22080 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22081
22082         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
22083
22084 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22085             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22086
22087         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
22088         to...
22089         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
22090         well formed.
22091         (aarch64_rtx_mult_cost): New.
22092         (aarch64_rtx_costs): Use it, refactor as appropriate.
22093
22094 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22095             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22096
22097         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
22098         emit instructions, return number of instructions which would
22099         be emitted.
22100         (aarch64_add_constant): Update call to aarch64_build_constant.
22101         (aarch64_output_mi_thunk): Likewise.
22102         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
22103         a CONST_DOUBLE.
22104
22105 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22106
22107         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
22108         (TARGET_RTX_COSTS): Call it.
22109
22110 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22111
22112         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
22113         (cortexa57_vector_cost): Likewise.
22114         (cortexa57_tunings): Use them.
22115
22116 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
22117
22118         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
22119         (cpu_addrcost_table): Use it.
22120         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
22121         (aarch64_address_cost): Rewrite using aarch64_classify_address,
22122         move it.
22123
22124 2014-05-16  Richard Biener  <rguenther@suse.de>
22125
22126         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
22127         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
22128         (visit_phi): Ignore edges marked as not executable.
22129         (class cond_dom_walker): New.
22130         (cond_dom_walker::before_dom_children): Value-number
22131         control statements and mark successor edges as not
22132         executable if possible.
22133         (run_scc_vn): First walk all control statements in
22134         dominator order, marking edges as not executable.
22135         * tree-inline.c (copy_edges_for_bb): Be not confused
22136         about random edge flags.
22137
22138 2014-05-16  Richard Biener  <rguenther@suse.de>
22139
22140         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
22141
22142 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
22143
22144         PR target/61193
22145         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
22146         (__TM_simple_begin): Use it.
22147         (__TM_begin): Likewise.
22148
22149 2014-05-15  Martin Jambor  <mjambor@suse.cz>
22150
22151         PR ipa/61085
22152         * ipa-prop.c (update_indirect_edges_after_inlining): Check
22153         type_preserved flag when the indirect edge is polymorphic.
22154
22155 2014-05-15  Martin Jambor  <mjambor@suse.cz>
22156
22157         PR tree-optimization/61090
22158         * tree-sra.c (sra_modify_expr): Pass the current gsi to
22159         build_ref_for_model.
22160
22161 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22162
22163         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
22164         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
22165
22166 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
22167
22168         PR tree-optimization/61158
22169         * fold-const.c (fold_binary_loc): If X is zero-extended and
22170         shiftc >= prec, make sure zerobits is all ones instead of
22171         invoking undefined behavior.
22172
22173 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
22174
22175         * regcprop.h: New file.
22176         * regcprop.c (skip_debug_insn_p): New decl.
22177         (replace_oldest_value_reg): Check skip_debug_insn_p.
22178         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
22179         * shrink-wrap.c: Include regcprop.h.
22180         (prepare_shrink_wrap): Call
22181         copyprop_hardreg_forward_bb_without_debug_insn.
22182
22183 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
22184
22185         * shrink-wrap.h: Update comment.
22186         * shrink-wrap.c: Update comment.
22187         (next_block_for_reg): Rename to live_edge_for_reg.
22188         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
22189         (move_insn_for_shrink_wrap): Split live_edge.
22190         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
22191
22192 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
22193
22194         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
22195         Delete.
22196         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
22197         * config/sparc/sparc.md (fptype_ut699): New attribute.
22198         (in_branch_delay): Return false if -mfix-ut699 is specified and
22199         fptype_ut699 is set to single.
22200         (truncdfsf2): Add fptype_ut699 attribute.
22201         (fix_truncdfsi2): Likewise.
22202         (floatsisf2): Change fptype attribute.
22203         (fix_truncsfsi2): Likewise.
22204         (negtf2_notv9): Delete.
22205         (negtf2_v9): Likewise.
22206         (negtf2_hq): New instruction.
22207         (negtf2): New instruction and splitter.
22208         (negdf2_notv9): Rewrite.
22209         (abstf2_notv9): Delete.
22210         (abstf2_hq_v9): Likewise.
22211         (abstf2_v9): Likewise.
22212         (abstf2_hq): New instruction.
22213         (abstf2): New instruction and splitter.
22214         (absdf2_notv9): Rewrite.
22215
22216 2014-05-14  Cary Coutant  <ccoutant@google.com>
22217
22218         PR debug/61013
22219         * opts.c (common_handle_option): Don't special-case "-g".
22220         (set_debug_level): Default to at least level 2 with "-g".
22221
22222 2014-05-14  DJ Delorie  <dj@redhat.com>
22223
22224         * config/msp430/msp430.c (msp430_builtin): Add
22225         MSP430_BUILTIN_DELAY_CYCLES.
22226         (msp430_init_builtins): Register void __delay_cycles(long long).
22227         (msp430_builtin_decl): Add it.
22228         (cg_magic_constant): New.
22229         (msp430_expand_delay_cycles): New.
22230         (msp430_expand_builtin): Call it.
22231         (msp430_print_operand_raw): Change integer printing from "int" to
22232         HOST_WIDE_INT.
22233         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
22234         (delay_cycles_start): New.
22235         (delay_cycles_end): New.
22236         (delay_cycles_32): New.
22237         (delay_cycles_32x): New.
22238         (delay_cycles_16): New.
22239         (delay_cycles_16x): New.
22240         (delay_cycles_2): New.
22241         (delay_cycles_1): New.
22242         * doc/extend.texi: Document __delay_cycles().
22243
22244 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
22245
22246         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
22247         length attribute computation.
22248
22249 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
22250
22251         PR debug/61188
22252         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
22253
22254 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
22255
22256         PR target/61084
22257         * config/sparc/sparc.md: Fix types of low and high in DI constant
22258         splitter.  Use gen_int_mode in some other splitters.
22259
22260 2014-05-14  Martin Jambor  <mjambor@suse.cz>
22261
22262         PR ipa/60897
22263         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
22264
22265 2014-05-14  James Norris  <jnorris@codesourcery.com>
22266
22267         * omp-low.c (expand_parallel_call): Remove shadow variable.
22268         (expand_omp_taskreg): Likewise.
22269
22270 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
22271
22272         * common/config/i386/i386-common.c
22273         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
22274         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
22275         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
22276         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
22277         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
22278         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
22279         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
22280         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
22281         xsavecintrin.h, xsavesintrin.h.
22282         (x86_64-*-*): Ditto.
22283         * config/i386/clflushoptintrin.h: New.
22284         * config/i386/xsavecintrin.h: Ditto.
22285         * config/i386/xsavesintrin.h: Ditto.
22286         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
22287         (bit_XSAVES): Ditto.
22288         (bit_XSAVES): Ditto.
22289         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
22290         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
22291         -mno-clflushopt.
22292         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
22293         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
22294         OPTION_MASK_ISA_XSAVES.
22295         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
22296         -mxsavec, -mxsaves.
22297         (PTA_CLFLUSHOPT) Define.
22298         (PTA_XSAVEC): Ditto.
22299         (PTA_XSAVES): Ditto.
22300         (ix86_option_override_internal): Handle new options.
22301         (ix86_valid_target_attribute_inner_p): Ditto.
22302         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
22303         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
22304         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
22305         (bdesc_special_args): Add __builtin_ia32_xsaves,
22306         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
22307         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
22308         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
22309         (ix86_expand_builtin): Handle new builtins.
22310         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
22311         (TARGET_CLFLUSHOPT_P): Ditto.
22312         (TARGET_XSAVEC): Ditto.
22313         (TARGET_XSAVEC_P): Ditto.
22314         (TARGET_XSAVES): Ditto.
22315         (TARGET_XSAVES_P): Ditto.
22316         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
22317         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
22318         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
22319         (ANY_XRSTOR): New.
22320         (ANY_XRSTOR64): Ditto.
22321         (xrstor): Ditto.
22322         (xrstor): Change into <xrstor>.
22323         (xrstor_rex64): Change into <xrstor>_rex64.
22324         (xrstor64): Change into <xrstor>64
22325         (clflushopt): New.
22326         * config/i386/i386.opt (mclflushopt): New.
22327         (mxsavec): Ditto.
22328         (mxsaves): Ditto.
22329         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
22330         xsavecintrin.h.
22331         * doc/invoke.texi: Document new options.
22332
22333 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
22334
22335         PR rtl-optimization/60866
22336         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
22337         Default it to -1.  Pass it down to init_simplejump_data.
22338         (init_simplejump_data): New parameter old_seqno.  Pass it down
22339         to get_seqno_for_a_jump.
22340         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
22341         initializing new jump seqno as a last resort.  Add comment.
22342         (sel_redirect_edge_and_branch): Save old seqno of the conditional
22343         jump and pass it down to sel_init_new_insn.
22344         (sel_redirect_edge_and_branch_force): Likewise.
22345
22346 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
22347
22348         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
22349         shifted values to avoid build warning.
22350
22351 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
22352
22353         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
22354         * cfgrtl.c (rtl_merge_blocks): Fix comment.
22355         (cfg_layout_merge_blocks): Likewise.
22356         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
22357
22358 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
22359
22360         PR rtl-optimization/60901
22361         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
22362         bb predecessor belongs to the same scheduling region.  Adjust comment.
22363
22364 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
22365
22366         * doc/sourcebuild.texi: (dfp_hw): Document.
22367         (p8vector_hw): Likewise.
22368         (powerpc_eabi_ok): Likewise.
22369         (powerpc_elfv2): Likewise.
22370         (powerpc_htm_ok): Likewise.
22371         (ppc_recip_hw): Likewise.
22372         (vsx_hw): Likewise.
22373
22374 2014-05-13  Cary Coutant  <ccoutant@google.com>
22375
22376         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
22377
22378 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
22379
22380         * gengtype-parse.c (require3): Eliminate in favor of...
22381         (require4): New.
22382         (require_template_declaration): Update to support optional single *
22383         on a type.
22384
22385         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
22386         (create_user_defined_type): Handle a single level of explicit
22387         pointerness within template arguments.
22388         (struct write_types_data): Add field "kind".
22389         (filter_type_name): Handle "*" character.
22390         (write_user_func_for_structure_ptr): Require a write_types_data
22391         rather than just a prefix string, so that we can look up the kind
22392         of the wtd and use it as an index into wrote_user_func_for_ptr,
22393         ensuring that such functions are written at most once.  Support
22394         subclasses by invoking the marking function of the ultimate base class.
22395         (write_user_func_for_structure_body): Require a write_types_data
22396         rather than just a prefix string, so that we can pass this to
22397         write_user_func_for_structure_ptr.
22398         (write_func_for_structure): Likewise.
22399         (ggc_wtd): Add initializer of new "kind" field.
22400         (pch_wtd): Likewise.
22401
22402         * gengtype.h (enum write_types_kinds): New.
22403         (struct type): Add field wrote_user_func_for_ptr to the "s"
22404         union member.
22405
22406 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
22407
22408         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
22409         instead of const_binop.
22410         (fold_binary_loc): Likewise.
22411
22412 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
22413
22414         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
22415         calculation to match get_ref_base_and_extent.
22416
22417 2014-05-13  Catherine Moore  <clm@codesourcery.com>
22418             Sandra Loosemore  <sandra@codesourcery.com>
22419
22420         * configure.ac: Fix assembly for explicit JALR relocation check.
22421         * configure: Regenerate.
22422
22423 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22424
22425         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
22426         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
22427         Remove associated type declarations and initialisations.
22428         (arm_expand_neon_builtin): Likewise.
22429         (neon_emit_pair_result_insn): Delete.
22430         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
22431         * config/arm/neon.md (neon_vtrn<mode>): Delete.
22432         (neon_vzip<mode>): Likewise.
22433         (neon_vuzp<mode>): Likewise.
22434
22435 2014-05-13  Richard Biener  <rguenther@suse.de>
22436
22437         PR ipa/60973
22438         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
22439         it needs revisiting whether the call still may be tail-called.
22440
22441 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
22442
22443         * rtl.def (SYMBOL_REF): Remove middle "0" field.
22444         * rtl.h (block_symbol): Reduce number of fields to 2.
22445         (rtx_def): Add u2.symbol_ref_flags.
22446         (SYMBOL_REF_FLAGS): Use it.
22447         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
22448         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
22449         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
22450         Lower index of SYMBOL_REF_DATA.
22451         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
22452         Print SYMBOL_REF_FLAGS at the same time.
22453         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
22454
22455 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
22456
22457         * rtl.def (VAR_LOCATION): Remove "i" field.
22458         * rtl.h (rtx_def): Add u2.var_location_status.
22459         (PAT_VAR_LOCATION_STATUS): Use it.
22460         (gen_rtx_VAR_LOCATION): Declare.
22461         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
22462         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
22463         * var-tracking.c (emit_note_insn_var_location): Remove casts.
22464
22465 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
22466
22467         * rtl.def (scratch): Fix outdated comment and remove "0" field.
22468         * gengtype.c (adjust_field_rtx_def): Update accordingly.
22469
22470 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
22471
22472         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
22473         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
22474         * rtl.h (rtx_def): Add insn_uid to u2 field.
22475         (RTX_FLAG_CHECK8): Delete in favor of...
22476         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
22477         (INSN_DELETED_P): Update accordingly.
22478         (INSN_UID): Use u2.insn_uid.
22479         (INSN_CHAIN_CODE_P): Define.
22480         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
22481         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
22482         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
22483         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
22484         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
22485         indices accordingly.
22486         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
22487         Update indices for insn-chain rtxes.
22488         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
22489         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
22490         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
22491         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
22492         * combine.c (try_combine): Likewise.
22493         * ira.c (setup_prohibited_mode_move_regs): Likewise.
22494
22495 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
22496
22497         * rtl.def (REG): Remove middle field.
22498         * rtl.h (rtx_def): Add orignal_regno to u2.
22499         (ORIGINAL_REGNO): Use it instead of field 1.
22500         (REG_ATTRS): Lower field index accordingly.
22501         * gengtype.c (adjust_field_rtx_def): Remove handling of
22502         ORIGINAL_REGNO.  Move REG_ATTRS index down.
22503         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
22504         code that prints the REGNO.
22505
22506 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
22507
22508         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
22509         GENERATOR_FILE.
22510
22511 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
22512
22513         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
22514
22515 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
22516
22517         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
22518         (alloc_iv): Lower base expressions containing ADDR_EXPR.
22519
22520 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
22521
22522         * config/aarch64/aarch64-protos.h
22523         (aarch64_hard_regno_caller_save_mode): New prototype.
22524         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
22525         New function.
22526         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
22527
22528 2014-05-13  Christian Bruel  <christian.bruel@st.com>
22529
22530         * target.def (mode_switching): New hook vector.
22531         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
22532         (mode_exit, modepriority_to_mode): Likewise.
22533         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
22534         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
22535         * target.h: Include tm.h and hard-reg-set.h.
22536         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
22537         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
22538         * doc/tm.texi Regenerate.
22539         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
22540         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
22541         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
22542         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
22543         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
22544         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
22545         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
22546         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
22547         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
22548         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
22549         (ix86_emit_mode_set): Hookify.
22550         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
22551         Delete.
22552         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
22553         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
22554         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
22555         (epiphany_mode_priority_to_mode): Remove declaration.
22556         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
22557         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
22558         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
22559         Likewise.
22560         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
22561         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
22562         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
22563
22564 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
22565
22566         PR target/61060
22567         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
22568         is const0_rtx, return immediately.  Don't test count == 0 when
22569         it is always true.
22570
22571 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
22572
22573         * Makefile.in: add shrink-wrap.o.
22574         * config/i386/i386.c: include "shrink-wrap.h"
22575         * function.c: Likewise.
22576         (requires_stack_frame_p, next_block_for_reg,
22577         move_insn_for_shrink_wrap, prepare_shrink_wrap,
22578         dup_block_and_redirect): Move to shrink-wrap.c
22579         (thread_prologue_and_epilogue_insns): Extract three code segments
22580         as functions in shrink-wrap.c
22581         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
22582         shrink-wrap.h
22583         * shrink-wrap.c: New file.
22584         * shrink-wrap.h: New file.
22585
22586 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
22587
22588         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
22589         reference to Solaris.
22590
22591 2014-05-12  Mike Stump  <mikestump@comcast.net>
22592
22593         PR other/31778
22594         * genattrtab.c (filename): Add.
22595         (convert_set_attr_alternative): Improve error message.
22596         (check_defs): Restore read_md_filename for error messages.
22597         (gen_insn): Save filename.
22598
22599 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
22600
22601         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
22602         -fno-local-ivars and -fivar-visibility.
22603         * c-family/c.opt: Make -Wshadow also implicitly enable
22604         -Wshadow-ivar.
22605
22606 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
22607
22608         * doc/tm.texi: Remove reference to deleted macro.
22609         * doc/tm.texi.in: Likewise.
22610
22611 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
22612
22613         PR target/60991
22614         * config/avr/avr.c (avr_out_store_psi): Use correct constant
22615         to restore Y.
22616
22617 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
22618
22619         PR libgcc/61152
22620         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
22621         * config/arm/aout.h (License): Same.
22622         * config/arm/bpabi.h (License): Same.
22623         * config/arm/elf.h (License): Same.
22624         * config/arm/linux-elf.h (License): Same.
22625         * config/arm/linux-gas.h (License): Same.
22626         * config/arm/netbsd-elf.h (License): Same.
22627         * config/arm/uclinux-eabi.h (License): Same.
22628         * config/arm/uclinux-elf.h (License): Same.
22629         * config/arm/vxworks.h (License): Same.
22630
22631 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
22632
22633         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
22634         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
22635         number of operands to 3.
22636         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
22637         * tree-nested.c (convert_nonlocal_omp_clauses,
22638         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
22639         * gimplify.c (gimplify_scan_omp_clauses): Handle
22640         OMP_CLAUSE_LINEAR_STMT.
22641         * omp-low.c (lower_rec_input_clauses): Fix typo.
22642         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
22643         cast between Fortran boolean_type_node and C _Bool if
22644         needed.
22645
22646 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
22647
22648         PR tree-optimization/61136
22649         * wide-int.h (multiple_of_p): Define a version that doesn't return
22650         the quotient.
22651         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
22652         integer_zerop/const_binop pair.
22653         (multiple_of_p): Likewise, converting both operands to widest_int
22654         precision.
22655
22656 2014-05-09  Teresa Johnson  <tejohnson@google.com>
22657
22658         * cgraphunit.c (analyze_functions): Use correct dump file.
22659
22660 2014-05-09  Florian Weimer  <fweimer@redhat.com>
22661
22662         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
22663         expand_used_vars.
22664         (stack_protect_return_slot_p): New function.
22665         (expand_used_vars): Call stack_protect_decl_p and
22666         stack_protect_return_slot_p for -fstack-protector-strong.
22667
22668 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
22669         Andrew Haley <aph@redhat.com>
22670         Richard Sandiford <rdsandiford@googlemail.com>
22671
22672         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
22673         pages.
22674
22675 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
22676
22677         PR middle-end/61111
22678         * fold-const.c (fold_binary_loc): Changed width of mask.
22679
22680 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
22681
22682         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
22683         unsigned int initializers for regno_in, regno_out.
22684
22685 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
22686
22687         PR target/61055
22688         * config/avr/avr.md (cc): Add new attribute set_vzn.
22689         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
22690         Set cc insn attribute to set_vzn instead of set_zn for alternatives
22691         with INC, DEC or NEG.
22692         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
22693         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
22694         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
22695
22696 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22697
22698         Revert:
22699         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22700
22701         * wide-int.cc (UTItype): Define.
22702         (UDWtype): Define for appropriate W_TYPE_SIZE.
22703
22704 2014-05-09  Richard Biener  <rguenther@suse.de>
22705
22706         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
22707         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
22708         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
22709         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
22710         ssa_propagate): Adjust.
22711
22712 2014-05-08  Jeff Law  <law@redhat.com>
22713
22714         PR tree-optimization/61009
22715         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
22716         tri-state rather than a boolean.  When a block is too big to
22717         thread through, inform caller via negative return value.
22718         (thread_across_edge): If a block was too big for normal threading,
22719         then it's too big for a joiner too, so remove temporary equivalences
22720         and return immediately.
22721
22722 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22723             Matthias Klose  <doko@ubuntu.com>
22724
22725         PR driver/61106
22726         * optc-gen.awk: Fix option handling for -Wunused-parameter.
22727
22728 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
22729
22730         PR target/59952
22731         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
22732
22733 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
22734
22735         PR target/61092
22736         * config/alpha/alpha.c: Include gimple-iterator.h.
22737         (alpha_gimple_fold_builtin): New function.  Move
22738         ALPHA_BUILTIN_UMULH folding from ...
22739         (alpha_fold_builtin): ... here.
22740         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
22741
22742 2014-05-08  Wei Mi  <wmi@google.com>
22743
22744         PR target/58066
22745         * config/i386/i386.c (ix86_compute_frame_layout): Update
22746         preferred_stack_boundary for call, expanded from tls descriptor.
22747         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
22748         to depend on SP register.
22749         (*tls_local_dynamic_base_32_gnu): Ditto.
22750         (*tls_local_dynamic_32_once): Ditto.
22751         (tls_global_dynamic_64_<mode>): Set
22752         ix86_tls_descriptor_calls_expanded_in_cfun.
22753         (tls_local_dynamic_base_64_<mode>): Ditto.
22754         (tls_global_dynamic_32): Set
22755         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
22756         to depend on SP register.
22757         (tls_local_dynamic_base_32): Ditto.
22758
22759 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22760
22761         * config/arm/arm_neon.h: Update comment.
22762         * config/arm/neon-docgen.ml: Delete.
22763         * config/arm/neon-gen.ml: Delete.
22764         * doc/arm-neon-intrinsics.texi: Update comment.
22765
22766 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22767
22768         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
22769         and v4sf versions.
22770         (vand, vorr, veor, vorn, vbic): Remove.
22771         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
22772         iterator.
22773         (neon_vsub_unspec): Likewise.
22774         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
22775
22776 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22777
22778         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
22779         (vadd_s16): Likewise.
22780         (vadd_s32): Likewise.
22781         (vadd_f32): Likewise.
22782         (vadd_u8): Likewise.
22783         (vadd_u16): Likewise.
22784         (vadd_u32): Likewise.
22785         (vadd_s64): Likewise.
22786         (vadd_u64): Likewise.
22787         (vaddq_s8): Likewise.
22788         (vaddq_s16): Likewise.
22789         (vaddq_s32): Likewise.
22790         (vaddq_s64): Likewise.
22791         (vaddq_f32): Likewise.
22792         (vaddq_u8): Likewise.
22793         (vaddq_u16): Likewise.
22794         (vaddq_u32): Likewise.
22795         (vaddq_u64): Likewise.
22796         (vmul_s8): Likewise.
22797         (vmul_s16): Likewise.
22798         (vmul_s32): Likewise.
22799         (vmul_f32): Likewise.
22800         (vmul_u8): Likewise.
22801         (vmul_u16): Likewise.
22802         (vmul_u32): Likewise.
22803         (vmul_p8): Likewise.
22804         (vmulq_s8): Likewise.
22805         (vmulq_s16): Likewise.
22806         (vmulq_s32): Likewise.
22807         (vmulq_f32): Likewise.
22808         (vmulq_u8): Likewise.
22809         (vmulq_u16): Likewise.
22810         (vmulq_u32): Likewise.
22811         (vsub_s8): Likewise.
22812         (vsub_s16): Likewise.
22813         (vsub_s32): Likewise.
22814         (vsub_f32): Likewise.
22815         (vsub_u8): Likewise.
22816         (vsub_u16): Likewise.
22817         (vsub_u32): Likewise.
22818         (vsub_s64): Likewise.
22819         (vsub_u64): Likewise.
22820         (vsubq_s8): Likewise.
22821         (vsubq_s16): Likewise.
22822         (vsubq_s32): Likewise.
22823         (vsubq_s64): Likewise.
22824         (vsubq_f32): Likewise.
22825         (vsubq_u8): Likewise.
22826         (vsubq_u16): Likewise.
22827         (vsubq_u32): Likewise.
22828         (vsubq_u64): Likewise.
22829         (vand_s8): Likewise.
22830         (vand_s16): Likewise.
22831         (vand_s32): Likewise.
22832         (vand_u8): Likewise.
22833         (vand_u16): Likewise.
22834         (vand_u32): Likewise.
22835         (vand_s64): Likewise.
22836         (vand_u64): Likewise.
22837         (vandq_s8): Likewise.
22838         (vandq_s16): Likewise.
22839         (vandq_s32): Likewise.
22840         (vandq_s64): Likewise.
22841         (vandq_u8): Likewise.
22842         (vandq_u16): Likewise.
22843         (vandq_u32): Likewise.
22844         (vandq_u64): Likewise.
22845         (vorr_s8): Likewise.
22846         (vorr_s16): Likewise.
22847         (vorr_s32): Likewise.
22848         (vorr_u8): Likewise.
22849         (vorr_u16): Likewise.
22850         (vorr_u32): Likewise.
22851         (vorr_s64): Likewise.
22852         (vorr_u64): Likewise.
22853         (vorrq_s8): Likewise.
22854         (vorrq_s16): Likewise.
22855         (vorrq_s32): Likewise.
22856         (vorrq_s64): Likewise.
22857         (vorrq_u8): Likewise.
22858         (vorrq_u16): Likewise.
22859         (vorrq_u32): Likewise.
22860         (vorrq_u64): Likewise.
22861         (veor_s8): Likewise.
22862         (veor_s16): Likewise.
22863         (veor_s32): Likewise.
22864         (veor_u8): Likewise.
22865         (veor_u16): Likewise.
22866         (veor_u32): Likewise.
22867         (veor_s64): Likewise.
22868         (veor_u64): Likewise.
22869         (veorq_s8): Likewise.
22870         (veorq_s16): Likewise.
22871         (veorq_s32): Likewise.
22872         (veorq_s64): Likewise.
22873         (veorq_u8): Likewise.
22874         (veorq_u16): Likewise.
22875         (veorq_u32): Likewise.
22876         (veorq_u64): Likewise.
22877         (vbic_s8): Likewise.
22878         (vbic_s16): Likewise.
22879         (vbic_s32): Likewise.
22880         (vbic_u8): Likewise.
22881         (vbic_u16): Likewise.
22882         (vbic_u32): Likewise.
22883         (vbic_s64): Likewise.
22884         (vbic_u64): Likewise.
22885         (vbicq_s8): Likewise.
22886         (vbicq_s16): Likewise.
22887         (vbicq_s32): Likewise.
22888         (vbicq_s64): Likewise.
22889         (vbicq_u8): Likewise.
22890         (vbicq_u16): Likewise.
22891         (vbicq_u32): Likewise.
22892         (vbicq_u64): Likewise.
22893         (vorn_s8): Likewise.
22894         (vorn_s16): Likewise.
22895         (vorn_s32): Likewise.
22896         (vorn_u8): Likewise.
22897         (vorn_u16): Likewise.
22898         (vorn_u32): Likewise.
22899         (vorn_s64): Likewise.
22900         (vorn_u64): Likewise.
22901         (vornq_s8): Likewise.
22902         (vornq_s16): Likewise.
22903         (vornq_s32): Likewise.
22904         (vornq_s64): Likewise.
22905         (vornq_u8): Likewise.
22906         (vornq_u16): Likewise.
22907         (vornq_u32): Likewise.
22908         (vornq_u64): Likewise.
22909
22910 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22911
22912         * wide-int.cc (UTItype): Define.
22913         (UDWtype): Define for appropriate W_TYPE_SIZE.
22914
22915 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
22916
22917         PR tree-optimization/59100
22918         * tree-ssa-phiopt.c: Include tree-inline.h.
22919         (neutral_element_p, absorbing_element_p): New functions.
22920         (value_replacement): Handle conditional binary operations with a
22921         neutral or absorbing element.
22922
22923 2014-05-08  Richard Biener  <rguenther@suse.de>
22924
22925         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
22926         folding the expression.
22927         (valueize_expr): Remove.
22928         (visit_reference_op_load): Do not valueize the result of
22929         vn_get_expr_for.
22930         (simplify_binary_expression): Likewise.
22931         (simplify_unary_expression): Likewise.
22932
22933 2014-05-08  Richard Biener  <rguenther@suse.de>
22934
22935         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
22936         looking at TYPE_ARG_TYPES.
22937
22938 2014-05-08  Richard Biener  <rguenther@suse.de>
22939
22940         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
22941         pointer propagation special-case.
22942
22943 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
22944
22945         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
22946         core part of address expressions.
22947
22948 2014-05-08  Alan Modra  <amodra@gmail.com>
22949
22950         PR target/60737
22951         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
22952         loads and stores when -mno-strict-align at any alignment.
22953         (expand_block_clear): Similarly.  Also correct calculation of
22954         instruction count.
22955
22956 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22957
22958         PR middle-end/39246
22959         * tree-complex.c (expand_complex_move): Keep line info when expanding
22960         complex move.
22961         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
22962         of complex expression. Use new argument to display correct location
22963         for values coming from phi statement.
22964         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
22965         (warn_uninitialized_phi): Pass location of phi argument to
22966         warn_uninit.
22967         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
22968         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
22969
22970 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
22971
22972         * config/rs6000/predicates.md (indexed_address_mem): New.
22973         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
22974         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
22975         fpstore_ux, fpstore_u.
22976         (sign_extend, indexed, update): New.
22977         (cell_micro): Adjust.
22978         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
22979         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
22980         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
22981         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
22982         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
22983         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
22984         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
22985         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
22986         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
22987         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
22988         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
22989         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
22990         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
22991         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
22992         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
22993
22994         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
22995         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
22996         *vsx_extract_<mode>_store): Adjust.
22997         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
22998         is_cracked_insn, insn_must_be_first_in_group,
22999         insn_must_be_last_in_group): Adjust.
23000
23001         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
23002         Adjust.
23003         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
23004         ppc440-fpstore): Adjust.
23005         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
23006         ppc476-fpstore): Adjust.
23007         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
23008         ppc601-fpstore): Adjust.
23009         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
23010         Adjust.
23011         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
23012         Adjust.
23013         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
23014         ppc7450-fpstore): Adjust.
23015         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
23016         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
23017         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
23018         Adjust.
23019         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
23020         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
23021         cell-fpstore, cell-fpstore-update): Adjust.
23022         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
23023         ppce300c3_store, ppce300c3_fpstore): Adjust.
23024         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
23025         e500mc_fpstore): Adjust.
23026         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
23027         e500mc64_store, e500mc64_fpstore): Adjust.
23028         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
23029         e5500_fpstore): Adjust.
23030         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
23031         e6500_fpstore): Adjust.
23032         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
23033         Adjust.
23034         * config/rs6000/power4.md (power4-load, power4-load-ext,
23035         power4-load-ext-update, power4-load-ext-update-indexed,
23036         power4-load-update-indexed, power4-load-update, power4-fpload,
23037         power4-fpload-update, power4-store, power4-store-update,
23038         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
23039         Adjust.
23040         * config/rs6000/power5.md (power5-load, power5-load-ext,
23041         power5-load-ext-update, power5-load-ext-update-indexed,
23042         power5-load-update-indexed, power5-load-update, power5-fpload,
23043         power5-fpload-update, power5-store, power5-store-update,
23044         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
23045         Adjust.
23046         * config/rs6000/power6.md (power6-load, power6-load-ext,
23047         power6-load-update, power6-load-update-indexed,
23048         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
23049         power6-fpload-update, power6-store, power6-store-update,
23050         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
23051         Adjust.
23052         * config/rs6000/power7.md (power7-load, power7-load-ext,
23053         power7-load-update, power7-load-update-indexed,
23054         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
23055         power7-fpload-update, power7-store, power7-store-update,
23056         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
23057         Adjust.
23058         * config/rs6000/power8.md (power8-load, power8-load-update,
23059         power8-load-ext, power8-load-ext-update, power8-fpload,
23060         power8-fpload-update, power8-store, power8-store-update-indexed,
23061         power8-fpstore, power8-fpstore-update): Adjust.
23062         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
23063         Adjust.
23064         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
23065         titan_lsu_store, titan_lsu_fpstore): Adjust.
23066         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
23067
23068 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
23069
23070         PR target/60884
23071         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
23072         unrolled byte insns.  Emit address increments after move insns.
23073
23074 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
23075
23076         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
23077         const_gimple, rather than a gimple.
23078         (gimple_call_builtin_p): Likewise, for the three variants.
23079
23080         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
23081         (gimple_call_builtin_p): Likewise, for the three variants.
23082
23083 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
23084
23085         PR tree-optimization/61095
23086         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
23087
23088 2014-05-07  Richard Biener  <rguenther@suse.de>
23089
23090         PR tree-optimization/61034
23091         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
23092         (maybe_skip_until): Use translate to take into account
23093         lattices when trying to do disambiguations.
23094         (get_continuation_for_phi_1): Likewise.
23095         (get_continuation_for_phi): Adjust for added translate arguments.
23096         (walk_non_aliased_vuses): Likewise.
23097         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
23098         (walk_non_aliased_vuses): Likewise.
23099         (call_may_clobber_ref_p_1): Declare.
23100         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
23101         calls.  Stop early if we are only supposed to disambiguate.
23102         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
23103
23104 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
23105
23106         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
23107         Emit an error when the function has arguments.
23108
23109 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
23110
23111         * cfgloop.h (unswitch_loops): Remove.
23112         * doc/passes.texi: Remove references to loop-unswitch.c
23113         * timevar.def (TV_LOOP_UNSWITCH): Remove.
23114
23115 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
23116
23117         * tree-vect-data-refs.c (vect_grouped_load_supported): New
23118         check for loads group of length 3.
23119         (vect_permute_load_chain): New permutations for loads group of
23120         length 3.
23121         * tree-vect-stmts.c (vect_model_load_cost): Change cost
23122         of vec_perm_shuffle for the new permutations.
23123
23124 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
23125
23126         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
23127         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
23128         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
23129         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
23130         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
23131         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
23132         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
23133         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
23134
23135 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
23136
23137         * loop-unswitch.c: Delete.
23138
23139 2014-05-07  Richard Biener  <rguenther@suse.de>
23140
23141         * config.gcc: Always set need_64bit_hwint to yes.
23142
23143 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
23144
23145         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
23146         of using optimize_size.
23147
23148 2014-05-06  Mike Stump  <mikestump@comcast.net>
23149
23150         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
23151
23152 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
23153
23154         * config/i386/sse.md (*mov<mode>_internal)
23155         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
23156         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
23157         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
23158         (*<code><mode>3, *andnot<mode>3<mask_name>)
23159         (<mask_codefor><code><mode>3<mask_name>): Only consider
23160         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
23161
23162 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
23163
23164         Revert:
23165         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
23166
23167         * lra-constraints.c (valid_address_p): Move earlier in file.
23168         Add a constraint argument to the address_info version.
23169         (satisfies_memory_constraint_p): New function.
23170         (satisfies_address_constraint_p): Likewise.
23171         (process_alt_operands, curr_insn_transform): Use them.
23172         (process_address): Pass the constraint to valid_address_p when
23173         checking address operands.
23174
23175 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
23176
23177         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
23178         to their respective blocks.  Fix inadvertent use of "node".
23179
23180 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
23181
23182         * emit-rtl.c (init_derived_machine_modes): New functionm, split
23183         out from...
23184         (init_emit_once): ...here.
23185         * rtl.h (init_derived_machine_modes): Declare.
23186         * toplev.c (do_compile): Call it even if no_backend.
23187
23188 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
23189             Mike Stump  <mikestump@comcast.net>
23190             Richard Sandiford  <rdsandiford@googlemail.com>
23191             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23192
23193         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
23194         (rtx_equal_for_memref_p): Update comment.
23195         (adjust_offset_for_component_ref): Use wide-int interfaces.
23196         * builtins.c (get_object_alignment_2): Likewise.
23197         (c_readstr): Likewise.
23198         (target_char_cast): Add comment.
23199         (determine_block_size): Use wide-int interfaces.
23200         (expand_builtin_signbit): Likewise.
23201         (fold_builtin_int_roundingfn): Likewise.
23202         (fold_builtin_bitop): Likewise.
23203         (fold_builtin_bswap): Likewise.
23204         (fold_builtin_logarithm): Use signop.
23205         (fold_builtin_pow): Likewise.
23206         (fold_builtin_memory_op): Use wide-int interfaces.
23207         (fold_builtin_object_size): Likewise.
23208         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
23209         nb_iterations_estimate.
23210         (record_niter_bound): Use wide-int interfaces.
23211         (get_estimated_loop_iterations_int): Likewise.
23212         (get_estimated_loop_iterations): Likewise.
23213         (get_max_loop_iterations): Likewise.
23214         * cfgloop.h: Include wide-int.h.
23215         (struct nb_iter_bound): Change bound to widest_int.
23216         (struct loop): Change nb_iterations_upper_bound and
23217         nb_iterations_estimate to widest_int.
23218         (record_niter_bound): Switch to use widest_int.
23219         (get_estimated_loop_iterations): Likewise.
23220         (get_max_loop_iterations): Likewise.
23221         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
23222         update for wide-int.
23223         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
23224         * combine.c (try_combine): Likewise.
23225         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
23226         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
23227         interfaces.
23228         (aarch64_float_const_representable_p): Likewise.
23229         * config/arc/arc.c: Include wide-int.h.
23230         (arc_can_use_doloop_p): Use wide-int interfaces.
23231         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
23232         (vfp3_const_double_index): Likewise.
23233         * config/avr/avr.c (avr_out_round): Likewise.
23234         (avr_fold_builtin): Likewise.
23235         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
23236         (bfin_can_use_doloop_p): Likewise.
23237         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
23238         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
23239         * config/i386/i386.c: Include wide-int.h.
23240         (ix86_data_alignment): Use wide-int interfaces.
23241         (ix86_local_alignment): Likewise.
23242         (ix86_emit_swsqrtsf): Update real_from_integer.
23243         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
23244         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
23245         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
23246         (zero_constant): Likewise.
23247         (input_operand): Likewise.
23248         (splat_input_operand): Likewise.
23249         (non_logical_cint_operand): Change const_double to const_wide_int.
23250         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
23251         (easy_altivec_constant): Remove comment.
23252         (paired_expand_vector_init): Use CONSTANT_P.
23253         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
23254         (rs6000_emit_move): Update checks.
23255         (rs6000_aggregate_candidate): Use wide-int interfaces.
23256         (rs6000_expand_ternop_builtin): Likewise.
23257         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
23258         (rs6000_assemble_integer): Likewise.
23259         (rs6000_hash_constant): Likewise.
23260         (output_toc): Likewise.
23261         (rs6000_rtx_costs): Likewise.
23262         (rs6000_emit_swrsqrt); Update call to real_from_integer.
23263         * config/rs6000/rs6000-c.c: Include wide-int.h.
23264         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
23265         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
23266         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
23267         Handle CONST_WIDE_INT.
23268         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
23269         Use tree_fits_uhwi_p.
23270         * config/sparc/sparc.c: Include wide-int.h.
23271         (sparc_fold_builtin): Use wide-int interfaces.
23272         * config/vax/vax.c: Include wide-int.h.
23273         (vax_float_literal): Use real_from_integer.
23274         * coretypes.h (struct hwivec_def): New.
23275         (hwivec): New.
23276         (const_hwivec): New.
23277         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
23278         (equiv_constant): Handle CONST_WIDE_INT.
23279         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
23280         (cselib_hash_rtx): Handle CONST_WIDE_INT.
23281         * dbxout.c (stabstr_U): Use wide-int interfaces.
23282         (dbxout_type): Update to use cst_fits_shwi_p.
23283         * defaults.h (LOG2_BITS_PER_UNIT): Define.
23284         (TARGET_SUPPORTS_WIDE_INT): Add default.
23285         * dfp.c: Include wide-int.h.
23286         (decimal_real_to_integer2): Use wide-int interfaces and rename to
23287         decimal_real_to_integer.
23288         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
23289         decimal_real_to_integer.
23290         * doc/generic.texi (Constant expressions): Update for wide_int.
23291         * doc/rtl.texi (const_double): Likewise.
23292         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
23293         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
23294         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
23295         (REAL_VALUE_FROM_INT): Remove.
23296         (TARGET_SUPPORTS_WIDE_INT): New.
23297         * doc/tm.texi: Regenerate.
23298         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
23299         * double-int.h: Include wide-int.h.
23300         (struct wi::int_traits): New.
23301         * dwarf2out.c (get_full_len): New.
23302         (dw_val_equal_p): Add case dw_val_class_wide_int.
23303         (size_of_loc_descr): Likewise.
23304         (output_loc_operands): Likewise.
23305         (insert_double): Remove.
23306         (insert_wide_int): New.
23307         (add_AT_wide): New.
23308         (print_die): Add case dw_val_class_wide_int.
23309         (attr_checksum): Likewise.
23310         (attr_checksum_ordered): Likewise.
23311         (same_dw_val_p): Likewise.
23312         (size_of_die): Likewise.
23313         (value_format): Likewise.
23314         (output_die): Likewise.
23315         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
23316         Use wide-int.
23317         (clz_loc_descriptor): Use wide-int interfaces.
23318         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
23319         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
23320         (round_up_to_align): Use wide-int interfaces.
23321         (field_byte_offset): Likewise.
23322         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
23323         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
23324         CONST_DOUBLE handling.  Use wide-int interfaces.
23325         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
23326         (gen_enumeration_type_die): Use add_AT_wide.
23327         (hash_loc_operands): Add case dw_val_class_wide_int.
23328         (compare_loc_operands): Likewise.
23329         * dwarf2out.h: Include wide-int.h.
23330         (wide_int_ptr): New.
23331         (enum dw_val_class): Add dw_val_class_wide_int.
23332         (struct dw_val_struct): Add val_wide.
23333         * emit-rtl.c (const_wide_int_htab): New.
23334         (const_wide_int_htab_hash): New.
23335         (const_wide_int_htab_eq): New.
23336         (lookup_const_wide_int): New.
23337         (const_double_htab_hash): Use wide-int interfaces.
23338         (const_double_htab_eq): Likewise.
23339         (rtx_to_double_int): Conditionally compile for wide-int.
23340         (immed_double_int_const): Rename to immed_wide_int_const and
23341         update for wide-int.
23342         (immed_double_const): Conditionally compile for wide-int.
23343         (init_emit_once): Use wide-int interfaces.
23344         * explow.c (plus_constant): Likewise.
23345         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
23346         (lshift_value): Use wide-int interfaces.
23347         (expand_mult): Likewise.
23348         (choose_multiplier): Likewise.
23349         (expand_smod_pow2): Likewise.
23350         (make_tree): Likewise.
23351         * expr.c (convert_modes): Consolidate handling of constants.
23352         Use wide-int interfaces.
23353         (emit_group_load_1): Add note.
23354         (store_expr): Update comment.
23355         (get_inner_reference): Use wide-int interfaces.
23356         (expand_constructor): Update comment.
23357         (expand_expr_real_2): Use wide-int interfaces.
23358         (expand_expr_real_1): Likewise.
23359         (reduce_to_bit_field_precision): Likewise.
23360         (const_vector_from_tree): Likewise.
23361         * final.c: Include wide-int-print.h.
23362         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
23363         * fixed-value.c: Include wide-int.h.
23364         (fixed_from_string): Use wide-int interfaces.
23365         (fixed_to_decimal): Likewise.
23366         (fixed_convert_from_real): Likewise.
23367         (real_convert_from_fixed): Likewise.
23368         * fold-const.h (mem_ref_offset): Return an offset_int.
23369         (div_if_zero_remainder): Remove code parameter.
23370         * fold-const.c (div_if_zero_remainder): Remove code parameter.
23371         Use wide-int interfaces.
23372         (may_negate_without_overflow_p): Use wide-int interfaces.
23373         (negate_expr_p): Likewise.
23374         (fold_negate_expr): Likewise.
23375         (int_const_binop_1): Likewise.
23376         (const_binop): Likewise.
23377         (fold_convert_const_int_from_int): Likewise.
23378         (fold_convert_const_int_from_real): Likewise.
23379         (fold_convert_const_int_from_fixed): Likewise.
23380         (fold_convert_const_fixed_from_int): Likewise.
23381         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
23382         (sign_bit_p): Use wide-int interfaces.
23383         (make_range_step): Likewise.
23384         (build_range_check): Likewise.  Pass an integer of the correct type
23385         instead of using integer_one_node.
23386         (range_predecessor): Pass an integer of the correct type instead
23387         of using integer_one_node.
23388         (range_successor): Likewise.
23389         (merge_ranges): Likewise.
23390         (unextend): Use wide-int interfaces.
23391         (extract_muldiv_1): Likewise.
23392         (fold_div_compare): Likewise.
23393         (fold_single_bit_test): Likewise.
23394         (fold_sign_changed_comparison): Likewise.
23395         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
23396         (fold_plusminus_mult_expr): Use wide-int interfaces.
23397         (native_encode_int): Likewise.
23398         (native_interpret_int): Likewise.
23399         (fold_unary_loc): Likewise.
23400         (pointer_may_wrap_p): Likewise.
23401         (size_low_cst): Likewise.
23402         (mask_with_tz): Likewise.
23403         (fold_binary_loc): Likewise.
23404         (fold_ternary_loc): Likewise.
23405         (multiple_of_p): Likewise.
23406         (tree_call_nonnegative_warnv_p): Update calls to
23407         tree_int_cst_min_precision and real_from_integer.
23408         (fold_negate_const): Use wide-int interfaces.
23409         (fold_abs_const): Likewise.
23410         (fold_relational_const): Use tree_int_cst_lt.
23411         (round_up_loc): Use wide-int interfaces.
23412         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
23413         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
23414         * gengtype.c: Remove include of double-int.h.
23415         (do_typedef): Use wide-int interfaces.
23416         (open_base_files): Add wide-int.h.
23417         (main): Add offset_int and widest_int typedefs.
23418         * gengtype-lex.l: Handle "^".
23419         (CXX_KEYWORD): Add "static".
23420         * gengtype-parse.c (require3): New.
23421         (require_template_declaration): Handle constant template arguments
23422         and nested templates.
23423         * gengtype-state.c: Don't include "double-int.h".
23424         * genpreds.c (write_one_predicate_function): Update comment.
23425         (write_tm_constrs_h): Add check for hval and lval use in
23426         CONST_WIDE_INT.
23427         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
23428         (add_to_sequence): Likewise.
23429         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
23430         and const_double_operand.
23431         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
23432         interfaces.
23433         * gimple-fold.c (get_base_constructor): Likewise.
23434         (fold_array_ctor_reference): Likewise.
23435         (fold_nonarray_ctor_reference): Likewise.
23436         (fold_const_aggregate_ref_1): Likewise.
23437         (gimple_val_nonnegative_real_p): Likewise.
23438         (gimple_fold_indirect_ref): Likewise.
23439         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
23440         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
23441         (struct slsr_cand_d): Change index to be widest_int.
23442         (struct incr_info_d): Change incr to be widest_int.
23443         (alloc_cand_and_find_basis): Use wide-int interfaces.
23444         (slsr_process_phi): Likewise.
23445         (backtrace_base_for_ref): Likewise.  Return a widest_int.
23446         (restructure_reference): Take a widest_int instead of a double_int.
23447         (slsr_process_ref): Use wide-int interfaces.
23448         (create_mul_ssa_cand): Likewise.
23449         (create_mul_imm_cand): Likewise.
23450         (create_add_ssa_cand): Likewise.
23451         (create_add_imm_cand): Take a widest_int instead of a double_int.
23452         (slsr_process_add): Use wide-int interfaces.
23453         (slsr_process_cast): Likewise.
23454         (slsr_process_copy): Likewise.
23455         (dump_candidate): Likewise.
23456         (dump_incr_vec): Likewise.
23457         (replace_ref): Likewise.
23458         (cand_increment): Likewise.  Return a widest_int.
23459         (cand_abs_increment): Likewise.
23460         (replace_mult_candidate): Take a widest_int instead of a double_int.
23461         (replace_unconditional_candidate): Use wide-int interfaces.
23462         (incr_vec_index): Take a widest_int instead of a double_int.
23463         (create_add_on_incoming_edge): Likewise.
23464         (create_phi_basis): Use wide-int interfaces.
23465         (replace_conditional_candidate): Likewise.
23466         (record_increment): Take a widest_int instead of a double_int.
23467         (record_phi_increments): Use wide-int interfaces.
23468         (phi_incr_cost): Take a widest_int instead of a double_int.
23469         (lowest_cost_path): Likewise.
23470         (total_savings): Likewise.
23471         (analyze_increments): Use wide-int interfaces.
23472         (ncd_with_phi): Take a widest_int instead of a double_int.
23473         (ncd_of_cand_and_phis): Likewise.
23474         (nearest_common_dominator_for_cands): Likewise.
23475         (insert_initializers): Use wide-int interfaces.
23476         (all_phi_incrs_profitable): Likewise.
23477         (replace_one_candidate): Likewise.
23478         (replace_profitable_candidates): Likewise.
23479         * godump.c: Include wide-int-print.h.
23480         (go_output_typedef): Use wide-int interfaces.
23481         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
23482         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
23483         (build_loop_iteration_domains): Likewise.
23484         * hooks.h: Include wide-int.h rather than double-int.h.
23485         (hook_bool_dint_dint_uint_bool_true): Delete.
23486         (hook_bool_wint_wint_uint_bool_true): Declare.
23487         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
23488         (hook_bool_wint_wint_uint_bool_true): New.
23489         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
23490         interfaces.
23491         (ubsan_expand_si_overflow_mul_check): Likewise.
23492         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
23493         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
23494         (get_ancestor_addr_info): Likewise.
23495         (ipa_modify_call_arguments): Likewise.
23496         * loop-doloop.c (doloop_modify): Likewise.
23497         (doloop_optimize): Likewise.
23498         * loop-iv.c (iv_number_of_iterations): Likewise.
23499         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
23500         (unroll_loop_constant_iterations): Likewise.
23501         (decide_unroll_runtime_iterations): Likewise.
23502         (unroll_loop_runtime_iterations): Likewise.
23503         (decide_peel_simple): Likewise.
23504         (decide_unroll_stupid): Likewise.
23505         * lto-streamer-in.c (streamer_read_wi): Add.
23506         (input_cfg): Use wide-int interfaces.
23507         (lto_input_tree_1): Likewise.
23508         * lto-streamer-out.c (streamer_write_wi): Add.
23509         (hash_tree): Use wide-int interfaces.
23510         (output_cfg): Likewise.
23511         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
23512         (GTFILES): Add wide-int.h and signop.h.
23513         (TAGS): Look for .cc files too.
23514         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
23515         * optabs.c (expand_subword_shift): Likewise.
23516         (expand_doubleword_shift): Likewise.
23517         (expand_absneg_bit): Likewise.
23518         (expand_copysign_absneg): Likewise.
23519         (expand_copysign_bit): Likewise.
23520         * postreload.c (reload_cse_simplify_set): Likewise.
23521         * predict.c (predict_iv_comparison): Likewise.
23522         * pretty-print.h: Include wide-int-print.h.
23523         (pp_wide_int) New.
23524         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
23525         * print-tree.c: Include wide-int-print.h.
23526         (print_node_brief): Use wide-int interfaces.
23527         (print_node): Likewise.
23528         * read-rtl.c (validate_const_wide_int): New.
23529         (read_rtx_code): Add CONST_WIDE_INT case.
23530         * real.c: Include wide-int.h.
23531         (real_to_integer2): Delete.
23532         (real_to_integer): New function, returning a wide_int.
23533         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
23534         (ten_to_ptwo): Update call to real_from_integer.
23535         (real_digit): Likewise.
23536         * real.h: Include signop.h, wide-int.h and insn-modes.h.
23537         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
23538         (REAL_VALUE_TO_INT): Delete.
23539         (real_to_integer): Declare a wide-int form.
23540         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
23541         * recog.c (const_int_operand): Improve comment.
23542         (const_scalar_int_operand): New.
23543         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
23544         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
23545         (split_double): Likewise.
23546         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
23547         (rtx_size): Likewise.
23548         (rtx_alloc_stat_v): New.
23549         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
23550         (cwi_output_hex): New.
23551         (iterative_hash_rtx): Handle CONST_WIDE_INT.
23552         (cwi_check_failed_bounds): New.
23553         * rtl.def (CONST_WIDE_INT): New.
23554         * rtl.h: Include <utility> and wide-int.h.
23555         (struct hwivec_def): New.
23556         (CWI_GET_NUM_ELEM): New.
23557         (CWI_PUT_NUM_ELEM): New.
23558         (struct rtx_def): Add num_elem and hwiv.
23559         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
23560         (CASE_CONST_UNIQUE): Likewise.
23561         (CASE_CONST_ANY): Likewise.
23562         (CONST_SCALAR_INT_P): Likewise.
23563         (CONST_WIDE_INT_P): New.
23564         (CWI_ELT): New.
23565         (HWIVEC_CHECK): New.
23566         (cwi_check_failed_bounds): New.
23567         (CWI_ELT): New.
23568         (HWIVEC_CHECK): New.
23569         (CONST_WIDE_INT_VEC) New.
23570         (CONST_WIDE_INT_NUNITS) New.
23571         (CONST_WIDE_INT_ELT) New.
23572         (rtx_mode_t): New type.
23573         (wi::int_traits <rtx_mode_t>): New.
23574         (wi::shwi): New.
23575         (wi::min_value): New.
23576         (wi::max_value): New.
23577         (rtx_alloc_v) New.
23578         (const_wide_int_alloc): New.
23579         (immed_wide_int_const): New.
23580         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
23581         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
23582         * signop.h: New file.
23583         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
23584         (simplify_const_unary_operation): Use wide-int interfaces.
23585         (simplify_binary_operation_1): Likewise.
23586         (simplify_const_binary_operation): Likewise.
23587         (simplify_const_relational_operation): Likewise.
23588         (simplify_immed_subreg): Likewise.
23589         * stmt.c (expand_case): Likewise.
23590         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
23591         signop rather than a bool.
23592         * stor-layout.c (layout_type): Use wide-int interfaces.
23593         (initialize_sizetypes): Update calls to
23594         set_min_and_max_values_for_integral_type.
23595         (set_min_and_max_values_for_integral_type): Take a signop rather
23596         than a bool.  Use wide-int interfaces.
23597         (fixup_signed_type): Update accordingly.  Remove
23598         HOST_BITS_PER_DOUBLE_INT limit.
23599         (fixup_unsigned_type): Likewise.
23600         * system.h (STATIC_CONSTANT_P): New.
23601         (STATIC_ASSERT): New.
23602         * target.def (can_use_doloop_p): Take widest_ints rather than
23603         double_ints.
23604         * target.h: Include wide-int.h rather than double-int.h.
23605         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
23606         than double_ints.
23607         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
23608         rather than INT_CST_LT_UNSIGNED.
23609         (can_use_doloop_if_innermost): Take widest_ints rather than
23610         double_ints.
23611         * tree-affine.c: Include wide-int-print.h.
23612         (double_int_ext_for_comb): Delete.
23613         (wide_int_ext_for_comb): New.
23614         (aff_combination_zero): Use wide-int interfaces.
23615         (aff_combination_const): Take a widest_int instead of a double_int.
23616         (aff_combination_elt): Use wide-int interfaces.
23617         (aff_combination_scale): Take a widest_int instead of a double_int.
23618         (aff_combination_add_elt): Likewise.
23619         (aff_combination_add_cst): Likewise.
23620         (aff_combination_add): Use wide-int interfaces.
23621         (aff_combination_convert): Likewise.
23622         (tree_to_aff_combination): Likewise.
23623         (add_elt_to_tree): Take a widest_int instead of a double_int.
23624         (aff_combination_to_tree): Use wide-int interfaces.
23625         (aff_combination_remove_elt): Likewise.
23626         (aff_combination_add_product): Take a widest_int instead of
23627         a double_int.
23628         (aff_combination_mult): Use wide-int interfaces.
23629         (aff_combination_expand): Likewise.
23630         (double_int_constant_multiple_p): Delete.
23631         (wide_int_constant_multiple_p): New.
23632         (aff_combination_constant_multiple_p): Take a widest_int pointer
23633         instead of a double_int pointer.
23634         (print_aff): Use wide-int interfaces.
23635         (get_inner_reference_aff): Take a widest_int pointer
23636         instead of a double_int pointer.
23637         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
23638         * tree-affine.h: Include wide-int.h.
23639         (struct aff_comb_elt): Change type of coef to widest_int.
23640         (struct affine_tree_combination): Change type of offset to widest_int.
23641         (double_int_ext_for_comb): Delete.
23642         (wide_int_ext_for_comb): New.
23643         (aff_combination_const): Use widest_int instead of double_int.
23644         (aff_combination_scale): Likewise.
23645         (aff_combination_add_elt): Likewise.
23646         (aff_combination_constant_multiple_p): Likewise.
23647         (get_inner_reference_aff): Likewise.
23648         (aff_comb_cannot_overlap_p): Likewise.
23649         (aff_combination_zero_p): Use wide-int interfaces.
23650         * tree.c: Include tree.h.
23651         (init_ttree): Use make_int_cst.
23652         (tree_code_size): Removed code for INTEGER_CST case.
23653         (tree_size): Add INTEGER_CST case.
23654         (make_node_stat): Update comment.
23655         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
23656         (build_int_cst_type): Use wide-int interfaces.
23657         (double_int_to_tree): Likewise.
23658         (double_int_fits_to_tree_p): Delete.
23659         (force_fit_type_double): Delete.
23660         (force_fit_type): New.
23661         (int_cst_hash_hash): Use wide-int interfaces.
23662         (int_cst_hash_eq): Likewise.
23663         (build_int_cst_wide): Delete.
23664         (wide_int_to_tree): New.
23665         (cache_integer_cst): Use wide-int interfaces.
23666         (build_low_bits_mask): Likewise.
23667         (cst_and_fits_in_hwi): Likewise.
23668         (real_value_from_int_cst): Likewise.
23669         (make_int_cst_stat): New.
23670         (integer_zerop): Use wide_int interfaces.
23671         (integer_onep): Likewise.
23672         (integer_all_onesp): Likewise.
23673         (integer_pow2p): Likewise.
23674         (integer_nonzerop): Likewise.
23675         (tree_log2): Likewise.
23676         (tree_floor_log2): Likewise.
23677         (tree_ctz): Likewise.
23678         (int_size_in_bytes): Likewise.
23679         (mem_ref_offset): Return an offset_int rather than a double_int.
23680         (build_type_attribute_qual_variant): Use wide_int interfaces.
23681         (type_hash_eq): Likewise
23682         (tree_int_cst_equal): Likewise.
23683         (tree_int_cst_lt): Delete.
23684         (tree_int_cst_compare): Likewise.
23685         (tree_fits_shwi_p): Use wide_int interfaces.
23686         (tree_fits_uhwi_p): Likewise.
23687         (tree_int_cst_sign_bit): Likewise.
23688         (tree_int_cst_sgn): Likewise.
23689         (tree_int_cst_min_precision): Take a signop rather than a bool.
23690         (simple_cst_equal): Use wide_int interfaces.
23691         (compare_tree_int): Likewise.
23692         (iterative_hash_expr): Likewise.
23693         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
23694         INT_CST_LT.
23695         (get_type_static_bounds): Use wide_int interfaces.
23696         (tree_int_cst_elt_check_failed): New.
23697         (build_common_tree_nodes): Reordered to set prec before filling in
23698         value.
23699         (int_cst_value): Check cst_and_fits_in_hwi.
23700         (widest_int_cst_value): Use wide_int interfaces.
23701         (upper_bound_in_type): Likewise.
23702         (lower_bound_in_type): Likewise.
23703         (num_ending_zeros): Likewise.
23704         (drop_tree_overflow): Likewise.
23705         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
23706         (gen_conditions_for_pow_cst_base): Likewise.
23707         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
23708         (group_case_labels_stmt): Use wide-int interfaces.
23709         (verify_gimple_assign_binary): Likewise.
23710         (print_loop): Likewise.
23711         * tree-chrec.c (tree_fold_binomial): Likewise.
23712         * tree-core.h (struct tree_base): Add int_length.
23713         (struct tree_int_cst): Change rep of value.
23714         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
23715         (dr_may_alias_p): Likewise.
23716         (max_stmt_executions_tree): Likewise.
23717         * tree.def (INTEGER_CST): Update comment.
23718         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
23719         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
23720         * tree-dump.c: Include wide-int.h and wide-int-print.h.
23721         (dequeue_and_dump): Use wide-int interfaces.
23722         * tree.h: Include wide-int.h.
23723         (NULL_TREE): Moved to earlier loc in file.
23724         (TREE_INT_CST_ELT_CHECK): New.
23725         (tree_int_cst_elt_check_failed): New.
23726         (TYPE_SIGN): New.
23727         (TREE_INT_CST): Delete.
23728         (TREE_INT_CST_LOW): Use wide-int interfaces.
23729         (TREE_INT_CST_HIGH): Delete.
23730         (TREE_INT_CST_NUNITS): New.
23731         (TREE_INT_CST_EXT_NUNITS): Likewise.
23732         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
23733         (TREE_INT_CST_ELT): Likewise.
23734         (INT_CST_LT): Delete.
23735         (tree_int_cst_elt_check): New (two forms).
23736         (type_code_size): Update comment.
23737         (make_int_cst_stat, make_int_cst): New.
23738         (tree_to_double_int): Delete.
23739         (double_int_fits_to_tree_p): Delete.
23740         (force_fit_type_double): Delete.
23741         (build_int_cstu): Replace with out-of-line function.
23742         (build_int_cst_wide): Delete.
23743         (tree_int_cst_lt): Define inline.
23744         (tree_int_cst_le): New.
23745         (tree_int_cst_compare): Define inline.
23746         (tree_int_cst_min_precision): Take a signop rather than a bool.
23747         (wi::int_traits <const_tree>): New.
23748         (wi::int_traits <tree>): New.
23749         (wi::extended_tree): New.
23750         (wi::int_traits <wi::extended_tree>): New.
23751         (wi::to_widest): New.
23752         (wi::to_offset): New.
23753         (wi::fits_to_tree_p): New.
23754         (wi::min_value): New.
23755         (wi::max_value): New.
23756         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
23757         (copy_tree_body_r): Likewise.
23758         * tree-object-size.c (compute_object_offset): Likewise.
23759         (addr_object_size): Likewise.
23760         * tree-predcom.c: Include wide-int-print.h.
23761         (struct dref_d): Change type of offset to widest_int.
23762         (dump_dref): Call wide-int printer.
23763         (aff_combination_dr_offset): Use wide-int interfaces.
23764         (determine_offset): Take a widest_int pointer rather than a
23765         double_int pointer.
23766         (split_data_refs_to_components): Use wide-int interfaces.
23767         (suitable_component_p): Likewise.
23768         (order_drefs): Likewise.
23769         (add_ref_to_chain): Likewise.
23770         (valid_initializer_p): Likewise.
23771         (determine_roots_comp): Likewise.
23772         * tree-pretty-print.c: Include wide-int-print.h.
23773         (dump_generic_node): Use wide-int interfaces.
23774         * tree-sra.c (sra_ipa_modify_expr): Likewise.
23775         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
23776         (move_fixed_address_to_symbol): Likewise.
23777         (move_hint_to_base): Likewise.
23778         (move_pointer_to_base): Likewise.
23779         (move_variant_to_index): Likewise.
23780         (most_expensive_mult_to_index): Likewise.
23781         (addr_to_parts): Likewise.
23782         (copy_ref_info): Likewise.
23783         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
23784         (indirect_refs_may_alias_p): Likewise.
23785         (stmt_kills_ref_p_1): Likewise.
23786         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
23787         * tree-ssa-ccp.c: Update comment at top of file.  Include
23788         wide-int-print.h.
23789         (struct prop_value_d): Change type of mask to widest_int.
23790         (extend_mask): New function.
23791         (dump_lattice_value): Use wide-int interfaces.
23792         (get_default_value): Likewise.
23793         (set_constant_value): Likewise.
23794         (set_value_varying): Likewise.
23795         (valid_lattice_transition): Likewise.
23796         (set_lattice_value): Likewise.
23797         (value_to_double_int): Delete.
23798         (value_to_wide_int): New.
23799         (get_value_from_alignment): Use wide-int interfaces.
23800         (get_value_for_expr): Likewise.
23801         (do_dbg_cnt): Likewise.
23802         (ccp_finalize): Likewise.
23803         (ccp_lattice_meet): Likewise.
23804         (bit_value_unop_1): Use widest_ints rather than double_ints.
23805         (bit_value_binop_1): Likewise.
23806         (bit_value_unop): Use wide-int interfaces.
23807         (bit_value_binop): Likewise.
23808         (bit_value_assume_aligned): Likewise.
23809         (evaluate_stmt): Likewise.
23810         (ccp_fold_stmt): Likewise.
23811         (visit_cond_stmt): Likewise.
23812         (ccp_visit_stmt): Likewise.
23813         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
23814         (constant_pointer_difference): Likewise.
23815         (associate_pointerplus): Likewise.
23816         (combine_conversions): Likewise.
23817         * tree-ssa-loop.h: Include wide-int.h.
23818         (struct tree_niter_desc): Change type of max to widest_int.
23819         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
23820         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
23821         (remove_redundant_iv_tests): Likewise.
23822         (canonicalize_loop_induction_variables): Likewise.
23823         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
23824         (constant_multiple_of): Take a widest_int pointer instead of
23825         a double_int pointer.
23826         (get_computation_aff): Use wide-int interfaces.
23827         (ptr_difference_cost): Likewise.
23828         (difference_cost): Likewise.
23829         (get_loop_invariant_expr_id): Likewise.
23830         (get_computation_cost_at): Likewise.
23831         (iv_elimination_compare_lt): Likewise.
23832         (may_eliminate_iv): Likewise.
23833         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
23834         instead of double_int.
23835         (max_loop_iterations): Likewise.
23836         (max_stmt_executions): Likewise.
23837         (estimated_stmt_executions): Likewise.
23838         * tree-ssa-loop-niter.c: Include wide-int-print.h.
23839         (split_to_var_and_offset): Use wide-int interfaces.
23840         (determine_value_range): Likewise.
23841         (bound_difference_of_offsetted_base): Likewise.
23842         (bounds_add): Take a widest_int instead of a double_int.
23843         (number_of_iterations_ne_max): Use wide-int interfaces.
23844         (number_of_iterations_ne): Likewise.
23845         (number_of_iterations_lt_to_ne): Likewise.
23846         (assert_loop_rolls_lt): Likewise.
23847         (number_of_iterations_lt): Likewise.
23848         (number_of_iterations_le): Likewise.
23849         (number_of_iterations_cond): Likewise.
23850         (number_of_iterations_exit): Likewise.
23851         (finite_loop_p): Likewise.
23852         (derive_constant_upper_bound_assign): Likewise.
23853         (derive_constant_upper_bound): Return a widest_int.
23854         (derive_constant_upper_bound_ops): Likewise.
23855         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
23856         (record_estimate): Take a widest_int rather than a double_int.
23857         (record_nonwrapping_iv): Use wide-int interfaces.
23858         (double_int_cmp): Delete.
23859         (wide_int_cmp): New.
23860         (bound_index): Take a widest_int rather than a double_int.
23861         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
23862         (maybe_lower_iteration_bound): Likewise.
23863         (estimate_numbers_of_iterations_loop): Likewise.
23864         (estimated_loop_iterations): Take a widest_int pointer than than
23865         a double_int pointer.
23866         (estimated_loop_iterations_int): Use wide-int interfaces.
23867         (max_loop_iterations): Take a widest_int pointer than than
23868         a double_int pointer.
23869         (max_loop_iterations_int): Use wide-int interfaces.
23870         (max_stmt_executions): Take a widest_int pointer than than
23871         a double_int pointer.
23872         (estimated_stmt_executions): Likewise.
23873         (n_of_executions_at_most): Use wide-int interfaces.
23874         (scev_probably_wraps_p): Likewise.
23875         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
23876         to real_to_integer.
23877         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
23878         interfaces.
23879         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
23880         double_ints.  Adjust for trailing_wide_ints <3> representation.
23881         (set_nonzero_bits): Likewise.
23882         (get_range_info): Return wide_ints rather than double_ints.
23883         Adjust for trailing_wide_ints <3> representation.
23884         (get_nonzero_bits): Likewise.
23885         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
23886         representation.
23887         * tree-ssanames.h (struct range_info_def): Replace min, max and
23888         nonzero_bits with a trailing_wide_ints <3>.
23889         (set_range_info): Use wide_int_refs rather than double_ints.
23890         (set_nonzero_bits): Likewise.
23891         (get_range_info): Return wide_ints rather than double_ints.
23892         (get_nonzero_bits): Likewise.
23893         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
23894         * tree-ssa-pre.c (phi_translate_1): Likewise.
23895         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
23896         (acceptable_pow_call): Likewise.
23897         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
23898         interfaces.
23899         (vn_reference_fold_indirect): Likewise.
23900         (vn_reference_maybe_forwprop_address): Likewise.
23901         (valueize_refs_1): Likewise.
23902         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
23903         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
23904         tree_int_cst_lt and tree_int_cst_le.
23905         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
23906         interfaces.
23907         (streamer_alloc_tree): Likewise.
23908         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
23909         (streamer_write_tree_header): Likewise.
23910         (streamer_write_integer_cst): Likewise.
23911         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
23912         (build_constructors): Likewise.
23913         (array_value_type): Likewise.
23914         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
23915         (vect_check_gather): Likewise.
23916         * tree-vect-generic.c (build_replicated_const): Likewise.
23917         (expand_vector_divmod): Likewise.
23918         * tree-vect-loop.c (vect_transform_loop): Likewise.
23919         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
23920         (vect_do_peeling_for_alignment): Likewise.
23921         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
23922         * tree-vrp.c: Include wide-int.h.
23923         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
23924         (extract_range_from_assert): Use wide-int interfaces.
23925         (vrp_int_const_binop): Likewise.
23926         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
23927         double_int pointers.
23928         (ranges_from_anti_range): Use wide-int interfaces.
23929         (quad_int_cmp): Delete.
23930         (quad_int_pair_sort): Likewise.
23931         (extract_range_from_binary_expr_1): Use wide-int interfaces.
23932         (extract_range_from_unary_expr_1): Likewise.
23933         (adjust_range_with_scev): Likewise.
23934         (masked_increment): Take and return wide_ints rather than double_ints.
23935         (register_edge_assert_for_2): Use wide-int interfaces.
23936         (check_array_ref): Likewise.
23937         (search_for_addr_array): Likewise.
23938         (maybe_set_nonzero_bits): Likewise.
23939         (union_ranges): Pass an integer of the correct type instead of
23940         using integer_one_node.
23941         (intersect_ranges): Likewise.
23942         (simplify_truth_ops_using_ranges): Likewise.
23943         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
23944         (range_fits_type_p): Likewise.
23945         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
23946         a bool.
23947         (simplify_conversion_using_ranges): Use wide-int interfaces.
23948         (simplify_float_conversion_using_ranges): Likewise.
23949         (vrp_finalize): Likewise.
23950         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
23951         (gimple_stringops_transform): Likewise.
23952         * varasm.c (decode_addr_const): Likewise.
23953         (const_hash_1): Likewise.
23954         (const_rtx_hash_1): Likewise
23955         (output_constant): Likewise.
23956         (array_size_for_constructor): Likewise.
23957         (output_constructor_regular_field): Likewise.
23958         (output_constructor_bitfield): Likewise.
23959         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
23960         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
23961         GENERATOR_FILEs.
23962         * gencheck.c: Define BITS_PER_UNIT.
23963         * wide-int.cc: New.
23964         * wide-int.h: New.
23965         * wide-int-print.cc: New.
23966         * wide-int-print.h: New.
23967
23968 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
23969
23970         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
23971
23972 2014-05-06  Richard Biener  <rguenther@suse.de>
23973
23974         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
23975         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
23976         (TODO_verify_all): Adjust.
23977         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
23978         TODO_verify_stmts and TODO_verify_rtl_sharing.
23979         * bb-reorder.c: Likewise.
23980         * cfgexpand.c: Likewise.
23981         * cprop.c: Likewise.
23982         * cse.c: Likewise.
23983         * function.c: Likewise.
23984         * fwprop.c: Likewise.
23985         * gcse.c: Likewise.
23986         * gimple-ssa-isolate-paths.c: Likewise.
23987         * gimple-ssa-strength-reduction.c: Likewise.
23988         * ipa-split.c: Likewise.
23989         * loop-init.c: Likewise.
23990         * loop-unroll.c: Likewise.
23991         * lower-subreg.c: Likewise.
23992         * modulo-sched.c: Likewise.
23993         * postreload-gcse.c: Likewise.
23994         * predict.c: Likewise.
23995         * recog.c: Likewise.
23996         * sched-rgn.c: Likewise.
23997         * store-motion.c: Likewise.
23998         * tracer.c: Likewise.
23999         * trans-mem.c: Likewise.
24000         * tree-call-cdce.c: Likewise.
24001         * tree-cfg.c: Likewise.
24002         * tree-cfgcleanup.c: Likewise.
24003         * tree-complex.c: Likewise.
24004         * tree-eh.c: Likewise.
24005         * tree-emutls.c: Likewise.
24006         * tree-if-conv.c: Likewise.
24007         * tree-into-ssa.c: Likewise.
24008         * tree-loop-distribution.c: Likewise.
24009         * tree-object-size.c: Likewise.
24010         * tree-parloops.c: Likewise.
24011         * tree-pass.h: Likewise.
24012         * tree-sra.c: Likewise.
24013         * tree-ssa-ccp.c: Likewise.
24014         * tree-ssa-copy.c: Likewise.
24015         * tree-ssa-copyrename.c: Likewise.
24016         * tree-ssa-dce.c: Likewise.
24017         * tree-ssa-dom.c: Likewise.
24018         * tree-ssa-dse.c: Likewise.
24019         * tree-ssa-forwprop.c: Likewise.
24020         * tree-ssa-ifcombine.c: Likewise.
24021         * tree-ssa-loop-ch.c: Likewise.
24022         * tree-ssa-loop-ivcanon.c: Likewise.
24023         * tree-ssa-loop.c: Likewise.
24024         * tree-ssa-math-opts.c: Likewise.
24025         * tree-ssa-phiopt.c: Likewise.
24026         * tree-ssa-phiprop.c: Likewise.
24027         * tree-ssa-pre.c: Likewise.
24028         * tree-ssa-reassoc.c: Likewise.
24029         * tree-ssa-sink.c: Likewise.
24030         * tree-ssa-strlen.c: Likewise.
24031         * tree-ssa-tail-merge.c: Likewise.
24032         * tree-ssa-uncprop.c: Likewise.
24033         * tree-switch-conversion.c: Likewise.
24034         * tree-tailcall.c: Likewise.
24035         * tree-vect-generic.c: Likewise.
24036         * tree-vectorizer.c: Likewise.
24037         * tree-vrp.c: Likewise.
24038         * tsan.c: Likewise.
24039         * var-tracking.c: Likewise.
24040         * bt-load.c: Likewise.
24041         * cfgcleanup.c: Likewise.
24042         * combine-stack-adj.c: Likewise.
24043         * combine.c: Likewise.
24044         * compare-elim.c: Likewise.
24045         * config/epiphany/resolve-sw-modes.c: Likewise.
24046         * config/i386/i386.c: Likewise.
24047         * config/mips/mips.c: Likewise.
24048         * config/s390/s390.c: Likewise.
24049         * config/sh/sh_treg_combine.cc: Likewise.
24050         * config/sparc/sparc.c: Likewise.
24051         * dce.c: Likewise.
24052         * dse.c: Likewise.
24053         * final.c: Likewise.
24054         * ifcvt.c: Likewise.
24055         * mode-switching.c: Likewise.
24056         * passes.c: Likewise.
24057         * postreload.c: Likewise.
24058         * ree.c: Likewise.
24059         * reg-stack.c: Likewise.
24060         * regcprop.c: Likewise.
24061         * regrename.c: Likewise.
24062         * web.c: Likewise.
24063
24064 2014-05-06  Richard Biener  <rguenther@suse.de>
24065
24066         PR middle-end/61070
24067         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
24068         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
24069
24070 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
24071
24072         PR ipa/60965
24073         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
24074
24075 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
24076             Tom de Vries  <tom@codesourcery.com>
24077
24078         * target.def (call_fusage_contains_non_callee_clobbers): New
24079         DEFHOOKPOD.
24080         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
24081         Hooks to @menu.
24082         (@node Miscellaneous Register Hooks): New node.
24083         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
24084         * doc/tm.texi: Regenerate.
24085
24086 2014-05-05  Marek Polacek  <polacek@redhat.com>
24087
24088         PR driver/61065
24089         * opts.c (common_handle_option): Call error_at instead of warning_at.
24090
24091 2014-05-05  Richard Biener  <rguenther@suse.de>
24092
24093         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
24094         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
24095         under the TODO_verify_il umbrella.
24096
24097 2014-05-05  Richard Biener  <rguenther@suse.de>
24098
24099         * passes.c (execute_function_todo): Move TODO_verify_flow under
24100         the TODO_verify_ul umbrella.
24101
24102 2014-05-05  Richard Biener  <rguenther@suse.de>
24103
24104         PR middle-end/61010
24105         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
24106         X & CST away from a CST that is the mask of a mode.
24107
24108 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
24109
24110         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
24111         int argument to enum machine_mode.
24112         (picochip_class_max_nregs): Ditto.
24113         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
24114         (picochip_class_max_nregs): Ditto.
24115
24116 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24117
24118         * target.def: Add new target hook.
24119         * doc/tm.texi: Regenerate.
24120         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
24121         * targhooks.c (default_keep_leaf_when_profiled): New function.
24122
24123         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
24124         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
24125
24126 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
24127
24128         PR tree-optimization/60363
24129         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
24130         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
24131         (update_destination_phis): New parameter.
24132         (create_edge_and_update_destination_phis): Ditto.
24133         (ssa_fix_duplicate_block_edges): Pass new arguments.
24134         (thread_single_edge): Ditto.
24135
24136 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
24137
24138         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
24139         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
24140         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
24141         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
24142         Use RS6000_BTM_HARD_FLOAT.
24143         (BU_MISC_2): Likewise.
24144         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
24145         RS6000_BTM_HARD_FLOAT.
24146         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
24147         is explicitly used.
24148         (rs6000_invalid_builtin): Add hard floating builtin support.
24149         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
24150         hard float builtins.
24151         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
24152
24153 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
24154
24155         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
24156         Add missing function* argument.
24157
24158 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
24159
24160         * lra-constraints.c (valid_address_p): Move earlier in file.
24161         Add a constraint argument to the address_info version.
24162         (satisfies_memory_constraint_p): New function.
24163         (satisfies_address_constraint_p): Likewise.
24164         (process_alt_operands, curr_insn_transform): Use them.
24165         (process_address): Pass the constraint to valid_address_p when
24166         checking address operands.
24167
24168 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
24169
24170         * config/mips/mips.c (mips_isa_rev): New variable.
24171         (mips_set_architecture): Set it.
24172         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
24173         from mips_isa_rev.
24174         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
24175         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
24176         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
24177         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
24178         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
24179         conditions in terms of mips_isa_rev.
24180         (mips_isa_rev): Declare.
24181
24182 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
24183
24184         * config/sh/sh-mem.cc: Use tabs instead of spaces.
24185         (prob_unlikely, prob_likely): Make variables const.
24186
24187 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
24188
24189         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
24190
24191 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
24192
24193         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
24194
24195 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
24196
24197         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
24198         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
24199         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
24200         functions.
24201         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
24202         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
24203         sh_pass_in_reg_p.
24204         Replace usage of ROUND_REG with sh_round_reg.
24205         Use CEIL instead of ROUND_ADVANCE.
24206
24207 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
24208
24209         PR target/61026
24210         * config/sh/sh.c: Include stdlib headers before everything else.
24211
24212 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
24213
24214         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
24215         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
24216         (gimplify_adjust_omp_clauses): Simd region is never
24217         directly nested in combined parallel.  Instead, for linear
24218         with copyin/copyout, if in combined for simd loop, make decl
24219         firstprivate/lastprivate on OMP_FOR.
24220         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
24221         expand_omp_for_static_chunk): When setting endvar, also set
24222         fd->loop.v to the same value.
24223
24224 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
24225
24226         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
24227
24228 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
24229
24230         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
24231         expression.
24232
24233 2014-05-02  Marek Polacek  <polacek@redhat.com>
24234
24235         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
24236
24237 2014-05-02  Kito Cheng  <kito@0xlab.org>
24238
24239         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
24240         to a C expression marco.
24241         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
24242         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
24243         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
24244         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
24245         HONOR_REG_ALLOC_ORDER.
24246         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
24247
24248 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
24249
24250         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
24251
24252 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
24253
24254         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
24255
24256 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
24257
24258         * tree-if-conv.c (is_cond_scalar_reduction): New function.
24259         (convert_scalar_cond_reduction): Likewise.
24260         (predicate_scalar_phi): Add recognition and transformation
24261         of simple conditioanl reduction to be vectorizable.
24262
24263 2014-05-01  Marek Polacek  <polacek@redhat.com>
24264
24265         PR c/43245
24266         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
24267
24268 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
24269
24270         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
24271         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
24272         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
24273         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
24274         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
24275         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
24276         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
24277         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
24278
24279 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
24280
24281         * config/arc/arc.opt (mlra): Move comment above option name
24282         to avoid mis-parsing as language options.
24283
24284 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24285
24286         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
24287         * config/sol2.h: ... here.
24288         * config/sol2-10.h: Remove.
24289
24290         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
24291         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
24292         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
24293         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
24294         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
24295         * config/sol2.h: ... here.
24296         (SECTION_NAME_FORMAT): Don't redefine.
24297         (STARTFILE_ARCH32_SPEC): Rename to ...
24298         (STARTFILE_ARCH_SPEC): ... this.
24299         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
24300         * config/sparc/sol2.h: ... here.
24301         (SECTION_NAME_FORMAT): Don't undef.
24302         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
24303         (SUBTARGET_EXTRA_SPECS): Remove.
24304         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
24305
24306         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
24307         (MD_STARTFILE_PREFIX): Remove.
24308         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
24309         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
24310         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
24311         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
24312         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
24313         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
24314         * config/i386/sol2.h: ... here.
24315         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
24316         * config/i386/sol2-bi.h: Remove.
24317         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
24318         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
24319
24320         * config/i386/t-sol2-64: Rename to ...
24321         * config/i386/t-sol2: ... this.
24322         * config/sparc/t-sol2-64: Rename to ...
24323         * config/sparc/t-sol2: ... this.
24324
24325         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
24326         sol2_tm_file_head, sol2_tm_file_tail.
24327         Include ${cpu_type}/sol2.h before sol2.h.
24328         Remove sol2-10.h.
24329         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
24330         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
24331         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
24332         Reflect i386/t-sol2-64 renaming.
24333         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
24334         Reflect sparc/t-sol2-64 renaming.
24335
24336 2014-04-30  Richard Biener  <rguenther@suse.de>
24337
24338         * passes.c (execute_function_todo): Move TODO_verify_stmts
24339         and TODO_verify_ssa under the TODO_verify_il umbrella.
24340         * tree-ssa.h (verify_ssa): Adjust prototype.
24341         * tree-ssa.c (verify_ssa): Add parameter to tell whether
24342         we should verify SSA operands.
24343         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
24344         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
24345         whether we should verify whether not throwing stmts have EH info.
24346         * graphite-scop-detection.c (create_sese_edges): Adjust.
24347         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
24348         * tree-eh.c (lower_try_finally_switch): Do not add the
24349         default case label twice.
24350
24351 2014-04-30  Marek Polacek  <polacek@redhat.com>
24352
24353         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
24354         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
24355         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
24356         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
24357
24358 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
24359
24360         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
24361         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
24362         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
24363         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
24364         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
24365         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
24366         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
24367         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
24368
24369 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
24370
24371         * tree-cfg.c (dump_function_to_file): Dump the return type of
24372         functions, in a line to itself before the function body, mimicking
24373         the layout of a C function.
24374
24375 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
24376
24377         PR tree-optimization/60971
24378         * tree-tailcall.c (process_assignment): Reject conversions which
24379         reduce precision.
24380
24381 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
24382
24383         * calls.c (initialize_argument_information): Always treat
24384         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
24385         (expand_call): Likewise.
24386         (emit_library_call_calue_1): Likewise.
24387         * expr.c (PUSH_ARGS_REVERSED): Do not define.
24388         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
24389         code accordingly.
24390
24391 2014-04-29  Nick Clifton  <nickc@redhat.com>
24392
24393         * config/msp430/msp430.md (umulsidi): Fix typo.
24394         (mulhisi3): Enable even inside interrupt handlers.
24395         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
24396         bigger return address pushed in large mode.
24397
24398 2014-04-29  Nick Clifton  <nickc@redhat.com>
24399
24400         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
24401         (arc_init_reg_tables): Use a machine_mode enum to iterate over
24402         available modes.
24403         * config/m32r/m32r.c (init_reg_tables): Likewise.
24404         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
24405         enum to hold the modes.
24406
24407 2014-04-29  Richard Biener  <rguenther@suse.de>
24408
24409         * dominance.c (free_dominance_info): Add overload with
24410         function parameter.
24411         (dom_info_state): Likewise.
24412         (dom_info_available_p): Likewise.
24413         * basic-block.h (free_dominance_info, dom_info_state,
24414         dom_info_available_p): Declare overloads.
24415         * passes.c (execute_function_todo): Verify that verifiers
24416         don't change dominator info state.  Drop dominator info
24417         for IPA pass invocations.
24418         * cgraph.c (release_function_body): Restore asserts that
24419         dominator information is released.
24420
24421 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
24422
24423         * doc/invoke.texi: Fix typo.
24424         * tree-vrp.c: Fix typos.
24425         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
24426
24427 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
24428
24429         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
24430
24431 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
24432
24433         * config/aarch64/aarch64-builtins.c
24434         (aarch64_types_storestruct_lane_qualifiers): New.
24435         (TYPES_STORESTRUCT_LANE): Likewise.
24436         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
24437         (st3_lane): Likewise.
24438         (st4_lane): Likewise.
24439         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
24440         (vec_store_lanesci_lane<mode>): Likewise.
24441         (vec_store_lanesxi_lane<mode>): Likewise.
24442         (aarch64_st2_lane<VQ:mode>): Likewise.
24443         (aarch64_st3_lane<VQ:mode>): Likewise.
24444         (aarch64_st4_lane<VQ:mode>): Likewise.
24445         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
24446         * config/aarch64/arm_neon.h
24447         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
24448         use new macro arguments.
24449         (__ST3_LANE_FUNC): Likewise.
24450         (__ST4_LANE_FUNC): Likewise.
24451         * config/aarch64/iterators.md (V_TWO_ELEM): New.
24452         (V_THREE_ELEM): Likewise.
24453         (V_FOUR_ELEM): Likewise.
24454
24455 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
24456
24457         * doc/gimple.texi: Replace the description of the now-defunct
24458         union gimple_statement_d with a diagram showing the
24459         gimple_statement_base class hierarchy and its relationships to
24460         the GSS_ and GIMPLE_ enums.
24461
24462 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
24463
24464         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
24465         * config/aarch64/aarch64.c
24466         (aarch64_cannot_change_mode_class): Weaken conditions.
24467         (aarch64_modes_tieable_p): New.
24468         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
24469
24470 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
24471
24472         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
24473         (loadsync_<mode>): Change mode.
24474         (load_quadpti, store_quadpti): New.
24475         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
24476         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
24477
24478 2014-04-28  Martin Jambor  <mjambor@suse.cz>
24479
24480         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
24481         same alias type as the original statement.
24482         (subreplacement_assignment_data): New type.
24483         (handle_unscalarized_data_in_subtree): New type of parameter,
24484         generate new memory accesses with same alias type as the original
24485         statement.
24486         (load_assign_lhs_subreplacements): Likewise.
24487         (sra_modify_constructor_assign): Generate new memory accesses with
24488         same alias type as the original statement.
24489
24490 2014-04-28  Richard Biener  <rguenther@suse.de>
24491
24492         * tree-pass.h (TODO_verify_il): Define.
24493         (TODO_verify_all): Complete properly.
24494         * passes.c (execute_function_todo): Move existing loop-closed
24495         SSA verification under TODO_verify_il.
24496         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
24497         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
24498         Fix tree sharing issue.
24499
24500 2014-04-28  Richard Biener  <rguenther@suse.de>
24501
24502         PR middle-end/60092
24503         * builtins.def (DEF_C11_BUILTIN): Add.
24504         (BUILT_IN_ALIGNED_ALLOC): Likewise.
24505         * coretypes.h (enum function_class): Add function_c11_misc.
24506         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
24507         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
24508         (call_may_clobber_ref_p_1): Likewise.
24509         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
24510         (mark_all_reaching_defs_necessary_1): Likewise.
24511         (propagate_necessity): Likewise.
24512         (eliminate_unnecessary_stmts): Likewise.
24513         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
24514
24515 2014-04-28  Richard Biener  <rguenther@suse.de>
24516
24517         * tree-vrp.c (vrp_var_may_overflow): Remove.
24518         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
24519         with overflow immediately bump to one before that value and
24520         let iteration figure out overflow status.
24521
24522 2014-04-28  Richard Biener  <rguenther@suse.de>
24523
24524         * configure.ac: Do valgrind header checks unconditionally.
24525         Add --enable-valgrind-annotations.
24526         * system.h: Guard valgrind header inclusion with
24527         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
24528         * alloc-pool.c (pool_alloc, pool_free): Use
24529         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
24530         to guard possibly dead code.
24531         * config.in: Regenerated.
24532         * configure: Likewise.
24533
24534 2014-04-28  Jeff Law  <law@redhat.com>
24535
24536         PR tree-optimization/60902
24537         * tree-ssa-threadedge.c
24538         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
24539         over real defs when invalidating outputs from statements that do not
24540         produce useful outputs for threading.
24541
24542 2014-04-28  Richard Biener  <rguenther@suse.de>
24543
24544         PR tree-optimization/60979
24545         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
24546         SCOPs that end in a block with a successor with abnormal
24547         predecessors.
24548
24549 2014-04-28  Richard Biener  <rguenther@suse.de>
24550
24551         * tree-pass.h (execute_pass_list): Adjust prototype.
24552         * passes.c (pass_manager::execute_early_local_passes): Adjust.
24553         (do_per_function): Change callback signature, push all actual
24554         work to the callbals.
24555         (do_per_function_toporder): Likewise.
24556         (execute_function_dump): Adjust.
24557         (execute_function_todo): Likewise.
24558         (clear_last_verified): Likewise.
24559         (verify_curr_properties): Likewise.
24560         (update_properties_after_pass): Likewise.
24561         (execute_pass_list_1): Split out from ...
24562         (execute_pass_list): ... here.  Adjust.
24563         (execute_ipa_pass_list): Likewise.
24564         * cgraphunit.c (cgraph_add_new_function): Adjust.
24565         (analyze_function): Likewise.
24566         (expand_function): Likewise.
24567         * cgraph.c (release_function_body): Free dominance info
24568         here instead of asserting it was magically freed elsewhere.
24569
24570 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
24571
24572         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
24573         * configure: Regenerate.
24574         * config/sparc/sparc.opt (muser-mode): New option.
24575         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
24576         for LEON3.
24577         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
24578         * doc/invoke.texi (SPARC options): Document -muser-mode.
24579
24580 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
24581
24582         * cselib.c (find_slot_memmode): Delete.
24583         (cselib_hasher): Change compare_type to a struct.
24584         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
24585         constants.
24586         (preserve_constants_and_equivs): Adjust for new compare_type.
24587         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
24588         (wrap_constant): Delete.
24589         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
24590
24591 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
24592
24593         * doc/install.texi (Building with profile feedback): Remove
24594         outdated sentence.
24595
24596 2014-04-26  Tom de Vries  <tom@codesourcery.com>
24597
24598         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
24599         array accesses.
24600
24601 2014-04-25  Cary Coutant  <ccoutant@google.com>
24602
24603         PR debug/60929
24604         * dwarf2out.c (should_move_die_to_comdat): A type definition
24605         can contain a subprogram definition, but don't move it to a
24606         comdat unit.
24607         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
24608         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
24609         from original DIE.
24610         (clone_tree_hash): Rename to...
24611         (clone_tree_partial): ...this; change callers.  Copy
24612         DW_TAG_subprogram DIEs as declarations.
24613         (copy_decls_walk): Don't copy children of a declaration into a
24614         type unit.
24615
24616 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
24617
24618         PR target/60969
24619         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
24620         alternative 12.
24621
24622 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
24623
24624         * config/arm/predicates.md (call_insn_operand): Add long_call check.
24625         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
24626         reg for long_call.
24627         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
24628         restriction.
24629
24630 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24631
24632         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
24633
24634 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24635
24636         PR tree-optimization/60930
24637         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
24638         creating a multiply candidate by folding two constant
24639         multiplicands when the result overflows.
24640
24641 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
24642
24643         PR tree-optimization/60960
24644         * tree-vect-generic.c (expand_vector_operation): Only call
24645         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
24646
24647 2014-04-25  Tom de Vries  <tom@codesourcery.com>
24648
24649         * expr.c (clobber_reg_mode): New function.
24650         * expr.h (clobber_reg): New function.
24651
24652 2014-04-25  Tom de Vries  <tom@codesourcery.com>
24653
24654         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
24655         clobbers.
24656
24657 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
24658             Tom de Vries  <tom@codesourcery.com>
24659
24660         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
24661         handle.
24662         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
24663         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
24664         new argument to find_all_hard_reg_sets call.
24665
24666 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24667
24668         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
24669         Use HOST_WIDE_INT_C for mask literal.
24670         (aarch_rev16_shleft_mask_imm_p): Likewise.
24671
24672 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
24673
24674         PR target/60941
24675         * config/sparc/sparc.md (ashlsi3_extend): Delete.
24676
24677 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
24678
24679         PR preprocessor/56540
24680         * config/i386/i386-c.c (ix86_target_macros): Define
24681         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
24682
24683 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24684
24685         * configure.ac (tga_func): Remove.
24686         (LIB_TLS_SPEC): Remove.
24687         * configure: Regenerate.
24688         * config.in: Regenerate.
24689         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
24690
24691 2014-04-25  Richard Biener  <rguenther@suse.de>
24692
24693         PR ipa/60912
24694         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
24695         call stmt use/clobber sets during stmt walk instead of
24696         walking the possibly incomplete set of caller edges.
24697
24698 2014-04-25  Richard Biener  <rguenther@suse.de>
24699
24700         PR ipa/60911
24701         * passes.c (apply_ipa_transforms): Inline into only caller ...
24702         (execute_one_pass): ... here.  Properly bring in function
24703         bodies for nodes we want to apply IPA transforms to.
24704
24705 2014-04-24  Cong Hou  <congh@google.com>
24706
24707         PR tree-optimization/60896
24708         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
24709         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
24710         (vect_mark_pattern_stmts): Set the def type of all statements in
24711         PATTERN_DEF_SEQ as vect_internal_def.
24712
24713 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
24714
24715         * doc/extend.texi (PowerPC Built-in Functions): Document new
24716         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
24717         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
24718
24719         * config/rs6000/predicates.md (const_0_to_3_operand): New
24720         predicate to match 0..3 integer constants.
24721
24722         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
24723         to support adding miscellaneous builtin functions.
24724         (BU_DFP_MISC_2): Likewise.
24725         (BU_P7_MISC_1): Likewise.
24726         (BU_P7_MISC_2): Likewise.
24727         (BU_P8V_MISC_3): Likewise.
24728         (BU_MISC_1): Likewise.
24729         (BU_MISC_2): Likewise.
24730         (DIVWE): Add extended divide builtin functions.
24731         (DIVWEO): Likewise.
24732         (DIVWEU): Likewise.
24733         (DIVWEUO): Likewise.
24734         (DIVDE): Likewise.
24735         (DIVDEO): Likewise.
24736         (DIVDEU): Likewise.
24737         (DIVDEUO): Likewise.
24738         (DXEX): Add decimal floating-point builtin functions.
24739         (DXEXQ): Likewise.
24740         (DDEDPD): Likewise.
24741         (DDEDPDQ): Likewise.
24742         (DENBCD): Likewise.
24743         (DENBCDQ): Likewise.
24744         (DIEX): Likewise.
24745         (DIEXQ): Likewise.
24746         (DSCLI): Likewise.
24747         (DSCLIQ): Likewise.
24748         (DSCRI): Likewise.
24749         (DSCRIQ): Likewise.
24750         (CDTBCD): Add new BCD builtin functions.
24751         (CBCDTD): Likewise.
24752         (ADDG6S): Likewise.
24753         (BCDADD): Likewise.
24754         (BCDADD_LT): Likewise.
24755         (BCDADD_EQ): Likewise.
24756         (BCDADD_GT): Likewise.
24757         (BCDADD_OV): Likewise.
24758         (BCDSUB): Likewise.
24759         (BCDSUB_LT): Likewise.
24760         (BCDSUB_EQ): Likewise.
24761         (BCDSUB_GT): Likewise.
24762         (BCDSUB_OV): Likewise.
24763         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
24764         (UNPACK_TD): Likewise.
24765         (PACK_TF): Likewise.
24766         (UNPACK_TF): Likewise.
24767         (UNPACK_TF_0): Likewise.
24768         (UNPACK_TF_1): Likewise.
24769         (PACK_V1TI): Likewise.
24770         (UNPACK_V1TI): Likewise.
24771
24772         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
24773         support for decimal floating point builtin functions.
24774         (rs6000_expand_ternop_builtin): Add checks for the new builtin
24775         functions that take constant arguments.
24776         (rs6000_invalid_builtin): Add decimal floating point builtin support.
24777         (rs6000_init_builtins): Setup long double, _Decimal64, and
24778         _Decimal128 types for new builtin functions.
24779         (builtin_function_type): Set the unsigned flags appropriately for
24780         the new builtin functions.
24781         (rs6000_opt_masks): Add support for decimal floating point builtin
24782         functions.
24783
24784         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
24785         floating point builtin functions.
24786         (RS6000_BTM_COMMON): Likewise.
24787         (RS6000_BTI_long_double): Likewise.
24788         (RS6000_BTI_dfloat64): Likewise.
24789         (RS6000_BTI_dfloat128): Likewise.
24790         (long_double_type_internal_node): Likewise.
24791         (dfloat64_type_internal_node): Likewise.
24792         (dfloat128_type_internal_node): Likewise.
24793
24794         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
24795         2.07 bcd arithmetic instructions.
24796         (UNSPEC_BCDSUB): Likewise.
24797         (UNSPEC_BCD_OVERFLOW): Likewise.
24798         (UNSPEC_BCD_ADD_SUB): Likewise.
24799         (bcd_add_sub): Likewise.
24800         (BCD_TEST): Likewise.
24801         (bcd<bcd_add_sub>): Likewise.
24802         (bcd<bcd_add_sub>_test): Likewise.
24803         (bcd<bcd_add_sub>_test2): Likewise.
24804         (bcd<bcd_add_sub>_<code>): Likewise.
24805         (peephole2 for combined bcd ops): Likewise.
24806
24807         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
24808         decimal floating point builtin functions.
24809         (UNSPEC_DENBCD): Likewise.
24810         (UNSPEC_DXEX): Likewise.
24811         (UNSPEC_DIEX): Likewise.
24812         (UNSPEC_DSCLI): Likewise.
24813         (UNSPEC_DSCRI): Likewise.
24814         (D64_D128): Likewise.
24815         (dfp_suffix): Likewise.
24816         (dfp_ddedpd_<mode>): Likewise.
24817         (dfp_denbcd_<mode>): Likewise.
24818         (dfp_dxex_<mode>): Likewise.
24819         (dfp_diex_<mode>): Likewise.
24820         (dfp_dscli_<mode>): Likewise.
24821         (dfp_dscri_<mode>): Likewise.
24822
24823         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
24824         builtin functions.
24825         (UNSPEC_CDTBCD): Likewise.
24826         (UNSPEC_CBCDTD): Likewise.
24827         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
24828         (UNSPEC_DIVEO): Likewise.
24829         (UNSPEC_DIVEU): Likewise.
24830         (UNSPEC_DIVEUO): Likewise.
24831         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
24832         pack/unpack 128-bit types.
24833         (UNSPEC_PACK_128BIT): Likewise.
24834         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
24835         (udiv<mode>3): Use idiv_ldiv mode attribute.
24836         (div<mode>3): Likewise.
24837         (addg6s): Add new BCD builtin functions.
24838         (cdtbcd): Likewise.
24839         (cbcdtd): Likewise.
24840         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
24841         (div_extend): Likewise.
24842         (div<div_extend>_<mode>"): Likewise.
24843         (FP128_64): Add support for new builtin functions to pack/unpack
24844         128-bit types.
24845         (unpack<mode>): Likewise.
24846         (unpacktf_0): Likewise.
24847         (unpacktf_1): Likewise.
24848         (unpack<mode>_dm): Likewise.
24849         (unpack<mode>_nodm): Likewise.
24850         (pack<mode>): Likewise.
24851         (unpackv1ti): Likewise.
24852         (packv1ti): Likewise.
24853
24854 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
24855
24856         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
24857         is disabled.
24858
24859 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
24860
24861         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
24862         * gimplify.c (omp_is_private): Change last argument's type to int.
24863         Only diagnose lastprivate if the simd argument is 1, only diagnose
24864         linear if the simd argument is 2.
24865         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
24866         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
24867         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
24868         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
24869         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
24870         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
24871         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
24872         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
24873         * tree-nested.c (convert_nonlocal_omp_clauses,
24874         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
24875
24876 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
24877
24878         PR target/60822
24879         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
24880         operand 1.
24881
24882 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
24883
24884         * flag-types.h (enum ivar_visibility): Add.
24885
24886 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
24887
24888         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
24889         function * argument.
24890
24891 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
24892
24893         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
24894
24895 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
24896             Tom de Vries  <tom@codesourcery.com>
24897
24898         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
24899         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
24900         reg-note.
24901         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
24902         * emit-rtl.c (try_split): Same.
24903
24904 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
24905             Tom de Vries  <tom@codesourcery.com>
24906
24907         * common.opt (fuse-caller-save): New option.
24908
24909 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
24910
24911         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
24912         elements for big-endian.
24913
24914 2014-04-24  Richard Biener  <rguenther@suse.de>
24915
24916         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
24917         during TER and instead use the sepops interface for expanding
24918         non-GIMPLE_SINGLE_RHS.
24919
24920 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24921
24922         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
24923         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
24924
24925 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24926
24927         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
24928         assembler 64-bit option.
24929         * configure: Regenerate.
24930
24931 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24932
24933         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
24934         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
24935         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
24936         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
24937         (TARGET_CRYPTO): Take TARGET_SIMD into account.
24938
24939 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24940
24941         * config/aarch64/aarch64-builtins.c
24942         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
24943         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
24944         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
24945         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
24946         builtins.
24947         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
24948         (Vrevsuff): New mode attribute.
24949
24950 2014-04-24  Terry Guo  <terry.guo@arm.com>
24951
24952         * config/arm/arm.h (machine_function): Define variable
24953         after_arm_reorg here.
24954         * config/arm/arm.c (after_arm_reorg): Remove the definition.
24955         (arm_split_constant): Update the way to access variable
24956         after_arm_reorg.
24957         (arm_reorg): Ditto.
24958         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
24959
24960 2014-04-23  Tom de Vries  <tom@codesourcery.com>
24961
24962         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
24963
24964 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
24965
24966         * is-a.h: Update comments to reflect the following changes to the
24967         "pointerness" of the API, making the template parameter match the
24968         return type, allowing use of is-a.h with typedefs of pointers.
24969         (is_a_helper::cast): Return a T rather then a pointer to a T, so
24970         that the return type matches the parameter to the is_a_helper.
24971         (as_a): Likewise.
24972         (dyn_cast): Likewise.
24973
24974         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
24975         pointer from the is-a.h API.
24976
24977         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
24978         (is_a_helper <cgraph_node *>::test): ...this, matching change to
24979         is-a.h API.
24980         (is_a_helper <varpool_node>::test): Likewise, convert to...
24981         (is_a_helper <varpool_node *>::test): ...this.
24982
24983         (varpool_first_variable): Update for removal of implicit pointer
24984         from the is-a.h API.
24985         (varpool_next_variable): Likewise.
24986         (varpool_first_static_initializer): Likewise.
24987         (varpool_next_static_initializer): Likewise.
24988         (varpool_first_defined_variable): Likewise.
24989         (varpool_next_defined_variable): Likewise.
24990         (cgraph_first_defined_function): Likewise.
24991         (cgraph_next_defined_function): Likewise.
24992         (cgraph_first_function): Likewise.
24993         (cgraph_next_function): Likewise.
24994         (cgraph_first_function_with_gimple_body): Likewise.
24995         (cgraph_next_function_with_gimple_body): Likewise.
24996         (cgraph_alias_target): Likewise.
24997         (varpool_alias_target): Likewise.
24998         (cgraph_function_or_thunk_node): Likewise.
24999         (varpool_variable_node): Likewise.
25000         (symtab_real_symbol_p): Likewise.
25001         * cgraphunit.c (referred_to_p): Likewise.
25002         (analyze_functions): Likewise.
25003         (handle_alias_pairs): Likewise.
25004         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
25005         * gimple-ssa.h (gimple_vuse_op): Likewise.
25006         (gimple_vdef_op): Likewise.
25007         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
25008         * gimple.c (gimple_build_asm_1): Likewise.
25009         (gimple_build_try): Likewise.
25010         (gimple_build_resx): Likewise.
25011         (gimple_build_eh_dispatch): Likewise.
25012         (gimple_build_omp_for): Likewise.
25013         (gimple_omp_for_set_clauses): Likewise.
25014
25015         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
25016         (is_a_helper <gimple_statement_asm *>::test): ...this.
25017         (is_a_helper <gimple_statement_bind>::test): Convert to...
25018         (is_a_helper <gimple_statement_bind *>::test): ...this.
25019         (is_a_helper <gimple_statement_call>::test): Convert to...
25020         (is_a_helper <gimple_statement_call *>::test): ...this.
25021         (is_a_helper <gimple_statement_catch>::test): Convert to...
25022         (is_a_helper <gimple_statement_catch *>::test): ...this.
25023         (is_a_helper <gimple_statement_resx>::test): Convert to...
25024         (is_a_helper <gimple_statement_resx *>::test): ...this.
25025         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
25026         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
25027         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
25028         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
25029         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
25030         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
25031         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
25032         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
25033         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
25034         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
25035         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
25036         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
25037         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
25038         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
25039         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
25040         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
25041         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
25042         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
25043         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
25044         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
25045         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
25046         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
25047         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
25048         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
25049         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
25050         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
25051         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
25052         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
25053         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
25054         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
25055         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
25056         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
25057         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
25058         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
25059         (is_a_helper <gimple_statement_phi>::test): Convert to...
25060         (is_a_helper <gimple_statement_phi *>::test): ...this.
25061         (is_a_helper <gimple_statement_transaction>::test): Convert to...
25062         (is_a_helper <gimple_statement_transaction *>::test): ...this.
25063         (is_a_helper <gimple_statement_try>::test): Convert to...
25064         (is_a_helper <gimple_statement_try *>::test): ...this.
25065         (is_a_helper <gimple_statement_wce>::test): Convert to...
25066         (is_a_helper <gimple_statement_wce *>::test): ...this.
25067         (is_a_helper <const gimple_statement_asm>::test): Convert to...
25068         (is_a_helper <const gimple_statement_asm *>::test): ...this.
25069         (is_a_helper <const gimple_statement_bind>::test): Convert to...
25070         (is_a_helper <const gimple_statement_bind *>::test): ...this.
25071         (is_a_helper <const gimple_statement_call>::test): Convert to...
25072         (is_a_helper <const gimple_statement_call *>::test): ...this.
25073         (is_a_helper <const gimple_statement_catch>::test): Convert to...
25074         (is_a_helper <const gimple_statement_catch *>::test): ...this.
25075         (is_a_helper <const gimple_statement_resx>::test): Convert to...
25076         (is_a_helper <const gimple_statement_resx *>::test): ...this.
25077         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
25078         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
25079         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
25080         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
25081         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
25082         Convert to...
25083         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
25084         ...this.
25085         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
25086         Convert to...
25087         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
25088         ...this.
25089         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
25090         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
25091         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
25092         to...
25093         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
25094         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
25095         to...
25096         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
25097         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
25098         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
25099         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
25100         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
25101         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
25102         to...
25103         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
25104         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
25105         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
25106         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
25107         to...
25108         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
25109         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
25110         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
25111         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
25112         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
25113         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
25114         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
25115         (is_a_helper <const gimple_statement_phi>::test): Convert to...
25116         (is_a_helper <const gimple_statement_phi *>::test): ...this.
25117         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
25118         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
25119         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
25120         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
25121         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
25122         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
25123         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
25124         to...
25125         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
25126         ...this.
25127         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
25128         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
25129
25130         (gimple_use_ops): Update for removal of implicit pointer from the
25131         is-a.h API.
25132         (gimple_set_use_ops): Likewise.
25133         (gimple_vuse): Likewise.
25134         (gimple_vdef): Likewise.
25135         (gimple_vuse_ptr): Likewise.
25136         (gimple_vdef_ptr): Likewise.
25137         (gimple_set_vuse): Likewise.
25138         (gimple_set_vdef): Likewise.
25139         (gimple_omp_return_set_lhs): Likewise.
25140         (gimple_omp_return_lhs): Likewise.
25141         (gimple_omp_return_lhs_ptr): Likewise.
25142         (gimple_call_fntype): Likewise.
25143         (gimple_call_set_fntype): Likewise.
25144         (gimple_call_set_internal_fn): Likewise.
25145         (gimple_call_use_set): Likewise.
25146         (gimple_call_clobber_set): Likewise.
25147         (gimple_bind_vars): Likewise.
25148         (gimple_bind_set_vars): Likewise.
25149         (gimple_bind_body_ptr): Likewise.
25150         (gimple_bind_set_body): Likewise.
25151         (gimple_bind_add_stmt): Likewise.
25152         (gimple_bind_block): Likewise.
25153         (gimple_bind_set_block): Likewise.
25154         (gimple_asm_ninputs): Likewise.
25155         (gimple_asm_noutputs): Likewise.
25156         (gimple_asm_nclobbers): Likewise.
25157         (gimple_asm_nlabels): Likewise.
25158         (gimple_asm_input_op): Likewise.
25159         (gimple_asm_input_op_ptr): Likewise.
25160         (gimple_asm_output_op): Likewise.
25161         (gimple_asm_output_op_ptr): Likewise.
25162         (gimple_asm_set_output_op): Likewise.
25163         (gimple_asm_clobber_op): Likewise.
25164         (gimple_asm_set_clobber_op): Likewise.
25165         (gimple_asm_label_op): Likewise.
25166         (gimple_asm_set_label_op): Likewise.
25167         (gimple_asm_string): Likewise.
25168         (gimple_catch_types): Likewise.
25169         (gimple_catch_types_ptr): Likewise.
25170         (gimple_catch_handler_ptr): Likewise.
25171         (gimple_catch_set_types): Likewise.
25172         (gimple_catch_set_handler): Likewise.
25173         (gimple_eh_filter_types): Likewise.
25174         (gimple_eh_filter_types_ptr): Likewise.
25175         (gimple_eh_filter_failure_ptr): Likewise.
25176         (gimple_eh_filter_set_types): Likewise.
25177         (gimple_eh_filter_set_failure): Likewise.
25178         (gimple_eh_must_not_throw_fndecl): Likewise.
25179         (gimple_eh_must_not_throw_set_fndecl): Likewise.
25180         (gimple_eh_else_n_body_ptr): Likewise.
25181         (gimple_eh_else_e_body_ptr): Likewise.
25182         (gimple_eh_else_set_n_body): Likewise.
25183         (gimple_eh_else_set_e_body): Likewise.
25184         (gimple_try_eval_ptr): Likewise.
25185         (gimple_try_cleanup_ptr): Likewise.
25186         (gimple_try_set_eval): Likewise.
25187         (gimple_try_set_cleanup): Likewise.
25188         (gimple_wce_cleanup_ptr): Likewise.
25189         (gimple_wce_set_cleanup): Likewise.
25190         (gimple_phi_capacity): Likewise.
25191         (gimple_phi_num_args): Likewise.
25192         (gimple_phi_result): Likewise.
25193         (gimple_phi_result_ptr): Likewise.
25194         (gimple_phi_set_result): Likewise.
25195         (gimple_phi_arg): Likewise.
25196         (gimple_phi_set_arg): Likewise.
25197         (gimple_resx_region): Likewise.
25198         (gimple_resx_set_region): Likewise.
25199         (gimple_eh_dispatch_region): Likewise.
25200         (gimple_eh_dispatch_set_region): Likewise.
25201         (gimple_omp_critical_name): Likewise.
25202         (gimple_omp_critical_name_ptr): Likewise.
25203         (gimple_omp_critical_set_name): Likewise.
25204         (gimple_omp_for_clauses): Likewise.
25205         (gimple_omp_for_clauses_ptr): Likewise.
25206         (gimple_omp_for_set_clauses): Likewise.
25207         (gimple_omp_for_collapse): Likewise.
25208         (gimple_omp_for_index): Likewise.
25209         (gimple_omp_for_index_ptr): Likewise.
25210         (gimple_omp_for_set_index): Likewise.
25211         (gimple_omp_for_initial): Likewise.
25212         (gimple_omp_for_initial_ptr): Likewise.
25213         (gimple_omp_for_set_initial): Likewise.
25214         (gimple_omp_for_final): Likewise.
25215         (gimple_omp_for_final_ptr): Likewise.
25216         (gimple_omp_for_set_final): Likewise.
25217         (gimple_omp_for_incr): Likewise.
25218         (gimple_omp_for_incr_ptr): Likewise.
25219         (gimple_omp_for_set_incr): Likewise.
25220         (gimple_omp_for_pre_body_ptr): Likewise.
25221         (gimple_omp_for_set_pre_body): Likewise.
25222         (gimple_omp_parallel_clauses): Likewise.
25223         (gimple_omp_parallel_clauses_ptr): Likewise.
25224         (gimple_omp_parallel_set_clauses): Likewise.
25225         (gimple_omp_parallel_child_fn): Likewise.
25226         (gimple_omp_parallel_child_fn_ptr): Likewise.
25227         (gimple_omp_parallel_set_child_fn): Likewise.
25228         (gimple_omp_parallel_data_arg): Likewise.
25229         (gimple_omp_parallel_data_arg_ptr): Likewise.
25230         (gimple_omp_parallel_set_data_arg): Likewise.
25231         (gimple_omp_task_clauses): Likewise.
25232         (gimple_omp_task_clauses_ptr): Likewise.
25233         (gimple_omp_task_set_clauses): Likewise.
25234         (gimple_omp_task_child_fn): Likewise.
25235         (gimple_omp_task_child_fn_ptr): Likewise.
25236         (gimple_omp_task_set_child_fn): Likewise.
25237         (gimple_omp_task_data_arg): Likewise.
25238         (gimple_omp_task_data_arg_ptr): Likewise.
25239         (gimple_omp_task_set_data_arg): Likewise.
25240         (gimple_omp_taskreg_clauses): Likewise.
25241         (gimple_omp_taskreg_clauses_ptr): Likewise.
25242         (gimple_omp_taskreg_set_clauses): Likewise.
25243         (gimple_omp_taskreg_child_fn): Likewise.
25244         (gimple_omp_taskreg_child_fn_ptr): Likewise.
25245         (gimple_omp_taskreg_set_child_fn): Likewise.
25246         (gimple_omp_taskreg_data_arg): Likewise.
25247         (gimple_omp_taskreg_data_arg_ptr): Likewise.
25248         (gimple_omp_taskreg_set_data_arg): Likewise.
25249         (gimple_omp_task_copy_fn): Likewise.
25250         (gimple_omp_task_copy_fn_ptr): Likewise.
25251         (gimple_omp_task_set_copy_fn): Likewise.
25252         (gimple_omp_task_arg_size): Likewise.
25253         (gimple_omp_task_arg_size_ptr): Likewise.
25254         (gimple_omp_task_set_arg_size): Likewise.
25255         (gimple_omp_task_arg_align): Likewise.
25256         (gimple_omp_task_arg_align_ptr): Likewise.
25257         (gimple_omp_task_set_arg_align): Likewise.
25258         (gimple_omp_single_clauses): Likewise.
25259         (gimple_omp_single_clauses_ptr): Likewise.
25260         (gimple_omp_single_set_clauses): Likewise.
25261         (gimple_omp_target_clauses): Likewise.
25262         (gimple_omp_target_clauses_ptr): Likewise.
25263         (gimple_omp_target_set_clauses): Likewise.
25264         (gimple_omp_target_child_fn): Likewise.
25265         (gimple_omp_target_child_fn_ptr): Likewise.
25266         (gimple_omp_target_set_child_fn): Likewise.
25267         (gimple_omp_target_data_arg): Likewise.
25268         (gimple_omp_target_data_arg_ptr): Likewise.
25269         (gimple_omp_target_set_data_arg): Likewise.
25270         (gimple_omp_teams_clauses): Likewise.
25271         (gimple_omp_teams_clauses_ptr): Likewise.
25272         (gimple_omp_teams_set_clauses): Likewise.
25273         (gimple_omp_sections_clauses): Likewise.
25274         (gimple_omp_sections_clauses_ptr): Likewise.
25275         (gimple_omp_sections_set_clauses): Likewise.
25276         (gimple_omp_sections_control): Likewise.
25277         (gimple_omp_sections_control_ptr): Likewise.
25278         (gimple_omp_sections_set_control): Likewise.
25279         (gimple_omp_for_set_cond): Likewise.
25280         (gimple_omp_for_cond): Likewise.
25281         (gimple_omp_atomic_store_set_val): Likewise.
25282         (gimple_omp_atomic_store_val): Likewise.
25283         (gimple_omp_atomic_store_val_ptr): Likewise.
25284         (gimple_omp_atomic_load_set_lhs): Likewise.
25285         (gimple_omp_atomic_load_lhs): Likewise.
25286         (gimple_omp_atomic_load_lhs_ptr): Likewise.
25287         (gimple_omp_atomic_load_set_rhs): Likewise.
25288         (gimple_omp_atomic_load_rhs): Likewise.
25289         (gimple_omp_atomic_load_rhs_ptr): Likewise.
25290         (gimple_omp_continue_control_def): Likewise.
25291         (gimple_omp_continue_control_def_ptr): Likewise.
25292         (gimple_omp_continue_set_control_def): Likewise.
25293         (gimple_omp_continue_control_use): Likewise.
25294         (gimple_omp_continue_control_use_ptr): Likewise.
25295         (gimple_omp_continue_set_control_use): Likewise.
25296         (gimple_transaction_body_ptr): Likewise.
25297         (gimple_transaction_label): Likewise.
25298         (gimple_transaction_label_ptr): Likewise.
25299         (gimple_transaction_set_body): Likewise.
25300         (gimple_transaction_set_label): Likewise.
25301
25302         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
25303         * ipa-inline-analysis.c (inline_write_summary): Likewise.
25304         * ipa-ref.c (ipa_record_reference): Likewise.
25305         * ipa-reference.c (analyze_function): Likewise.
25306         (ipa_reference_write_optimization_summary): Likewise.
25307         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
25308         (address_taken_from_non_vtable_p): Likewise.
25309         (comdat_can_be_unshared_p_1): Likewise.
25310         * lto-cgraph.c (lto_output_ref): Likewise.
25311         (add_references): Likewise.
25312         (compute_ltrans_boundary): Likewise.
25313         (output_symtab): Likewise.
25314         (input_ref): Likewise.
25315         (input_cgraph_1): Likewise.
25316         (output_cgraph_opt_summary): Likewise.
25317         * lto-streamer-out.c (lto_output): Likewise.
25318         (output_symbol_p): Likewise.
25319         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
25320         (lsei_start_function_in_partition): Likewise.
25321         (lsei_next_variable_in_partition): Likewise.
25322         (lsei_start_variable_in_partition): Likewise.
25323         * symtab.c (insert_to_assembler_name_hash): Likewise.
25324         (unlink_from_assembler_name_hash): Likewise.
25325         (symtab_unregister_node): Likewise.
25326         (symtab_remove_node): Likewise.
25327         (dump_symtab_node): Likewise.
25328         (verify_symtab_base): Likewise.
25329         (verify_symtab_node): Likewise.
25330         (symtab_make_decl_local): Likewise.
25331         (symtab_alias_ultimate_target): Likewise.
25332         (symtab_resolve_alias): Likewise.
25333         (symtab_get_symbol_partitioning_class): Likewise.
25334         * tree-phinodes.c (allocate_phi_node): Likewise.
25335         (reserve_phi_args_for_new_edge): Likewise.
25336         (remove_phi_args): Likewise.
25337         * varpool.c (varpool_node_for_asm): Likewise.
25338         (varpool_remove_unreferenced_decls): Likewise.
25339
25340 2014-04-23  Jeff Law  <law@redhat.com>
25341
25342         PR tree-optimization/60902
25343         * tree-ssa-threadedge.c
25344         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
25345         invalidate outputs from statements that do not produce useful
25346         outputs for threading.
25347
25348 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
25349
25350         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
25351         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
25352         machine descriptions for Stack Smashing Protector.
25353
25354 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
25355
25356         * aarch64.md (<optab>_rol<mode>3): New pattern.
25357         (<optab>_rolsi3_uxtw): Likewise.
25358         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
25359
25360 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
25361
25362         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
25363         (arm_cortex_a12_tune): Likewise.
25364
25365 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25366
25367         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
25368
25369 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25370
25371         * config/arm/arm.md (arm_rev16si2): New pattern.
25372         (arm_rev16si2_alt): Likewise.
25373         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
25374
25375 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25376
25377         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
25378         (rev16<mode>2_alt): Likewise.
25379         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
25380         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
25381         (aarch_rev16_shleft_mask_imm_p): Likewise.
25382         (aarch_rev16_p_1): Likewise.
25383         (aarch_rev16_p): Likewise.
25384         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
25385         (aarch_rev16_shright_mask_imm_p): Likewise.
25386         (aarch_rev16_shleft_mask_imm_p): Likewise.
25387
25388 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25389
25390         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
25391         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
25392         rev cost.
25393         (cortex_a53_extra_costs): Likewise.
25394         (cortex_a57_extra_costs): Likewise.
25395         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
25396         (cortexa7_extra_costs): Likewise.
25397         (cortexa8_extra_costs): Likewise.
25398         (cortexa12_extra_costs): Likewise.
25399         (cortexa15_extra_costs): Likewise.
25400         (v7m_extra_costs): Likewise.
25401         (arm_new_rtx_costs): Handle BSWAP.
25402
25403 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25404
25405         * config/arm/arm.c (cortexa8_extra_costs): New table.
25406         (arm_cortex_a8_tune): New tuning struct.
25407         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
25408
25409 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25410
25411         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
25412
25413 2014-04-23  Richard Biener  <rguenther@suse.de>
25414
25415         * Makefile.in (OBJS): Remove loop-unswitch.o.
25416         * tree-pass.h (make_pass_rtl_unswitch): Remove.
25417         * passes.def (pass_rtl_unswitch): Likewise.
25418         * loop-init.c (gate_rtl_unswitch): Likewise.
25419         (rtl_unswitch): Likewise.
25420         (pass_data_rtl_unswitch): Likewise.
25421         (pass_rtl_unswitch): Likewise.
25422         (make_pass_rtl_unswitch): Likewise.
25423         * rtl.h (reversed_condition): Likewise.
25424         (compare_and_jump_seq): Likewise.
25425         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
25426         and make static.
25427         * loop-unroll.c (compare_and_jump_seq): Likewise.
25428
25429 2014-04-23  Richard Biener  <rguenther@suse.de>
25430
25431         PR tree-optimization/60903
25432         * tree-ssa-loop-im.c (analyze_memory_references): Remove
25433         commented code block.
25434         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
25435         loop flags to newly created BBs and edges.
25436
25437 2014-04-23  Nick Clifton  <nickc@redhat.com>
25438
25439         * config/msp430/msp430.c (msp430_handle_option): Move function
25440         to msp430-common.c
25441         (msp430_option_override): Simplify mcu and mcpu option handling.
25442         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
25443         support for -mhwmult command line option.
25444         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
25445         -mhwmult command line option.
25446         (msp430_hwmult_enabled): Delete.
25447         (msp43o_output_labelref): Add support for -mhwmult command line option.
25448         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
25449         (umulsidi3): Likewise.
25450         * config/msp430/msp430.opt (mmcu): Add Report attribute.
25451         (mcpu, mlarge, msmall): Likewise.
25452         (mhwmult): New option.
25453         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
25454         prototype.
25455         (msp430_is_f5_mcu): Remove prototype.
25456         (msp430_use_f5_series_hwmult): Add prototype.
25457         * config/msp430/msp430-opts.h: New file.
25458         * common/config/msp430: New directory.
25459         * common/config/msp430/msp430-common.c: New file.
25460         * config.gcc (msp430): Remove target_has_targetm_common.
25461         * doc/invoke.texi: Document -mhwmult command line option.
25462
25463 2014-04-23  Nick Clifton  <nickc@redhat.com>
25464
25465         * config/i386/cygwin.h (ENDFILE_SPEC): Include
25466         default-manifest.o if it can be found in the search path.
25467         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
25468
25469 2014-04-23  Terry Guo  <terry.guo@arm.com>
25470
25471         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
25472
25473 2014-04-23  Richard Biener  <rguenther@suse.de>
25474
25475         PR middle-end/60895
25476         * tree-inline.c (declare_return_variable): Use mark_addressable.
25477
25478 2014-04-23  Richard Biener  <rguenther@suse.de>
25479
25480         PR middle-end/60891
25481         * loop-init.c (loop_optimizer_init): Make sure to apply
25482         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
25483
25484 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
25485
25486         PR sanitizer/60275
25487         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
25488         New options.
25489         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
25490         if flag_sanitize_undefined_trap_on_error.
25491         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
25492         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
25493         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
25494         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
25495         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
25496         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
25497         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
25498         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
25499         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
25500         * ubsan.c (ubsan_instrument_unreachable): Return
25501         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
25502         (ubsan_expand_null_ifn): Emit __builtin_trap ()
25503         if flag_sanitize_undefined_trap_on_error and
25504         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
25505         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
25506         instrument_bool_enum_load): Emit __builtin_trap () if
25507         flag_sanitize_undefined_trap_on_error and
25508         __builtin_handle_*_abort () if !flag_sanitize_recover.
25509         * doc/invoke.texi (-fsanitize-recover,
25510         -fsanitize-undefined-trap-on-error): Document.
25511
25512 2014-04-22  Christian Bruel  <christian.bruel@st.com>
25513
25514         * config/sh/sh.md (mov<mode>): Replace movQIHI.
25515          Force immediates to SImode.
25516
25517 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
25518
25519         * config/nios2/nios2.md (UNSPEC_ROUND): New.
25520         (lroundsfsi2): New.
25521         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
25522         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
25523         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
25524         (nios2_fpu_insn): Add entry for round.
25525         (N2FPU_NO_ERRNO_P): Define.
25526         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
25527         flag_errno_math.
25528         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
25529
25530 2014-04-22  Richard Henderson  <rth@redhat.com>
25531
25532         * config/aarch64/aarch64 (addti3, subti3): New expanders.
25533         (add<GPI>3_compare0): Remove leading * from name.
25534         (add<GPI>3_carryin): Likewise.
25535         (sub<GPI>3_compare0): Likewise.
25536         (sub<GPI>3_carryin): Likewise.
25537         (<su_optab>mulditi3): New expander.
25538         (multi3): New expander.
25539         (madd<GPI>): Remove leading * from name.
25540
25541 2014-04-22  Martin Jambor  <mjambor@suse.cz>
25542
25543         * cgraphclones.c (cgraph_function_versioning): Copy
25544         ipa_transforms_to_apply instead of asserting it is empty.
25545
25546 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
25547
25548         PR target/60868
25549         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
25550         on count_exp to get mode.
25551
25552 2014-04-22  Andrew Pinski  <apinski@cavium.com>
25553
25554         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
25555         Handle TLS for ILP32.
25556         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
25557         (tlsie_small_<mode>): this and handle PTR.
25558         (tlsie_small_sidi): New pattern.
25559         (tlsle_small): Change to an expand to handle ILP32.
25560         (tlsle_small_<mode>): New pattern.
25561         (tlsdesc_small): Rename to ...
25562         (tlsdesc_small_<mode>): this and handle PTR.
25563
25564 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25565
25566         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
25567
25568 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
25569
25570         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
25571         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
25572         (aarch64_types_signed_poly_qualifiers): Likewise.
25573         (aarch64_types_unsigned_signed_qualifiers): Likewise.
25574         (aarch64_types_poly_signed_qualifiers): Likewise.
25575         (TYPES_REINTERP_SS): Type macro added.
25576         (TYPES_REINTERP_SU): Likewise.
25577         (TYPES_REINTERP_SP): Likewise.
25578         (TYPES_REINTERP_US): Likewise.
25579         (TYPES_REINTERP_PS): Likewise.
25580         (aarch64_fold_builtin): New expression folding added.
25581         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
25582         Declarations removed.
25583         (REINTERP_SS): Declarations added.
25584         (REINTERP_US): Likewise.
25585         (REINTERP_PS): Likewise.
25586         (REINTERP_SU): Likewise.
25587         (REINTERP_SP): Likewise.
25588         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
25589         (vreinterpretq_p8_f64): Likewise.
25590         (vreinterpret_p16_f64): Likewise.
25591         (vreinterpretq_p16_f64): Likewise.
25592         (vreinterpret_f32_f64): Likewise.
25593         (vreinterpretq_f32_f64): Likewise.
25594         (vreinterpret_f64_f32): Likewise.
25595         (vreinterpret_f64_p8): Likewise.
25596         (vreinterpret_f64_p16): Likewise.
25597         (vreinterpret_f64_s8): Likewise.
25598         (vreinterpret_f64_s16): Likewise.
25599         (vreinterpret_f64_s32): Likewise.
25600         (vreinterpret_f64_s64): Likewise.
25601         (vreinterpret_f64_u8): Likewise.
25602         (vreinterpret_f64_u16): Likewise.
25603         (vreinterpret_f64_u32): Likewise.
25604         (vreinterpret_f64_u64): Likewise.
25605         (vreinterpretq_f64_f32): Likewise.
25606         (vreinterpretq_f64_p8): Likewise.
25607         (vreinterpretq_f64_p16): Likewise.
25608         (vreinterpretq_f64_s8): Likewise.
25609         (vreinterpretq_f64_s16): Likewise.
25610         (vreinterpretq_f64_s32): Likewise.
25611         (vreinterpretq_f64_s64): Likewise.
25612         (vreinterpretq_f64_u8): Likewise.
25613         (vreinterpretq_f64_u16): Likewise.
25614         (vreinterpretq_f64_u32): Likewise.
25615         (vreinterpretq_f64_u64): Likewise.
25616         (vreinterpret_s64_f64): Likewise.
25617         (vreinterpretq_s64_f64): Likewise.
25618         (vreinterpret_u64_f64): Likewise.
25619         (vreinterpretq_u64_f64): Likewise.
25620         (vreinterpret_s8_f64): Likewise.
25621         (vreinterpretq_s8_f64): Likewise.
25622         (vreinterpret_s16_f64): Likewise.
25623         (vreinterpretq_s16_f64): Likewise.
25624         (vreinterpret_s32_f64): Likewise.
25625         (vreinterpretq_s32_f64): Likewise.
25626         (vreinterpret_u8_f64): Likewise.
25627         (vreinterpretq_u8_f64): Likewise.
25628         (vreinterpret_u16_f64): Likewise.
25629         (vreinterpretq_u16_f64): Likewise.
25630         (vreinterpret_u32_f64): Likewise.
25631         (vreinterpretq_u32_f64): Likewise.
25632
25633 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
25634
25635         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
25636         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
25637         (vreinterpret_p8_s8): Likewise.
25638         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
25639         (vreinterpret_p8_s16): Likewise.
25640         (vreinterpret_p8_s32): Likewise.
25641         (vreinterpret_p8_s64): Likewise.
25642         (vreinterpret_p8_f32): Likewise.
25643         (vreinterpret_p8_u8): Likewise.
25644         (vreinterpret_p8_u16): Likewise.
25645         (vreinterpret_p8_u32): Likewise.
25646         (vreinterpret_p8_u64): Likewise.
25647         (vreinterpret_p8_p16): Likewise.
25648         (vreinterpretq_p8_s8): Likewise.
25649         (vreinterpretq_p8_s16): Likewise.
25650         (vreinterpretq_p8_s32): Likewise.
25651         (vreinterpretq_p8_s64): Likewise.
25652         (vreinterpretq_p8_f32): Likewise.
25653         (vreinterpretq_p8_u8): Likewise.
25654         (vreinterpretq_p8_u16): Likewise.
25655         (vreinterpretq_p8_u32): Likewise.
25656         (vreinterpretq_p8_u64): Likewise.
25657         (vreinterpretq_p8_p16): Likewise.
25658         (vreinterpret_p16_s8): Likewise.
25659         (vreinterpret_p16_s16): Likewise.
25660         (vreinterpret_p16_s32): Likewise.
25661         (vreinterpret_p16_s64): Likewise.
25662         (vreinterpret_p16_f32): Likewise.
25663         (vreinterpret_p16_u8): Likewise.
25664         (vreinterpret_p16_u16): Likewise.
25665         (vreinterpret_p16_u32): Likewise.
25666         (vreinterpret_p16_u64): Likewise.
25667         (vreinterpret_p16_p8): Likewise.
25668         (vreinterpretq_p16_s8): Likewise.
25669         (vreinterpretq_p16_s16): Likewise.
25670         (vreinterpretq_p16_s32): Likewise.
25671         (vreinterpretq_p16_s64): Likewise.
25672         (vreinterpretq_p16_f32): Likewise.
25673         (vreinterpretq_p16_u8): Likewise.
25674         (vreinterpretq_p16_u16): Likewise.
25675         (vreinterpretq_p16_u32): Likewise.
25676         (vreinterpretq_p16_u64): Likewise.
25677         (vreinterpretq_p16_p8): Likewise.
25678         (vreinterpret_f32_s8): Likewise.
25679         (vreinterpret_f32_s16): Likewise.
25680         (vreinterpret_f32_s32): Likewise.
25681         (vreinterpret_f32_s64): Likewise.
25682         (vreinterpret_f32_u8): Likewise.
25683         (vreinterpret_f32_u16): Likewise.
25684         (vreinterpret_f32_u32): Likewise.
25685         (vreinterpret_f32_u64): Likewise.
25686         (vreinterpret_f32_p8): Likewise.
25687         (vreinterpret_f32_p16): Likewise.
25688         (vreinterpretq_f32_s8): Likewise.
25689         (vreinterpretq_f32_s16): Likewise.
25690         (vreinterpretq_f32_s32): Likewise.
25691         (vreinterpretq_f32_s64): Likewise.
25692         (vreinterpretq_f32_u8): Likewise.
25693         (vreinterpretq_f32_u16): Likewise.
25694         (vreinterpretq_f32_u32): Likewise.
25695         (vreinterpretq_f32_u64): Likewise.
25696         (vreinterpretq_f32_p8): Likewise.
25697         (vreinterpretq_f32_p16): Likewise.
25698         (vreinterpret_s64_s8): Likewise.
25699         (vreinterpret_s64_s16): Likewise.
25700         (vreinterpret_s64_s32): Likewise.
25701         (vreinterpret_s64_f32): Likewise.
25702         (vreinterpret_s64_u8): Likewise.
25703         (vreinterpret_s64_u16): Likewise.
25704         (vreinterpret_s64_u32): Likewise.
25705         (vreinterpret_s64_u64): Likewise.
25706         (vreinterpret_s64_p8): Likewise.
25707         (vreinterpret_s64_p16): Likewise.
25708         (vreinterpretq_s64_s8): Likewise.
25709         (vreinterpretq_s64_s16): Likewise.
25710         (vreinterpretq_s64_s32): Likewise.
25711         (vreinterpretq_s64_f32): Likewise.
25712         (vreinterpretq_s64_u8): Likewise.
25713         (vreinterpretq_s64_u16): Likewise.
25714         (vreinterpretq_s64_u32): Likewise.
25715         (vreinterpretq_s64_u64): Likewise.
25716         (vreinterpretq_s64_p8): Likewise.
25717         (vreinterpretq_s64_p16): Likewise.
25718         (vreinterpret_u64_s8): Likewise.
25719         (vreinterpret_u64_s16): Likewise.
25720         (vreinterpret_u64_s32): Likewise.
25721         (vreinterpret_u64_s64): Likewise.
25722         (vreinterpret_u64_f32): Likewise.
25723         (vreinterpret_u64_u8): Likewise.
25724         (vreinterpret_u64_u16): Likewise.
25725         (vreinterpret_u64_u32): Likewise.
25726         (vreinterpret_u64_p8): Likewise.
25727         (vreinterpret_u64_p16): Likewise.
25728         (vreinterpretq_u64_s8): Likewise.
25729         (vreinterpretq_u64_s16): Likewise.
25730         (vreinterpretq_u64_s32): Likewise.
25731         (vreinterpretq_u64_s64): Likewise.
25732         (vreinterpretq_u64_f32): Likewise.
25733         (vreinterpretq_u64_u8): Likewise.
25734         (vreinterpretq_u64_u16): Likewise.
25735         (vreinterpretq_u64_u32): Likewise.
25736         (vreinterpretq_u64_p8): Likewise.
25737         (vreinterpretq_u64_p16): Likewise.
25738         (vreinterpret_s8_s16): Likewise.
25739         (vreinterpret_s8_s32): Likewise.
25740         (vreinterpret_s8_s64): Likewise.
25741         (vreinterpret_s8_f32): Likewise.
25742         (vreinterpret_s8_u8): Likewise.
25743         (vreinterpret_s8_u16): Likewise.
25744         (vreinterpret_s8_u32): Likewise.
25745         (vreinterpret_s8_u64): Likewise.
25746         (vreinterpret_s8_p8): Likewise.
25747         (vreinterpret_s8_p16): Likewise.
25748         (vreinterpretq_s8_s16): Likewise.
25749         (vreinterpretq_s8_s32): Likewise.
25750         (vreinterpretq_s8_s64): Likewise.
25751         (vreinterpretq_s8_f32): Likewise.
25752         (vreinterpretq_s8_u8): Likewise.
25753         (vreinterpretq_s8_u16): Likewise.
25754         (vreinterpretq_s8_u32): Likewise.
25755         (vreinterpretq_s8_u64): Likewise.
25756         (vreinterpretq_s8_p8): Likewise.
25757         (vreinterpretq_s8_p16): Likewise.
25758         (vreinterpret_s16_s8): Likewise.
25759         (vreinterpret_s16_s32): Likewise.
25760         (vreinterpret_s16_s64): Likewise.
25761         (vreinterpret_s16_f32): Likewise.
25762         (vreinterpret_s16_u8): Likewise.
25763         (vreinterpret_s16_u16): Likewise.
25764         (vreinterpret_s16_u32): Likewise.
25765         (vreinterpret_s16_u64): Likewise.
25766         (vreinterpret_s16_p8): Likewise.
25767         (vreinterpret_s16_p16): Likewise.
25768         (vreinterpretq_s16_s8): Likewise.
25769         (vreinterpretq_s16_s32): Likewise.
25770         (vreinterpretq_s16_s64): Likewise.
25771         (vreinterpretq_s16_f32): Likewise.
25772         (vreinterpretq_s16_u8): Likewise.
25773         (vreinterpretq_s16_u16): Likewise.
25774         (vreinterpretq_s16_u32): Likewise.
25775         (vreinterpretq_s16_u64): Likewise.
25776         (vreinterpretq_s16_p8): Likewise.
25777         (vreinterpretq_s16_p16): Likewise.
25778         (vreinterpret_s32_s8): Likewise.
25779         (vreinterpret_s32_s16): Likewise.
25780         (vreinterpret_s32_s64): Likewise.
25781         (vreinterpret_s32_f32): Likewise.
25782         (vreinterpret_s32_u8): Likewise.
25783         (vreinterpret_s32_u16): Likewise.
25784         (vreinterpret_s32_u32): Likewise.
25785         (vreinterpret_s32_u64): Likewise.
25786         (vreinterpret_s32_p8): Likewise.
25787         (vreinterpret_s32_p16): Likewise.
25788         (vreinterpretq_s32_s8): Likewise.
25789         (vreinterpretq_s32_s16): Likewise.
25790         (vreinterpretq_s32_s64): Likewise.
25791         (vreinterpretq_s32_f32): Likewise.
25792         (vreinterpretq_s32_u8): Likewise.
25793         (vreinterpretq_s32_u16): Likewise.
25794         (vreinterpretq_s32_u32): Likewise.
25795         (vreinterpretq_s32_u64): Likewise.
25796         (vreinterpretq_s32_p8): Likewise.
25797         (vreinterpretq_s32_p16): Likewise.
25798         (vreinterpret_u8_s8): Likewise.
25799         (vreinterpret_u8_s16): Likewise.
25800         (vreinterpret_u8_s32): Likewise.
25801         (vreinterpret_u8_s64): Likewise.
25802         (vreinterpret_u8_f32): Likewise.
25803         (vreinterpret_u8_u16): Likewise.
25804         (vreinterpret_u8_u32): Likewise.
25805         (vreinterpret_u8_u64): Likewise.
25806         (vreinterpret_u8_p8): Likewise.
25807         (vreinterpret_u8_p16): Likewise.
25808         (vreinterpretq_u8_s8): Likewise.
25809         (vreinterpretq_u8_s16): Likewise.
25810         (vreinterpretq_u8_s32): Likewise.
25811         (vreinterpretq_u8_s64): Likewise.
25812         (vreinterpretq_u8_f32): Likewise.
25813         (vreinterpretq_u8_u16): Likewise.
25814         (vreinterpretq_u8_u32): Likewise.
25815         (vreinterpretq_u8_u64): Likewise.
25816         (vreinterpretq_u8_p8): Likewise.
25817         (vreinterpretq_u8_p16): Likewise.
25818         (vreinterpret_u16_s8): Likewise.
25819         (vreinterpret_u16_s16): Likewise.
25820         (vreinterpret_u16_s32): Likewise.
25821         (vreinterpret_u16_s64): Likewise.
25822         (vreinterpret_u16_f32): Likewise.
25823         (vreinterpret_u16_u8): Likewise.
25824         (vreinterpret_u16_u32): Likewise.
25825         (vreinterpret_u16_u64): Likewise.
25826         (vreinterpret_u16_p8): Likewise.
25827         (vreinterpret_u16_p16): Likewise.
25828         (vreinterpretq_u16_s8): Likewise.
25829         (vreinterpretq_u16_s16): Likewise.
25830         (vreinterpretq_u16_s32): Likewise.
25831         (vreinterpretq_u16_s64): Likewise.
25832         (vreinterpretq_u16_f32): Likewise.
25833         (vreinterpretq_u16_u8): Likewise.
25834         (vreinterpretq_u16_u32): Likewise.
25835         (vreinterpretq_u16_u64): Likewise.
25836         (vreinterpretq_u16_p8): Likewise.
25837         (vreinterpretq_u16_p16): Likewise.
25838         (vreinterpret_u32_s8): Likewise.
25839         (vreinterpret_u32_s16): Likewise.
25840         (vreinterpret_u32_s32): Likewise.
25841         (vreinterpret_u32_s64): Likewise.
25842         (vreinterpret_u32_f32): Likewise.
25843         (vreinterpret_u32_u8): Likewise.
25844         (vreinterpret_u32_u16): Likewise.
25845         (vreinterpret_u32_u64): Likewise.
25846         (vreinterpret_u32_p8): Likewise.
25847         (vreinterpret_u32_p16): Likewise.
25848         (vreinterpretq_u32_s8): Likewise.
25849         (vreinterpretq_u32_s16): Likewise.
25850         (vreinterpretq_u32_s32): Likewise.
25851         (vreinterpretq_u32_s64): Likewise.
25852         (vreinterpretq_u32_f32): Likewise.
25853         (vreinterpretq_u32_u8): Likewise.
25854         (vreinterpretq_u32_u16): Likewise.
25855         (vreinterpretq_u32_u64): Likewise.
25856         (vreinterpretq_u32_p8): Likewise.
25857         (vreinterpretq_u32_p16): Likewise.
25858
25859 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
25860
25861         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
25862         Pattern extended.
25863         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
25864         (sqabs): Likewise.
25865         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
25866         (vqnegd_s64): Likewise.
25867         (vqabs_s64): Likewise.
25868         (vqabsd_s64): Likewise.
25869
25870 2014-04-22  Richard Henderson  <rth@redhat.com>
25871
25872         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
25873         computation to the top of the loop.
25874
25875 2014-04-22  Renlin  <renlin.li@arm.com>
25876             Jiong Wang  <jiong.wang@arm.com>
25877
25878         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
25879         * config/aarch64/aarch64.c (aarch64_layout_frame)
25880         (aarch64_initial_elimination_offset): Likewise.
25881
25882 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
25883
25884         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
25885         Fix indentation.
25886
25887 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
25888
25889         * machmode.h (bitwise_mode_for_mode): Declare.
25890         * stor-layout.h (bitwise_type_for_mode): Likewise.
25891         * stor-layout.c (bitwise_mode_for_mode): New function.
25892         (bitwise_type_for_mode): Likewise.
25893         * builtins.c (fold_builtin_memory_op): Use it instead of
25894         int_mode_for_mode and build_nonstandard_integer_type.
25895
25896 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25897
25898         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
25899         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
25900         (*-*-solaris2*): Simplify.
25901         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
25902         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
25903         *-*-solaris2.9* handling.
25904
25905         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
25906         as bug.
25907         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
25908         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
25909         handling, simplify.
25910         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
25911         * configure: Regenerate.
25912
25913         * config/i386/sol2-9.h: Remove.
25914
25915         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
25916         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
25917         Remove Solaris 9 references.
25918
25919 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
25920
25921         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
25922         (floatuns<GPI:mode><GPF:mode>2): Remove.
25923         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
25924         and floatuns conversions.
25925         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
25926         and floatuns conversions.
25927         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
25928         (w1,w2): New mode attributes for inequal width conversions.
25929
25930 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
25931
25932         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
25933         the output asm format.
25934
25935 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
25936
25937         * config/aarch64/aarch64-simd.md
25938         (aarch64_cm<optab>di): Always split.
25939         (*aarch64_cm<optab>di): New.
25940         (aarch64_cmtstdi): Always split.
25941         (*aarch64_cmtstdi): New.
25942
25943 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
25944
25945         PR tree-optimization/60823
25946         * omp-low.c (ipa_simd_modify_function_body): Go through
25947         all SSA_NAMEs and for those refering to vector arguments
25948         which are going to be replaced adjust SSA_NAME_VAR and,
25949         if it is a default definition, change it into a non-default
25950         definition assigned at the beginning of function from new_decl.
25951         (ipa_simd_modify_stmt_ops): Rewritten.
25952         * tree-dfa.c (set_ssa_default_def): When removing default def,
25953         check for NULL loc instead of NULL *loc.
25954
25955 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25956
25957         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
25958         restrictions on core registers for DImode values in Thumb2.
25959
25960 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
25961
25962         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
25963         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
25964
25965 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
25966
25967         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
25968         (*iordi_notzesidi_di): Likewise.
25969         (*iordi_notsesidi_di): Likewise.
25970
25971 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
25972
25973         * config/arm/arm-protos.h (tune_params): New struct members.
25974         * config/arm/arm.c: Initialise tune_params per processor.
25975         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
25976         for speed, based on new tune_params.
25977
25978 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
25979
25980         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
25981         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
25982         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
25983         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
25984         * config/aarch64/arm_neon.h (vrnd_f64): Added.
25985         (vrnda_f64): Likewise.
25986         (vrndi_f64): Likewise.
25987         (vrndm_f64): Likewise.
25988         (vrndn_f64): Likewise.
25989         (vrndp_f64): Likewise.
25990         (vrndx_f64): Likewise.
25991
25992 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
25993
25994         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
25995         GET_MODE_SIZE argument is enum machine_mode.
25996
25997 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
25998
25999         PR target/60910
26000         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
26001         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
26002
26003 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
26004
26005         PR middle-end/60281
26006         * asan.c (asan_emit_stack_protection): Force the base to align to
26007         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
26008         appropriate bits if STRICT_ALIGNMENT.
26009         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
26010         when asan is on.
26011         (expand_used_vars): Leave a space in the stack frame for alignment
26012         if STRICT_ALIGNMENT.
26013
26014 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
26015
26016         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
26017         than a gimple.
26018         (gimple_store_p): Likewise.
26019         (gimple_assign_load_p): Likewise.
26020         (gimple_assign_cast_p): Likewise.
26021         (gimple_clobber_p): Likewise.
26022
26023         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
26024         rather than a gimple.
26025         (gimple_assign_cast_p): Likewise.
26026
26027 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
26028
26029         PR target/60735
26030         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
26031         If mode is DDmode and TARGET_E500_DOUBLE allow move.
26032
26033         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
26034         more debug information for E500 if -mdebug=reg.
26035
26036 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
26037
26038         PR target/60909
26039         * config/i386/i386.c (ix86_expand_builtin)
26040         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
26041         register for target RTX.
26042         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
26043
26044 2014-04-18  Cong Hou  <congh@google.com>
26045
26046         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
26047         the widen-mult pattern by handling two operands with different sizes,
26048         and operands whose size is smaller than half of the result type.
26049
26050 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
26051
26052         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
26053         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
26054         (do_estimate_edge_time): Compute it.
26055         * ipa-inline.c (want_inline_small_function_p): Bypass
26056         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
26057
26058 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
26059
26060         * ipa-inline.c (spec_rem): New static variable.
26061         (dump_overall_stats): New function.
26062         (dump_inline_stats): New function.
26063
26064 2014-04-18  Richard Henderson  <rth@redhat.com>
26065
26066         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
26067         to GET_MODE_SIZE, not a reg_class_t.
26068
26069 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26070
26071         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
26072         (vsx_xxmrglw_<mode>): Likewise.
26073
26074 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
26075
26076         PR target/60876
26077         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
26078         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
26079         (rs6000_init_hard_regno_mode_ok): Likewise.
26080
26081 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
26082
26083         * ipa-inline.c (inline_small_functions): Account only non-cold
26084         functions.
26085         * doc/invoke.texi (inline-unit-growth): Update documentation.
26086
26087 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
26088
26089         * config/rs6000/rs6000.md (addti3, subti3): New.
26090
26091 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
26092
26093         PR target/60863
26094         * config/i386/i386.c (ix86_expand_clear): Remove outdated
26095         comment.  Check optimize_insn_for_size_p instead of
26096         optimize_insn_for_speed_p.
26097
26098 2014-04-17  Martin Jambor  <mjambor@suse.cz>
26099
26100         * gimple-iterator.c (gsi_start_edge): New function.
26101         * gimple-iterator.h (gsi_start_edge): Declare.
26102         * tree-sra.c (single_non_eh_succ): New function.
26103         (disqualify_ops_if_throwing_stmt): Renamed to
26104         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
26105         having one non-EH successor BB.
26106         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
26107         generate loads into replacements.
26108         (sra_modify_assign): Likewise and and also use the simple path for
26109         such statements.
26110         (sra_modify_function_body): Commit statements on edges.
26111
26112 2014-04-17  Richard Biener  <rguenther@suse.de>
26113
26114         PR middle-end/60849
26115         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
26116         comparison results and add clarifying comment.
26117
26118 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
26119
26120         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
26121         (blank_mode): Initialize it.
26122         (emit_mode_size_inline, emit_mode_nunits_inline,
26123         emit_mode_inner_inline): New functions.
26124         (emit_insn_modes_h): Call them and surround their output with
26125         #if GCC_VERSION >= 4001 ... #endif.
26126         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
26127         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
26128         mode_* arrays if the argument is __builtin_constant_p.
26129         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
26130         is enum machine_mode.
26131
26132 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
26133
26134         * passes.c (opt_pass::execute): Adjust.
26135         (pass_manager::execute_pass_mode_switching): Likewise.
26136         (early_local_passes::execute): Likewise.
26137         (execute_one_pass): Pass cfun to the pass's execute method.
26138         * tree-pass.h (opt_pass::execute): Add function * argument.
26139         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
26140         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
26141         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
26142         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
26143         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
26144         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
26145         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
26146         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
26147         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
26148         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
26149         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
26150         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
26151         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
26152         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
26153         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
26154         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
26155         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
26156         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
26157         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
26158         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
26159         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
26160         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
26161         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
26162         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
26163         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
26164         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
26165         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
26166         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
26167         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
26168         Adjust.
26169
26170 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
26171
26172         * passes.c (opt_pass::gate): Take function * argument.
26173         (gate_all_early_local_passes): Merge into
26174         (early_local_passes::gate): this.
26175         (gate_all_early_optimizations): Merge into
26176         (all_early_optimizations::gate): this.
26177         (gate_all_optimizations): Mege into
26178         (all_optimizations::gate): this.
26179         (gate_all_optimizations_g): Merge into
26180         (all_optimizations_g::gate): this.
26181         (gate_rest_of_compilation): Mege into
26182         (rest_of_compilation::gate): this.
26183         (gate_postreload): Merge into
26184         (postreload::gate): this.
26185         (dump_one_pass): Pass cfun to the pass's gate method.
26186         (execute_ipa_summary_passes): Likewise.
26187         (execute_one_pass): Likewise.
26188         (ipa_write_summaries_2): Likewise.
26189         (ipa_write_optimization_summaries_1): Likewise.
26190         (ipa_read_summaries_1): Likewise.
26191         (ipa_read_optimization_summaries_1): Likewise.
26192         (execute_ipa_stmt_fixups): Likewise.
26193         * tree-pass.h (opt_pass::gate): Add function * argument.
26194         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
26195         combine-stack-adj.c, combine.c, compare-elim.c,
26196         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
26197         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
26198         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
26199         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
26200         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
26201         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
26202         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
26203         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
26204         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
26205         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
26206         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
26207         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
26208         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
26209         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
26210         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
26211         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
26212         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
26213         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
26214         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
26215         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
26216         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
26217         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
26218         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
26219         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
26220         var-tracking.c, vtable-verify.c, web.c: Adjust.
26221
26222 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
26223
26224         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
26225         * configure: Regenerate.
26226
26227 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
26228
26229         * passes.c (dump_one_pass): don't check pass->has_gate.
26230         (execute_ipa_summary_passes): Likewise.
26231         (execute_one_pass): Likewise.
26232         (ipa_write_summaries_2): Likewise.
26233         (ipa_write_optimization_summaries_1): Likewise.
26234         (ipa_read_optimization_summaries_1): Likewise.
26235         (execute_ipa_stmt_fixups): Likewise.
26236         * tree-pass.h (pass_data::has_gate): Remove.
26237         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
26238         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
26239         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
26240         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
26241         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
26242         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
26243         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
26244         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
26245         gimple-low.c, gimple-ssa-isolate-paths.c,
26246         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
26247         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
26248         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
26249         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
26250         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
26251         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
26252         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
26253         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
26254         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
26255         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
26256         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
26257         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
26258         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
26259         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
26260         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
26261         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
26262         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
26263         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
26264         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
26265         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
26266         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
26267         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
26268         Adjust.
26269
26270 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
26271
26272         * pass_manager.h (pass_manager::register_dump_files_1): Remove
26273         declaration.
26274         * passes.c (pass_manager::register_dump_files_1): Merge into
26275         (pass_manager::register_dump_files): this, and remove its handling of
26276         properties since the pass always has the properties anyway.
26277         (pass_manager::pass_manager): Adjust.
26278
26279 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
26280
26281         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
26282         * passes.c (pass_manager::register_dump_files_1): Remove dead code
26283         dealing with properties.
26284         (pass_manager::register_dump_files): Adjust.
26285
26286 2014-03-20  Mark Wielaard  <mjw@redhat.com>
26287
26288         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
26289         then represent the bound as normal constant value.
26290
26291 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
26292
26293         PR target/60847
26294         Forward port from 4.8 branch
26295         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
26296
26297         * config/i386/bmiintrin.h (_blsi_u32): New.
26298         (_blsi_u64): Ditto.
26299         (_blsr_u32): Ditto.
26300         (_blsr_u64): Ditto.
26301         (_blsmsk_u32): Ditto.
26302         (_blsmsk_u64): Ditto.
26303         (_tzcnt_u32): Ditto.
26304         (_tzcnt_u64): Ditto.
26305
26306 2014-04-17  Kito Cheng  <kito@0xlab.org>
26307
26308         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
26309
26310 2014-04-17  Richard Biener  <rguenther@suse.de>
26311
26312         PR middle-end/60849
26313         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
26314         boolean results for comparisons.
26315
26316 2014-04-17  Richard Biener  <rguenther@suse.de>
26317
26318         PR tree-optimization/60836
26319         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
26320         initial PHI args to be gimple values.
26321
26322 2014-04-17  Richard Biener  <rguenther@suse.de>
26323
26324         PR tree-optimization/60841
26325         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
26326         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
26327         of stmts to SLP build.
26328         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
26329         (vect_analyze_slp): Likewise.
26330         (vect_analyze_slp_instance): Likewise.
26331         (vect_build_slp_tree): Limit overall SLP tree growth.
26332         * tree-vectorizer.h (vect_analyze_data_refs,
26333         vect_analyze_slp): Adjust prototypes.
26334
26335 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
26336
26337         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
26338         Silvermont.
26339
26340 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
26341
26342         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
26343         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
26344         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
26345         for TARGET_SLOW_PSHUFB
26346
26347 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
26348
26349         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
26350         * config/i386/i386.c (intel_cost): Ditto.
26351
26352 2014-04-17  Joey Ye  <joey.ye@arm.com>
26353
26354         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
26355
26356 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
26357
26358         * opts.c (common_handle_option): Disable -fipa-reference coorectly
26359         with -fuse-profile.
26360
26361 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
26362
26363         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
26364         (type_all_derivations_known_p): New predicate.
26365         (type_all_ctors_visible_p): New predicate.
26366         (type_possibly_instantiated_p): New predicate.
26367         (get_odr_type): Compute all_derivations_known.
26368         (dump_odr_type): Dump the flag.
26369         (maybe_record_type): Cleanup.
26370         (record_target_from_binfo): Add bases_to_consider array;
26371         record bases for types w/o instances and skip CXX destructor.
26372         (possible_polymorphic_call_targets_1): Add bases_to_consider
26373         and consider_construction parameters; check if type may have instance.
26374         (get_polymorphic_call_info): Set maybe_in_construction to true
26375         when we know nothing.
26376         (record_targets_from_bases): Skip CXX destructors; they are
26377         never called for types in construction.
26378         (possible_polymorphic_call_targets): Do not record target when
26379         type may not have instance.
26380
26381 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
26382
26383         PR ipa/60854
26384         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
26385         external aliases alive, too.
26386
26387 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
26388
26389         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
26390         definition.
26391
26392 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
26393
26394         * final.c (compute_alignments): Do not apply loop alignment to a block
26395         falling through to the exit.
26396
26397 2014-04-16  Catherine Moore  <clm@codesourcery.com>
26398
26399         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
26400         Adjust constraints for microMIPS store patterns.
26401
26402 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
26403
26404         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
26405
26406 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
26407
26408         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
26409         (append_use): Run at -O0.
26410         (append_vdef): Likewise.
26411         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
26412         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
26413
26414 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
26415
26416         PR tree-optimization/60844
26417         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
26418         (propagate_op_to_single_use, remove_visited_stmt_chain,
26419         linearize_expr, repropagate_negates, reassociate_bb): Use it
26420         instead of gsi_remove.
26421
26422 2014-04-16  Martin Jambor  <mjambor@suse.cz>
26423
26424         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
26425         ipa_transforms_to_apply.
26426         (cgraph_function_versioning): Assert that old_node has empty
26427         ipa_transforms_to_apply.
26428         * trans-mem.c (ipa_tm_create_version): Likewise.
26429         * tree-inline.c (tree_function_versioning): Do not duplicate
26430         ipa_transforms_to_apply.
26431
26432 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26433
26434         PR target/60817
26435         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
26436         x86_64-*-* cases.
26437         Pass necessary as flags on 64-bit Solaris/x86.
26438         Use lowercase relocs for x86_64-*-*.
26439         * configure: Regenerate.
26440
26441 2014-04-15  Jan Hubicka  <jh@suse.cz>
26442
26443         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
26444         (maybe_record_node, likely_target_p): Use it.
26445
26446 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26447
26448         PR target/60839
26449         Revert following patch
26450
26451         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
26452
26453         PR target/60735
26454         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
26455         software floating point or no floating point registers, do not
26456         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
26457         in GPRs that occurs after we tested for GPRs that would never be
26458         true.
26459
26460         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
26461         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
26462         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
26463         specifically allow DDmode, since that does not use the SPE SIMD
26464         instructions.
26465
26466 2014-03-21  Mark Wielaard  <mjw@redhat.com>
26467
26468         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
26469         as unsigned or int depending on type and value used.
26470
26471 2014-04-15  Richard Biener  <rguenther@suse.de>
26472
26473         PR rtl-optimization/56965
26474         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
26475         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
26476         ... here.
26477         * alias.c (true_dependence_1): Do not call
26478         nonoverlapping_component_refs_p.
26479         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
26480         nonoverlapping_component_refs_p.
26481         (indirect_refs_may_alias_p): Likewise.
26482
26483 2014-04-15  Teresa Johnson  <tejohnson@google.com>
26484
26485         * cfg.c (dump_bb_info): Fix flags check.
26486         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
26487
26488 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26489
26490         PR rtl-optimization/60663
26491         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
26492         avoid 0 cost.
26493
26494 2014-04-15  Richard Biener  <rguenther@suse.de>
26495
26496         * lto-streamer.h (LTO_major_version): Bump to 4.
26497
26498 2014-04-15  Richard Biener  <rguenther@suse.de>
26499
26500         * common.opt (lto_partition_model): New enum.
26501         (flto-partition=): Merge separate options with a single with argument,
26502         add -flto-partition=one support.
26503         * flag-types.h (enum lto_partition_model): Declare.
26504         * opts.c (finish_options): Remove duplicate -flto-partition=
26505         option check.
26506         * lto-wrapper.c (run_gcc): Adjust.
26507
26508 2014-04-15  Richard Biener  <rguenther@suse.de>
26509
26510         * alias.c (ncr_compar): New function.
26511         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
26512
26513 2014-04-15  Richard Biener  <rguenther@suse.de>
26514
26515         * alias.c (record_component_aliases): Do not walk BINFOs.
26516
26517 2014-04-15  Richard Biener  <rguenther@suse.de>
26518
26519         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
26520         Add struct function argument and adjust.
26521         (find_func_aliases_for_call): Likewise.
26522         (find_func_aliases): Likewise.
26523         (find_func_clobbers): Likewise.
26524         (intra_create_variable_infos): Likewise.
26525         (compute_points_to_sets): Likewise.
26526         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
26527
26528 2014-04-15  Richard Biener  <rguenther@suse.de>
26529
26530         * tree.c (iterative_hash_expr): Use enum tree_code_class
26531         to store TREE_CODE_CLASS.
26532         (tree_block): Likewise.
26533         (tree_set_block): Likewise.
26534         * tree.h (fold_build_pointer_plus_loc): Use
26535         convert_to_ptrofftype_loc.
26536
26537 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
26538
26539         PR plugins/59335
26540         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
26541         added in 4.9.
26542
26543 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
26544
26545         * cfgloop.h (struct loop): Move force_vectorize down.
26546         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
26547         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
26548         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
26549         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
26550         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
26551         * tree-core.h (enum annot_expr_kind): Add new kind values.
26552         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
26553         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
26554         kinds.
26555         * tree.def (ANNOTATE_EXPR): Tweak comment.
26556
26557 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
26558
26559         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
26560         cxa_pure_virtual).
26561
26562 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
26563
26564         * tree.h (TYPE_IDENTIFIER): Declare.
26565         * tree.c (subrange_type_for_debug_p): Use it.
26566         * godump.c (go_format_type): Likewise.
26567         * dwarf2out.c (is_cxx_auto, modified_type_die,
26568         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
26569         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
26570
26571 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
26572
26573         PR lto/60820
26574         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
26575
26576 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
26577
26578         * config/i386/i386.c (examine_argument): Return bool.  Return true if
26579         parameter should be passed in memory.
26580         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
26581         (construct_container): Update calls to examine_argument.
26582         (function_arg_advance_64): Ditto.
26583         (return_in_memory_32): Merge with ix86_return_in_memory.
26584         (return_in_memory_64): Ditto.
26585         (return_in_memory_ms_64): Ditto.
26586
26587 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
26588
26589         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
26590         * coverage.c (coverage_compute_profile_id): Handle externally visible
26591         symbols.
26592
26593 2014-04-14  Martin Jambor  <mjambor@suse.cz>
26594
26595         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
26596         DECL_DISREGARD_INLINE_LIMITS functions.
26597
26598 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
26599
26600         PR target/60827
26601         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
26602
26603 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
26604
26605         PR target/60827
26606         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
26607         optimize_insn_for_speed_p instead of
26608         optimize_function_for_speed_p.
26609
26610 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
26611
26612         * doc/invoke.texi (free): Document AArch64.
26613
26614 2014-04-14  Richard Biener  <rguenther@suse.de>
26615
26616         PR tree-optimization/60042
26617         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
26618         (insert_into_preds_of_block): Do not prevent PHI insertion
26619         for REFERENCE exprs here ...
26620         (eliminate_dom_walker::before_dom_children): ... but prevent
26621         their use here under similar conditions when applied to the
26622         IL after PRE optimizations.
26623
26624 2014-04-14  Richard Biener  <rguenther@suse.de>
26625
26626         * passes.def: Move early points-to after early SRA.
26627
26628 2014-04-14  Richard Biener  <rguenther@suse.de>
26629
26630         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
26631         check for which sign-changes we allow when forwarding
26632         a converted value into a switch.
26633
26634 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
26635
26636         * stor-layout.c (place_field): Finalize non-constant offset for the
26637         field, if any.
26638
26639 2014-04-14  Richard Biener  <rguenther@suse.de>
26640
26641         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
26642         as argument.
26643         (expand_switch_using_bit_tests_p): Likewise.
26644         (process_switch): Compute and pass on speed_p based on the
26645         switch stmt.
26646         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
26647         optimize_bb_for_speed_p.
26648
26649 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
26650
26651         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
26652         * function.h (struct function): Rename has_force_vect_loops into
26653         has_force_vectorize_loops.
26654         * lto-streamer-in.c (input_cfg): Adjust for renaming.
26655         (input_struct_function_base): Likewise.
26656         * lto-streamer-out.c (output_cfg): Likewise.
26657         (output_struct_function_base): Likewise.
26658         * omp-low.c (expand_omp_simd): Likewise.
26659         * tree-cfg.c (move_sese_region_to_fn): Likewise.
26660         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
26661         (version_loop_for_if_conversion): Likewise.
26662         (tree_if_conversion): Likewise.
26663         (main_tree_if_conversion): Likewise.
26664         (gate_tree_if_conversion): Likewise.
26665         * tree-inline.c (copy_loops): Likewise.
26666         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
26667         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
26668         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
26669         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
26670         * tree-vectorizer.c (vectorize_loops): Likewise.
26671         * tree-vectorizer.h (unlimited_cost_model): Likewise.
26672
26673 2014-04-14  Richard Biener  <rguenther@suse.de>
26674
26675         PR lto/60720
26676         * lto-streamer-out.c (wrap_refs): New function.
26677         (lto_output): Wrap symbol references in global initializes in
26678         type-preserving MEM_REFs.
26679
26680 2014-04-14  Christian Bruel  <christian.bruel@st.com>
26681
26682         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
26683
26684 2014-04-14  Christian Bruel  <christian.bruel@st.com>
26685
26686         * config/sh/sh.md (setmemqi): New expand pattern.
26687         * config/sh/sh.h (CLEAR_RATIO): Define.
26688         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
26689         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
26690
26691 2014-04-14  Richard Biener  <rguenther@suse.de>
26692
26693         PR middle-end/55022
26694         * fold-const.c (negate_expr_p): Don't negate directional rounding
26695         division.
26696         (fold_negate_expr): Likewise.
26697
26698 2014-04-14  Richard Biener  <rguenther@suse.de>
26699
26700         PR tree-optimization/59817
26701         PR tree-optimization/60453
26702         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
26703         recursion to catch all CHRECs in the scalar evolution and restrict
26704         the predicate for the remains appropriately.
26705
26706 2014-04-12  Catherine Moore  <clm@codesourcery.com>
26707
26708         * config/mips/constraints.md: Add new register constraint "kb".
26709         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
26710         (*movhi_internal): Likewise.
26711         (*movqi_internal): Likewise.
26712         * config/mips/mips.h (M16_STORE_REGS): New register class.
26713         (REG_CLASS_NAMES): Add M16_STORE_REGS.
26714         (REG_CLASS_CONTENTS): Likewise.
26715         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
26716
26717 2014-04-11  Tobias Burnus  <burnus@net-b.de>
26718
26719         PR c/60194
26720         * doc/invoke.texi (-Wformat-signedness): Document it.
26721         (Wformat=2): Mention that this enables -Wformat-signedness.
26722
26723 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
26724
26725         * common/config/epiphany/epiphany-common.c
26726         (epiphany_option_optimization_table): Enable section anchors by
26727         default at -O1 or higher.
26728         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
26729         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
26730         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
26731         carries no extra cost.
26732         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
26733         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
26734         * config/epiphany/predicates.md (memclob_operand): New predicate.
26735         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
26736         Use memclob_operand predicate and X constraint for operand 3.
26737
26738 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
26739
26740         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
26741         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
26742         its operands.
26743
26744 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
26745
26746         PR rtl-optimization/60651
26747         * mode-switching.c (optimize_mode_switching): Make sure to emit
26748         sets of a lower numbered entity before sets of a higher numbered
26749         entity to a mode of the same or lower priority.
26750         When creating a seginfo for a basic block that starts with a code
26751         label, move the insertion point past the code label.
26752         (new_seginfo): Document and enforce requirement that
26753         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
26754         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
26755         * doc/tm.texi: Regenerate.
26756
26757 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
26758
26759         PR target/60811
26760         * config/arc/arc.c (arc_save_restore): Fix assert typo.
26761
26762 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
26763
26764         * BASE-VER: Set to 4.10.0.
26765
26766 2014-04-11  Tobias Burnus  <burnus@net-b.de>
26767
26768         PR other/59055
26769         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
26770         * doc/gcc.texi (Service): Update description in the @menu
26771         * doc/invoke.texi (Option Summary): Remove misplaced and
26772         duplicated @menu.
26773
26774 2014-04-11  Steve Ellcey  <sellcey@mips.com>
26775             Jakub Jelinek  <jakub@redhat.com>
26776
26777         PR middle-end/60556
26778         * expr.c (convert_move): Use emit_store_flag_force instead of
26779         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
26780         argument to it.
26781
26782 2014-04-11  Richard Biener  <rguenther@suse.de>
26783
26784         PR middle-end/60797
26785         * varasm.c (assemble_alias): Avoid endless error reporting
26786         recursion by setting TREE_ASM_WRITTEN.
26787
26788 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26789
26790         * config/s390/s390.md: Add a splitter for NOT rtx.
26791
26792 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
26793
26794         PR rtl-optimization/60663
26795         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
26796
26797 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
26798             Jakub Jelinek  <jakub@redhat.com>
26799
26800         PR lto/60567
26801         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
26802         flag from decl_node to node.
26803
26804 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26805
26806         PR debug/60655
26807         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
26808         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
26809         ameliorating the cases where it can be.
26810
26811 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
26812
26813         Revert
26814         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
26815
26816         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
26817         (loadsync_<mode>): Change mode.
26818         (load_quadpti, store_quadpti): New.
26819         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
26820         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
26821         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
26822
26823 2014-04-09  Cong Hou  <congh@google.com>
26824
26825         PR testsuite/60773
26826         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
26827         documentation.
26828
26829 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26830
26831         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
26832         instead of vnor to exploit possible fusion opportunity in the
26833         future.
26834         (altivec_expand_vec_perm_const_le): Likewise.
26835
26836 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
26837
26838         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
26839         (loadsync_<mode>): Change mode.
26840         (load_quadpti, store_quadpti): New.
26841         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
26842         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
26843
26844 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
26845
26846         PR target/60763
26847         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
26848         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
26849         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
26850
26851 2014-04-08  Richard Biener  <rguenther@suse.de>
26852
26853         PR middle-end/60706
26854         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
26855         a 64bit widest int print double-int similar to on HWI64 hosts.
26856
26857 2014-04-08  Richard Biener  <rguenther@suse.de>
26858
26859         PR tree-optimization/60785
26860         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
26861         default defs properly.
26862
26863 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
26864
26865         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
26866         (Weffc++): Likewise.
26867
26868 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
26869
26870         * ipa-devirt.c (maybe_record_node): When node is not recorded,
26871         set completep to false rather than true.
26872
26873 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
26874
26875         PR target/60504
26876         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
26877         ARM_TARGET2_DWARF_FORMAT.
26878
26879 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
26880
26881         PR target/60609
26882         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
26883         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
26884         ADDR_DIFF_VEC.
26885
26886 2014-04-07  Richard Biener  <rguenther@suse.de>
26887
26888         PR tree-optimization/60766
26889         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
26890         (may_eliminate_iv): Convert cand_value_at result to desired type.
26891
26892 2014-04-07  Jason Merrill  <jason@redhat.com>
26893
26894         PR c++/60731
26895         * common.opt (-fno-gnu-unique): Add.
26896         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
26897
26898 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26899
26900         * haifa-sched.c: Fix outdated function reference and minor
26901         grammar errors in introductory comment.
26902
26903 2014-04-07  Richard Biener  <rguenther@suse.de>
26904
26905         PR middle-end/60750
26906         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
26907         for noreturn calls.
26908         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
26909
26910 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
26911
26912         PR debug/55794
26913         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
26914         size accounting for thunks.
26915         (pa_asm_output_mi_thunk): Use final_start_function() and
26916         final_end_function() to output function start and end directives.
26917
26918 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
26919
26920         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
26921         device specific ISA/ feature information. Remove short_sp and
26922         errata_skip ds.  Add avr_device_specific_features enum to have device
26923         specific info.
26924         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
26925         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
26926         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
26927         updated device specific info.
26928         * config/avr/avr-mcus.def: Merge device specific details to
26929         dev_attribute field.
26930         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
26931         errata_skip.
26932         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
26933         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
26934         assembler if RMW isa supported by current device.
26935         * config/avr/genmultilib.awk: Update as device info structure changed.
26936         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
26937
26938 2014-04-04  Cong Hou  <congh@google.com>
26939
26940         PR tree-optimization/60656
26941         * tree-vect-stmts.c (supportable_widening_operation):
26942         Fix a bug that elements in a vector with vect_used_by_reduction
26943         property are incorrectly reordered when the operation on it is not
26944         consistant with the one in reduction operation.
26945
26946 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
26947
26948         PR rtl-optimization/60155
26949         * gcse.c (record_set_data): New function.
26950         (single_set_gcse): New function.
26951         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
26952         (hoist_code): Likewise.
26953         (get_pressure_class_and_nregs): Likewise.
26954
26955 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
26956
26957         * explow.c (probe_stack_range): Emit a final optimization blockage.
26958
26959 2014-04-04  Anthony Green  <green@moxielogic.com>
26960
26961         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
26962         typos.
26963
26964 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
26965
26966         PR ipa/59626
26967         * lto-cgraph.c (input_overwrite_node): Check that partitioning
26968         flags are set only during streaming.
26969         * ipa.c (process_references, walk_polymorphic_call_targets,
26970         symtab_remove_unreachable_nodes): Drop bodies of always inline
26971         after early inlining.
26972         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
26973
26974 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
26975         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26976
26977         PR debug/60655
26978         * dwarf2out.c (const_ok_for_output_1): Reject expressions
26979         containing a NOT.
26980
26981 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26982
26983         PR bootstrap/60743
26984         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
26985         duration.
26986         (cortex_a53_fdivd): Likewise.
26987
26988 2014-04-04  Martin Jambor  <mjambor@suse.cz>
26989
26990         PR ipa/60640
26991         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
26992         Adjust all callers.
26993         * cgraph.c (clone_of_p): Also return true if thunks match.
26994         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
26995         cgraph_function_or_thunk_node and an obsolete comment.
26996         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
26997         file.
26998         (build_function_decl_skip_args): Likewise.
26999         (set_new_clone_decl_and_node_flags): New function.
27000         (duplicate_thunk_for_node): Likewise.
27001         (redirect_edge_duplicating_thunks): Likewise.
27002         (cgraph_clone_node): New parameter args_to_skip, pass it to
27003         redirect_edge_duplicating_thunks which is called instead of
27004         cgraph_redirect_edge_callee.
27005         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
27006         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
27007
27008 2014-04-04  Jeff Law  <law@redhat.com>
27009
27010         PR target/60657
27011         * config/arm/predicates.md (const_int_I_operand): New predicate.
27012         (const_int_M_operand): Similarly.
27013         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
27014         const_int_operand.
27015         (insv_t2, extv_reg, extzv_t2): Likewise.
27016         (load_multiple_with_writeback): Similarly for const_int_I_operand.
27017         (pop_multiple_with_writeback_and_return): Likewise.
27018         (vfp_pop_multiple_with_writeback): Likewise
27019
27020 2014-04-04  Richard Biener  <rguenther@suse.de>
27021
27022         PR ipa/60746
27023         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
27024         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
27025         non-GIMPLE_LABELs.
27026         * gimplify.h (gimple_add_tmp_var_fn): Declare.
27027         * gimplify.c (gimple_add_tmp_var_fn): New function.
27028         * gimple-expr.h (create_tmp_reg_fn): Declare.
27029         * gimple-expr.c (create_tmp_reg_fn): New function.
27030         * gimple-low.c (record_vars_into): Don't change cfun.
27031         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
27032         code generation without cfun.
27033
27034 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
27035
27036         PR bootstrap/60719
27037         * Makefile.in (install-driver): Fix shell scripting.
27038
27039 2014-04-03  Cong Hou  <congh@google.com>
27040
27041         PR tree-optimization/60505
27042         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
27043         threshold of number of iterations below which no vectorization
27044         will be done.
27045         * tree-vect-loop.c (new_loop_vec_info):
27046         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
27047         * tree-vect-loop.c (vect_analyze_loop_operations):
27048         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
27049         * tree-vect-loop.c (vect_transform_loop):
27050         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
27051         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
27052         of iterations of the loop and see if we should build the epilogue.
27053
27054 2014-04-03  Richard Biener  <rguenther@suse.de>
27055
27056         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
27057         (streamer_tree_cache_create): Adjust.
27058         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
27059         to allow optional nodes array.
27060         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
27061         (streamer_tree_cache_append): Likewise.
27062         (streamer_tree_cache_create): Create nodes array optionally
27063         as specified by parameter.
27064         * lto-streamer-out.c (create_output_block): Avoid maintaining
27065         the node array in the writer cache.
27066         (DFS_write_tree): Remove assertion.
27067         (produce_asm_for_decls): Free the out decl state hash table early.
27068         * lto-streamer-in.c (lto_data_in_create): Adjust for
27069         streamer_tree_cache_create prototype change.
27070
27071 2014-04-03  Richard Biener  <rguenther@suse.de>
27072
27073         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
27074         set TREE_CHAIN to NULL_TREE.
27075
27076 2014-04-03  Richard Biener  <rguenther@suse.de>
27077
27078         PR tree-optimization/60740
27079         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
27080         over all GIMPLE_COND operands.
27081
27082 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
27083
27084         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
27085         (Weffc++): Remove Scott's numbering, merge lists and reference
27086         Wnon-virtual-dtor.
27087
27088 2014-04-03  Nick Clifton  <nickc@redhat.com>
27089
27090         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
27091         properly.
27092
27093 2014-04-03  Martin Jambor  <mjambor@suse.cz>
27094
27095         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
27096         mention gcc_unreachable before failing.
27097         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
27098         removed symbols.
27099
27100 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
27101
27102         PR ipa/60659
27103         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
27104         inconsistent code and instead mark the context inconsistent.
27105         (possible_polymorphic_call_targets): For inconsistent contexts
27106         return empty complete list.
27107
27108 2014-04-02  Anthony Green  <green@moxielogic.com>
27109
27110         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
27111         (extendqisi2, extendhisi2): Define.
27112         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
27113         (WCHAR_TYPE): Change to unsigned int.
27114
27115 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27116
27117         PR tree-optimization/60733
27118         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
27119         insertion point for PHI candidates to be the end of the feeding
27120         block for the PHI argument.
27121
27122 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
27123
27124         PR rtl-optimization/60650
27125         * lra-constraints.c (process_alt_operands): Decrease reject for
27126         earlyclobber matching.
27127
27128 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27129
27130         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
27131
27132 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27133
27134         * config/spu/spu.c (pad_bb): Do not crash when the last
27135         insn is CODE_FOR_blockage.
27136
27137 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27138
27139         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
27140         lies outside the target mode.
27141
27142 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
27143
27144         PR target/60735
27145         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
27146         software floating point or no floating point registers, do not
27147         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
27148         in GPRs that occurs after we tested for GPRs that would never be
27149         true.
27150
27151         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
27152         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
27153         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
27154         specifically allow DDmode, since that does not use the SPE SIMD
27155         instructions.
27156
27157 2014-04-02  Richard Biener  <rguenther@suse.de>
27158
27159         PR middle-end/60729
27160         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
27161         MODE_INTs.  Properly use negv_optab.
27162         (expand_abs): Likewise.
27163
27164 2014-04-02  Richard Biener  <rguenther@suse.de>
27165
27166         PR bootstrap/60719
27167         * Makefile.in (install-driver): Guard extra installs with special
27168         names properly.
27169
27170 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
27171
27172         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
27173         Document vec_vgbbd.
27174
27175 2014-04-01  Richard Henderson  <rth@redhat.com>
27176
27177         PR target/60704
27178         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
27179         alternative enabled before register allocation.
27180
27181 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
27182
27183         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
27184         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
27185         typo.
27186         (nios2_large_got_address): Remove unneeded 'sym' parameter.
27187         (nios2_got_address): Update nios2_large_got_address call site.
27188         (nios2_delegitimize_address): New function.
27189         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
27190         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
27191         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
27192
27193 2014-04-01  Martin Husemann  <martin@duskware.de>
27194
27195         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
27196         for -mabi=32.
27197
27198 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
27199
27200         PR rtl-optimization/60604
27201         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
27202         check from register_operand.
27203         (register_operand): Redefine in terms of general_operand.
27204         (nonmemory_operand): Use register_operand for the non-constant cases.
27205
27206 2014-04-01  Richard Biener  <rguenther@suse.de>
27207
27208         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
27209
27210 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
27211
27212         * doc/invoke.texi (mapp-regs): Clarify.
27213
27214 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
27215
27216         * config/i386/avx512fintrin.h (__v32hi): Define type.
27217         (__v64qi): Likewise.
27218         (_mm512_set1_epi8): Define.
27219         (_mm512_set1_epi16): Define.
27220         (_mm512_set4_epi32): Define.
27221         (_mm512_set4_epi64): Define.
27222         (_mm512_set4_pd): Define.
27223         (_mm512_set4_ps): Define.
27224         (_mm512_setr4_epi64): Define.
27225         (_mm512_setr4_epi32): Define.
27226         (_mm512_setr4_pd): Define.
27227         (_mm512_setr4_ps): Define.
27228         (_mm512_setzero_epi32): Define.
27229
27230 2014-03-31  Martin Jambor  <mjambor@suse.cz>
27231
27232         PR middle-end/60647
27233         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
27234         callsite_arguments_match_p.  Updated all callers.  Also check types of
27235         corresponding formal parameters and actual arguments.
27236         (not_all_callers_have_enough_arguments_p) Renamed to
27237         some_callers_have_mismatched_arguments_p.
27238
27239 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
27240
27241         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
27242
27243 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
27244
27245         PR target/60034
27246         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
27247         section anchor.
27248
27249 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
27250
27251         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
27252         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
27253         Split out
27254         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
27255         Use FMAMODE_NOVF512 mode iterator.
27256         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
27257         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
27258         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
27259         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
27260         Split out
27261         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
27262         Use VF_128_256 mode iterator.
27263         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
27264         Ditto.
27265
27266 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
27267
27268         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
27269         static chain if needed.
27270
27271 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
27272
27273         PR target/60697
27274         * lra-constraints.c (index_part_to_reg): New.
27275         (process_address): Use it.
27276
27277 2014-03-27  Jeff Law  <law@redhat.com>
27278             Jakub Jelinek  <jakub@redhat.com>
27279
27280         PR target/60648
27281         * expr.c (do_tablejump): Use simplify_gen_binary rather than
27282         gen_rtx_{PLUS,MULT} to build up the address expression.
27283
27284         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
27285         creating non-canonical RTL.
27286
27287 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
27288
27289         PR ipa/60243
27290         * ipa-inline.c (want_inline_small_function_p): Short circuit large
27291         functions; reorganize to make cheap checks first.
27292         (inline_small_functions): Do not estimate growth when dumping;
27293         it is expensive.
27294         * ipa-inline.h (inline_summary): Add min_size.
27295         (growth_likely_positive): New function.
27296         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
27297         (set_cond_stmt_execution_predicate): Cleanup.
27298         (estimate_edge_size_and_time): Compute min_size.
27299         (estimate_calls_size_and_time): Likewise.
27300         (estimate_node_size_and_time): Likewise.
27301         (inline_update_overall_summary): Update min_size.
27302         (do_estimate_edge_time): Likewise.
27303         (do_estimate_edge_size): Update.
27304         (do_estimate_edge_hints): Update.
27305         (growth_likely_positive): New function.
27306
27307 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
27308
27309         PR target/60693
27310         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
27311         also if addr has VOIDmode.
27312
27313 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27314
27315         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
27316         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
27317         Declare extern.
27318         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
27319         instructions as well as AdvancedSIMD loads.
27320
27321 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27322
27323         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
27324         Use crypto_aese type.
27325         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
27326         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
27327         crypto_aese, crypto_aesmc.  Move to types.md.
27328         * config/arm/types.md (crypto_aes): Split into crypto_aese,
27329         crypto_aesmc.
27330         * config/arm/iterators.md (crypto_type): Likewise.
27331
27332 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
27333
27334         * cgraph.c: Include expr.h and tree-dfa.h.
27335         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
27336         remove LHS.
27337
27338 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
27339
27340         PR target/60675
27341         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
27342         regs from checking multi-reg pseudos.
27343
27344 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27345
27346         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
27347
27348 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27349
27350         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
27351         if it would clobber the stack pointer, even temporarily.
27352
27353 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
27354
27355         * mode-switching.c: Make small adjustments to the top comment.
27356
27357 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
27358
27359         * config/rs6000/constraints.md (wD constraint): New constraint to
27360         match the constant integer to get the top DImode/DFmode out of a
27361         vector in a VSX register.
27362
27363         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
27364         match the constant integer to get the top DImode/DFmode out of a
27365         vector in a VSX register.
27366
27367         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
27368         for ISA 2.07.
27369
27370         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
27371         vbpermq builtins.
27372
27373         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
27374         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
27375
27376         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
27377         Optimize vec_extract of 64-bit values, where the value being
27378         extracted is in the top word, where we can use scalar
27379         instructions.  Add direct move and store support.  Combine the big
27380         endian/little endian vector select load support into a single insn.
27381         (vsx_extract_<mode>_internal1): Likewise.
27382         (vsx_extract_<mode>_internal2): Likewise.
27383         (vsx_extract_<mode>_load): Likewise.
27384         (vsx_extract_<mode>_store): Likewise.
27385         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
27386         combined into vsx_extract_<mode>_load.
27387         (vsx_extract_<mode>_one_le): Likewise.
27388
27389         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
27390         define the top 64-bit vector element.
27391
27392         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
27393         constraint.
27394
27395         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
27396         Document vec_vbpermq builtin.
27397
27398         PR target/60672
27399         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
27400         enable use of xxsldwi and xxpermdi builtin functions.
27401         (vec_xxpermdi): Likewise.
27402
27403         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
27404         Document use of vec_xxsldwi and vec_xxpermdi builtins.
27405
27406 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
27407
27408         PR rtl-optimization/60650
27409         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
27410         first_p.  Use it.
27411         (find_spills_for): New.
27412         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
27413         Spill all pseudos on the second iteration.
27414
27415 2014-03-27  Marek Polacek  <polacek@redhat.com>
27416
27417         PR c/50347
27418         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
27419         types.
27420
27421 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27422
27423         * config/s390/s390.c (s390_can_use_return_insn): Check for
27424         call-saved FPRs on 31 bit.
27425
27426 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
27427
27428         PR middle-end/60682
27429         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
27430         if they need regimplification, just drop them instead of
27431         calling gimple_regimplify_operands on them.
27432
27433 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
27434
27435         PR target/60580
27436         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
27437         (aarch64_frame_pointer_required): Adjust logic.
27438         (aarch64_can_eliminate): Adjust logic.
27439         (aarch64_override_options_after_change): Adjust logic.
27440
27441 2014-03-27  Dehao Chen  <dehao@google.com>
27442
27443         * ipa-inline.c (early_inliner): Update node's inline info.
27444
27445 2014-03-26  Dehao Chen  <dehao@google.com>
27446
27447         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
27448         compiler inserted conditional jumps for NAN float check.
27449
27450 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
27451
27452         * ubsan.h (ubsan_create_data): Change second argument's type
27453         to const location_t *.
27454         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
27455         _("<unknown>").
27456         (ubsan_create_data): Change second argument to const location_t *PLOC.
27457         Create Loc field whenever PLOC is non-NULL.
27458         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
27459         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
27460         callers.
27461
27462         PR other/59545
27463         * real.c (real_to_integer2): Change type of low to UHWI.
27464
27465 2014-03-26  Tobias Burnus  <burnus@net-b.de>
27466
27467         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
27468         (CILK_SELF_SPECS): New define.
27469         (driver_self_specs): Use it.
27470
27471 2014-03-26  Richard Biener  <rguenther@suse.de>
27472
27473         * tree-pretty-print.c (percent_K_format): Implement special
27474         case for LTO and its stripped down BLOCK tree.
27475
27476 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
27477
27478         PR sanitizer/60636
27479         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
27480
27481         * tree-vrp.c (simplify_internal_call_using_ranges): If only
27482         one range is range_int_cst_p, but not both, at least optimize
27483         addition/subtraction of 0 and multiplication by 0 or 1.
27484         * gimple-fold.c (gimple_fold_call): Fold
27485         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
27486         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
27487         INTEGER_CSTs, try to fold at least x * 0 and y - y.
27488
27489 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
27490
27491         PR rtl-optimization/60452
27492         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
27493         <case REG>: Return 1 for invalid offsets from the frame pointer.
27494
27495 2014-03-26  Marek Polacek  <polacek@redhat.com>
27496
27497         PR c/37428
27498         * doc/extend.texi (C Extensions): Mention variable-length arrays in
27499         a structure/union.
27500
27501 2014-03-26  Marek Polacek  <polacek@redhat.com>
27502
27503         PR c/39525
27504         * doc/extend.texi (Designated Inits): Describe what happens to omitted
27505         field members.
27506
27507 2014-03-26  Marek Polacek  <polacek@redhat.com>
27508
27509         PR other/59545
27510         * ira-color.c (update_conflict_hard_regno_costs): Perform the
27511         multiplication in unsigned type.
27512
27513 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
27514
27515         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
27516
27517 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
27518
27519         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
27520
27521 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
27522
27523         PR ipa/60315
27524         * cif-code.def (UNREACHABLE) New code.
27525         * ipa-inline.c (inline_small_functions): Skip edges to
27526         __builtlin_unreachable.
27527         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
27528         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
27529         predicate to __bulitin_unreachable.
27530         (set_cond_stmt_execution_predicate): Fix issue when
27531         invert_tree_comparison returns ERROR_MARK.
27532         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
27533         propagate to inline clones.
27534         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
27535         to unreachable.
27536         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
27537         * cgraphclones.c (cgraph_clone_node): If call destination is already
27538         ureachable, do not redirect it back.
27539         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
27540         unreachable.
27541
27542 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
27543
27544         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
27545         Do not modify inline clones.
27546
27547 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
27548
27549         * config/i386/i386.md (general_sext_operand): New mode attr.
27550         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
27551         don't generate (sign_extend (const_int)).
27552         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
27553         operands[2].  Use We constraint instead of <i> and
27554         <general_sext_operand> predicate instead of <general_operand>.
27555         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
27556         * config/i386/constraints.md (We): New constraint.
27557         * config/i386/predicates.md (x86_64_sext_operand,
27558         sext_operand): New predicates.
27559
27560 2014-03-25  Martin Jambor  <mjambor@suse.cz>
27561
27562         PR ipa/60600
27563         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
27564         inconsistent devirtualizations to __builtin_unreachable.
27565
27566 2014-03-25  Marek Polacek  <polacek@redhat.com>
27567
27568         PR c/35449
27569         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
27570
27571 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
27572
27573         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
27574         order of elements for big-endian.
27575
27576 2014-03-25  Richard Biener  <rguenther@suse.de>
27577
27578         PR middle-end/60635
27579         * gimplify-me.c (gimple_regimplify_operands): Update the
27580         re-gimplifed stmt.
27581
27582 2014-03-25  Martin Jambor  <mjambor@suse.cz>
27583
27584         PR ipa/59176
27585         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
27586         (lto_output_varpool_node): Likewise.
27587         (input_overwrite_node): Likewise.
27588         (input_varpool_node): Likewise.
27589
27590 2014-03-25  Richard Biener  <rguenther@suse.de>
27591
27592         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
27593         (run_gcc): Likewise.
27594
27595 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
27596
27597         * combine.c (simplify_compare_const): Add MODE argument.
27598         Handle mode_width 0 as very large mode_width.
27599         (try_combine, simplify_comparison): Adjust callers.
27600
27601         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
27602         type to avoid signed integer overflow.
27603         * explow.c (plus_constant): Likewise.
27604
27605 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27606
27607         * doc/generic.texi: Correct typos.
27608
27609 2014-03-24  Tobias Burnus  <burnus@net-b.de>
27610
27611         * doc/invoke.texi (-flto): Expand section about
27612         using static libraries with LTO.
27613
27614 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27615
27616         PR rtl-optimization/60501
27617         * optabs.def (addptr3_optab): New optab.
27618         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
27619         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
27620         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
27621
27622         * lra.c (emit_add3_insn): Use the addptr pattern if available.
27623
27624         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
27625
27626 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
27627
27628         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
27629         _mm512_set1_pd.
27630
27631         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
27632         (_mm256_undefined_ps): Define.
27633         (_mm256_undefined_pd): Define.
27634         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
27635         (_mm_undefined_pd): Define.
27636         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
27637         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
27638         (_mm512_undefined_ps): Define.
27639         (_mm512_undefined_pd): Define.
27640         Use _mm*_undefined_*.
27641         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
27642
27643 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
27644
27645         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
27646         (lshr_simd): DI mode added.
27647         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
27648         (aarch64_ushr_simddi): Likewise.
27649         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
27650         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
27651         (vshrd_n_u64): Likewise.
27652
27653 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27654
27655         * Makefile.in (s-macro_list): Depend on cc1.
27656
27657 2014-03-23  Teresa Johnson  <tejohnson@google.com>
27658
27659         * ipa-utils.c (ipa_print_order): Use specified dump file.
27660
27661 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
27662
27663         PR rtl-optimization/60601
27664         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
27665
27666         * gcc.c (eval_spec_function): Initialize save_growing_value.
27667
27668 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
27669
27670         PR sanitizer/60613
27671         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
27672         code == MINUS_EXPR, never swap op0 with op1.
27673
27674         * toplev.c (init_local_tick): Avoid signed integer multiplication
27675         overflow.
27676         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
27677         shift by first operand's bitsize.
27678
27679 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
27680
27681         PR target/60610
27682         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
27683         redefine to 1 or 0.
27684         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
27685         TARGET_ISA_64BIT_P(x).
27686
27687 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27688
27689         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
27690         pattern for vector nor instead of subtract from splat(-1).
27691         (altivec_expand_vec_perm_const_le): Likewise.
27692
27693 2014-03-21  Richard Henderson  <rth@twiddle.net>
27694
27695         PR target/60598
27696         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
27697         related insns after epilogue_completed.
27698
27699 2014-03-21  Martin Jambor  <mjambor@suse.cz>
27700
27701         PR ipa/59176
27702         * cgraph.h (symtab_node): New flag body_removed.
27703         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
27704         when removing bodies.
27705         * symtab.c (dump_symtab_base): Dump body_removed flag.
27706         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
27707         had their bodies removed.
27708
27709 2014-03-21  Martin Jambor  <mjambor@suse.cz>
27710
27711         PR ipa/60419
27712         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
27713         in the border.
27714
27715 2014-03-21  Richard Biener  <rguenther@suse.de>
27716
27717         PR tree-optimization/60577
27718         * tree-core.h (struct tree_base): Document nothrow_flag use
27719         in DECL_NONALIASED.
27720         * tree.h (DECL_NONALIASED): New.
27721         (may_be_aliased): Adjust.
27722         * coverage.c (build_var): Set DECL_NONALIASED.
27723
27724 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
27725
27726         * expr.c (expand_expr_real_1): Remove outdated comment.
27727
27728 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
27729
27730         PR middle-end/60597
27731         * ira.c (adjust_cleared_regs): Call copy_rtx on
27732         *reg_equiv[REGNO (loc)].src_p before passing it to
27733         simplify_replace_fn_rtx.
27734
27735         PR target/60568
27736         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
27737         into CONST, put pic register as first operand of PLUS.  Use
27738         gen_const_mem for both 32-bit and 64-bit PIC got loads.
27739
27740 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27741
27742         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
27743
27744 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
27745
27746         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
27747         around for store forwarding issue in the FPU on the UT699.
27748         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
27749         loads and operations if -mfix-ut699 is specified.
27750         (divtf3_hq): Tweak attribute.
27751         (sqrttf2_hq): Likewise.
27752
27753 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
27754
27755         * calls.c (store_one_arg): Remove incorrect const qualification on the
27756         type of the temporary.
27757         * cfgexpand.c (expand_return): Likewise.
27758         * expr.c (expand_constructor): Likewise.
27759         (expand_expr_real_1): Likewise.
27760
27761 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
27762
27763         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
27764         of parts.
27765
27766 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
27767
27768         PR target/60039
27769         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
27770
27771 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
27772
27773         * config/arm/aarch-common-protos.h
27774         (alu_cost_table): Fix spelling of "extend".
27775         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
27776
27777 2014-03-19  Richard Biener  <rguenther@suse.de>
27778
27779         PR middle-end/60553
27780         * tree-core.h (tree_type_common): Re-order pointer members
27781         to reduce recursion depth during GC walks.
27782
27783 2014-03-19  Marek Polacek  <polacek@redhat.com>
27784
27785         PR sanitizer/60569
27786         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
27787         before accessing it.
27788
27789 2014-03-19  Richard Biener  <rguenther@suse.de>
27790
27791         PR lto/59543
27792         * lto-streamer-in.c (input_function): In WPA stage do not drop
27793         debug stmts.
27794
27795 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
27796
27797         PR tree-optimization/60559
27798         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
27799         with build_zero_cst assignment.
27800
27801 2014-03-18  Kai Tietz  <ktietz@redhat.com>
27802
27803         PR rtl-optimization/56356
27804         * sdbout.c (sdbout_parms): Verify that parms'
27805         incoming argument is valid.
27806         (sdbout_reg_parms): Likewise.
27807
27808 2014-03-18  Richard Henderson  <rth@redhat.com>
27809
27810         PR target/60562
27811         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
27812         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
27813         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
27814
27815 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
27816
27817         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
27818         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
27819         Italicize plugin event names in description.  Explain that
27820         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
27821         Remind that no GCC functions should be called after PLUGIN_FINISH.
27822         Explain what pragmas with expansion are.
27823
27824 2014-03-18  Martin Liska  <mliska@suse.cz>
27825
27826         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
27827         gimple call statement is update.
27828         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
27829         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
27830
27831 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
27832
27833         PR sanitizer/60557
27834         * ubsan.c (ubsan_instrument_unreachable): Call
27835         initialize_sanitizer_builtins.
27836         (ubsan_pass): Likewise.
27837
27838         PR sanitizer/60535
27839         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
27840         varpool_finalize_decl instead of rest_of_decl_compilation.
27841
27842 2014-03-18  Richard Biener  <rguenther@suse.de>
27843
27844         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
27845         by using bitmap_and_compl instead of bitmap_and_compl_into.
27846         (df_rd_transfer_function): Likewise.
27847
27848 2014-03-18  Richard Biener  <rguenther@suse.de>
27849
27850         * doc/lto.texi (fresolution): Fix typo.
27851
27852 2014-03-18  Richard Biener  <rguenther@suse.de>
27853
27854         * doc/invoke.texi (flto): Update for changes in 4.9.
27855
27856 2014-03-18  Richard Biener  <rguenther@suse.de>
27857
27858         * doc/loop.texi: Remove section on the removed lambda framework.
27859         Update loop docs with recent changes in preserving loop structure.
27860
27861 2014-03-18  Richard Biener  <rguenther@suse.de>
27862
27863         * doc/lto.texi (-fresolution): Document.
27864
27865 2014-03-18  Richard Biener  <rguenther@suse.de>
27866
27867         * doc/contrib.texi: Adjust my name.
27868
27869 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
27870
27871         PR ipa/58721
27872         * internal-fn.c: Include diagnostic-core.h.
27873         (expand_BUILTIN_EXPECT): New function.
27874         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
27875         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
27876         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
27877         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
27878         IFN_BUILTIN_EXPECT.
27879         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
27880         Revert 3 argument __builtin_expect code.
27881         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
27882         * gimple-fold.c (gimple_fold_call): Likewise.
27883         * tree.h (fold_builtin_expect): New prototype.
27884         * builtins.c (build_builtin_expect_predicate): Add predictor
27885         argument, if non-NULL, create 3 argument __builtin_expect.
27886         (fold_builtin_expect): No longer static.  Add ARG2 argument,
27887         pass it through to build_builtin_expect_predicate.
27888         (fold_builtin_2): Adjust caller.
27889         (fold_builtin_3): Handle BUILT_IN_EXPECT.
27890         * internal-fn.def (BUILTIN_EXPECT): New.
27891
27892 2014-03-18  Tobias Burnus  <burnus@net-b.de>
27893
27894         PR ipa/58721
27895         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
27896         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
27897         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
27898
27899 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
27900
27901         PR ipa/58721
27902         * predict.c (combine_predictions_for_bb): Fix up formatting.
27903         (expr_expected_value_1, expr_expected_value): Add predictor argument,
27904         fill what it points to if non-NULL.
27905         (tree_predict_by_opcode): Adjust caller, use the predictor.
27906         * predict.def (PRED_COMPARE_AND_SWAP): Add.
27907
27908 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
27909
27910         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
27911         proper constant for the store mode.
27912
27913 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
27914
27915         * symtab.c (change_decl_assembler_name): Fix transparent alias
27916         chain construction.
27917
27918 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
27919
27920         * config/aarch64/aarch64.c: Correct the comments about the
27921         aarch64 stack layout.
27922
27923 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
27924
27925         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
27926         check for GF_OMP_FOR_KIND_FOR.
27927
27928 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
27929
27930         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
27931         ymm and zmm register names.
27932
27933 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
27934
27935         PR target/60516
27936         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
27937         note creation for the 2010-08-31 changes.
27938
27939 2014-03-17  Marek Polacek  <polacek@redhat.com>
27940
27941         PR middle-end/60534
27942         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
27943         as -fno-tree-loop-vectorize.
27944         (expand_omp_simd): Likewise.
27945
27946 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
27947
27948         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
27949         (eligible_for_call_delay): New prototype.
27950         * config/sparc/sparc.c (tls_call_delay): Rename into...
27951         (eligible_for_call_delay): ...this.  Return false if the instruction
27952         cannot be put in the delay slot of a branch.
27953         (eligible_for_restore_insn): Simplify.
27954         (eligible_for_return_delay): Return false if the instruction cannot be
27955         put in the delay slot of a branch and simplify.
27956         (eligible_for_sibcall_delay): Return false if the instruction cannot be
27957         put in the delay slot of a branch.
27958         * config/sparc/sparc.md (fix_ut699): New attribute.
27959         (tls_call_delay): Delete.
27960         (in_call_delay): Reimplement.
27961         (eligible_for_sibcall_delay): Rename into...
27962         (in_sibcall_delay): ...this.
27963         (eligible_for_return_delay): Rename into...
27964         (in_return_delay): ...this.
27965         (in_branch_delay): Reimplement.
27966         (in_uncond_branch_delay): Delete.
27967         (in_annul_branch_delay): Delete.
27968
27969 2014-03-14  Richard Henderson  <rth@redhat.com>
27970
27971         PR target/60525
27972         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
27973         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
27974         (*floathi<X87MODEF>2_i387_with_temp): Remove.
27975         (floathi splitters): Remove.
27976         (float<SWI48x>xf2): New pattern.
27977         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
27978         code that tried to handle DImode for 32-bit, but which was excluded
27979         by the pattern's condition.  Drop allocation of stack temporary.
27980         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
27981         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
27982         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
27983         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
27984         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
27985         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
27986         (*float<SWI48><MODEF>2_sse_interunit): Remove.
27987         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
27988         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
27989         (*float<SWI48x><X87MODEF>2_i387): Remove.
27990         (all float _with_temp splitters): Remove.
27991         (*float<SWI48x><MODEF>2_i387): New pattern.
27992         (*float<SWI48><MODEF>2_sse): New pattern.
27993         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
27994         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
27995
27996 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
27997             Marek Polacek  <polacek@redhat.com>
27998
27999         PR middle-end/60484
28000         * common.opt (dump_base_name_prefixed): New Variable.
28001         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
28002         if x_dump_base_name_prefixed is already set, set it at the end.
28003
28004 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
28005
28006         PR rtl-optimization/60508
28007         * lra-constraints.c (get_reload_reg): Add new parameter
28008         in_subreg_p.
28009         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
28010         Pass the new parameter values.
28011
28012 2014-03-14  Richard Biener  <rguenther@suse.de>
28013
28014         * common.opt: Revert unintented changes from r205065.
28015         * opts.c: Likewise.
28016
28017 2014-03-14  Richard Biener  <rguenther@suse.de>
28018
28019         PR middle-end/60518
28020         * cfghooks.c (split_block): Properly adjust all loops the
28021         block was a latch of.
28022
28023 2014-03-14  Martin Jambor  <mjambor@suse.cz>
28024
28025         PR lto/60461
28026         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
28027         and simplify it.
28028
28029 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
28030
28031         PR target/59396
28032         * config/avr/avr.c (avr_set_current_function): Pass function name
28033         through default_strip_name_encoding before sanity checking instead
28034         of skipping the first char of the assembler name.
28035
28036 2014-03-13  Richard Henderson  <rth@redhat.com>
28037
28038         PR debug/60438
28039         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
28040         (ix86_force_to_memory, ix86_free_from_memory): Remove.
28041         * config/i386/i386-protos.h: Likewise.
28042         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
28043         in the expander instead of a splitter.
28044         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
28045         any possibility of requiring a memory.
28046         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
28047         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
28048         (fp branch splitters): Update for ix86_split_fp_branch.
28049         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
28050         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
28051         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
28052         (*fop_<MODEF>_2_i387): Remove f/r alternative.
28053         (*fop_<MODEF>_3_i387): Likewise.
28054         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
28055         (splitters for the fop_* register patterns): Remove.
28056         (fscalexf4_i387): Rename from *fscalexf4_i387.
28057         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
28058
28059 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
28060
28061         PR tree-optimization/59779
28062         * tree-dfa.c (get_ref_base_and_extent): Use double_int
28063         type for bitsize and maxsize instead of HOST_WIDE_INT.
28064
28065 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
28066
28067         PR rtl-optimization/57320
28068         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
28069         the CFG after thread_prologue_and_epilogue_insns.
28070
28071 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
28072
28073         PR rtl-optimization/57189
28074         * lra-constraints.c (process_alt_operands): Disfavor spilling
28075         vector pseudos.
28076
28077 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
28078
28079         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
28080
28081 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
28082
28083         PR tree-optimization/59025
28084         PR middle-end/60418
28085         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
28086         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
28087
28088 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
28089
28090         PR target/60486
28091         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
28092         calls of avr_out_plus_1.
28093
28094 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
28095
28096         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
28097         BB's single pred and update the father loop's latch info later.
28098
28099 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
28100
28101         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
28102         (VEC_M): Likewise.
28103         (VEC_N): Likewise.
28104         (VEC_R): Likewise.
28105         (VEC_base): Likewise.
28106         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
28107         registers, we need to swap double words in little endian mode.
28108
28109         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
28110         to be a container mode for 128-bit integer operations added in ISA
28111         2.07.  Unlike TImode and PTImode, the preferred register set is
28112         the Altivec/VMX registers for the 128-bit operations.
28113
28114         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
28115         declarations.
28116         (rs6000_split_128bit_ok_p): Likewise.
28117
28118         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
28119         macros for creating ISA 2.07 normal and overloaded builtin
28120         functions with 3 arguments.
28121         (BU_P8V_OVERLOAD_3): Likewise.
28122         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
28123         for use as overloaded functions.
28124         (VPERM_1TI_UNS): Likewise.
28125         (VSEL_1TI): Likewise.
28126         (VSEL_1TI_UNS): Likewise.
28127         (ST_INTERNAL_1ti): Likewise.
28128         (LD_INTERNAL_1ti): Likewise.
28129         (XXSEL_1TI): Likewise.
28130         (XXSEL_1TI_UNS): Likewise.
28131         (VPERM_1TI): Likewise.
28132         (VPERM_1TI_UNS): Likewise.
28133         (XXPERMDI_1TI): Likewise.
28134         (SET_1TI): Likewise.
28135         (LXVD2X_V1TI): Likewise.
28136         (STXVD2X_V1TI): Likewise.
28137         (VEC_INIT_V1TI): Likewise.
28138         (VEC_SET_V1TI): Likewise.
28139         (VEC_EXT_V1TI): Likewise.
28140         (EQV_V1TI): Likewise.
28141         (NAND_V1TI): Likewise.
28142         (ORC_V1TI): Likewise.
28143         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
28144         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
28145         overloaded builtin.
28146         (VADDUQM): Likewise.
28147         (VSUBCUQ): Likewise.
28148         (VADDEUQM): Likewise.
28149         (VADDECUQ): Likewise.
28150         (VSUBEUQM): Likewise.
28151         (VSUBECUQ): Likewise.
28152
28153         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
28154         __int128_t and __uint128_t types.
28155         (__uint128_type): Likewise.
28156         (altivec_categorize_keyword): Add support for vector __int128_t,
28157         vector __uint128_t, vector __int128, and vector unsigned __int128
28158         as a container type for TImode operations that need to be done in
28159         VSX/Altivec registers.
28160         (rs6000_macro_to_expand): Likewise.
28161         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
28162         to support 128-bit integer instructions vaddcuq, vadduqm,
28163         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
28164         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
28165
28166         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
28167         for V1TImode, and set up preferences to use VSX/Altivec registers.
28168         Setup VSX reload handlers.
28169         (rs6000_debug_reg_global): Likewise.
28170         (rs6000_init_hard_regno_mode_ok): Likewise.
28171         (rs6000_preferred_simd_mode): Likewise.
28172         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
28173         (easy_altivec_constant): Likewise.
28174         (output_vec_const_move): Likewise.
28175         (rs6000_expand_vector_set): Convert V1TImode set and extract to
28176         simple move.
28177         (rs6000_expand_vector_extract): Likewise.
28178         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
28179         addressing.
28180         (rs6000_const_vec): Add support for V1TImode.
28181         (rs6000_emit_le_vsx_load): Swap double words when loading or
28182         storing TImode/V1TImode.
28183         (rs6000_emit_le_vsx_store): Likewise.
28184         (rs6000_emit_le_vsx_move): Likewise.
28185         (rs6000_emit_move): Add support for V1TImode.
28186         (altivec_expand_ld_builtin): Likewise.
28187         (altivec_expand_st_builtin): Likewise.
28188         (altivec_expand_vec_init_builtin): Likewise.
28189         (altivec_expand_builtin): Likewise.
28190         (rs6000_init_builtins): Add support for V1TImode type.  Add
28191         support for ISA 2.07 128-bit integer builtins.  Define type names
28192         for the VSX/Altivec vector types.
28193         (altivec_init_builtins): Add support for overloaded vector
28194         functions with V1TImode type.
28195         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
28196         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
28197         external function.
28198         (rs6000_split_128bit_ok_p): Likewise.
28199         (rs6000_handle_altivec_attribute): Create V1TImode from vector
28200         __int128_t and vector __uint128_t.
28201
28202         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
28203         and mode attributes.
28204         (VSX_M): Likewise.
28205         (VSX_M2): Likewise.
28206         (VSm): Likewise.
28207         (VSs): Likewise.
28208         (VSr): Likewise.
28209         (VSv): Likewise.
28210         (VS_scalar): Likewise.
28211         (VS_double): Likewise.
28212         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
28213
28214         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
28215         we support the ISA 2.07 128-bit integer arithmetic instructions.
28216         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
28217         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
28218         and TImode types for use with the builtin functions.
28219         (V1TI_type_node): Likewise.
28220         (unsigned_V1TI_type_node): Likewise.
28221         (intTI_type_internal_node): Likewise.
28222         (uintTI_type_internal_node): Likewise.
28223
28224         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
28225         128-bit builtin functions.
28226         (UNSPEC_VADDEUQM): Likewise.
28227         (UNSPEC_VADDECUQ): Likewise.
28228         (UNSPEC_VSUBCUQ): Likewise.
28229         (UNSPEC_VSUBEUQM): Likewise.
28230         (UNSPEC_VSUBECUQ): Likewise.
28231         (VM): Add V1TImode to vector mode iterators.
28232         (VM2): Likewise.
28233         (VI_unit): Likewise.
28234         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
28235         (altivec_vaddcuq): Likewise.
28236         (altivec_vsubuqm): Likewise.
28237         (altivec_vsubcuq): Likewise.
28238         (altivec_vaddeuqm): Likewise.
28239         (altivec_vaddecuq): Likewise.
28240         (altivec_vsubeuqm): Likewise.
28241         (altivec_vsubecuq): Likewise.
28242
28243         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
28244         mode iterators.
28245         (BOOL_128): Likewise.
28246         (BOOL_REGS_OUTPUT): Likewise.
28247         (BOOL_REGS_OP1): Likewise.
28248         (BOOL_REGS_OP2): Likewise.
28249         (BOOL_REGS_UNARY): Likewise.
28250         (BOOL_REGS_AND_CR0): Likewise.
28251
28252         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
28253         128-bit integer builtin support.
28254         (vec_vadduqm): Likewise.
28255         (vec_vaddecuq): Likewise.
28256         (vec_vaddeuqm): Likewise.
28257         (vec_vsubecuq): Likewise.
28258         (vec_vsubeuqm): Likewise.
28259         (vec_vsubcuq): Likewise.
28260         (vec_vsubuqm): Likewise.
28261
28262         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
28263         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
28264         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
28265         128-bit integer add/subtract to ISA 2.07.
28266
28267 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
28268
28269         * config/arc/arc.c (arc_predicate_delay_insns):
28270         Fix third argument passed to conditionalize_nonjump.
28271
28272 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
28273
28274         * config/aarch64/aarch64-builtins.c
28275         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
28276         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
28277         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
28278         instead of __builtin_lfloor.
28279         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
28280
28281 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
28282
28283         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
28284         (tree_ssa_ifcombine_bb_1): New function.
28285         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
28286         is an empty forwarder block to then_bb or vice versa and then_bb
28287         and else_bb are effectively swapped.
28288
28289 2014-03-12  Christian Bruel  <christian.bruel@st.com>
28290
28291         PR target/60264
28292         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
28293         REG_CFA_DEF_CFA note.
28294         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
28295         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
28296
28297 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28298
28299         PR tree-optimization/60454
28300         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
28301
28302 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28303
28304         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
28305         Do not define target_cpu_default2 to generic.
28306         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
28307         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
28308         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
28309
28310 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
28311             Marc Glisse  <marc.glisse@inria.fr>
28312
28313         PR tree-optimization/60502
28314         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
28315         instead of build_low_bits_mask.
28316
28317 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
28318
28319         PR middle-end/60482
28320         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
28321         if there are multiple uses, but op doesn't live on E edge.
28322         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
28323         clobber stmts before __builtin_unreachable.
28324
28325 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
28326
28327         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
28328         hard_frame_pointer_rtx.
28329         * cse.c (cse_insn): Remove volatile check.
28330         * cselib.c (cselib_process_insn): Likewise.
28331         * dse.c (scan_insn): Likewise.
28332
28333 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
28334
28335         * config/arc/arc.c (conditionalize_nonjump): New function,
28336         broken out of ...
28337         (arc_ifcvt): ... this.
28338         (arc_predicate_delay_insns): Use it.
28339
28340 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
28341
28342         * config/arc/predicates.md (extend_operand): During/after reload,
28343         allow const_int_operand.
28344         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
28345         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
28346         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
28347         to "i".
28348         (umulsi3_highpart_i): Likewise.
28349
28350 2014-03-11  Richard Biener  <rguenther@suse.de>
28351
28352         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
28353         Add asserts to guard possible wrong-code bugs.
28354
28355 2014-03-11  Richard Biener  <rguenther@suse.de>
28356
28357         PR tree-optimization/60429
28358         PR tree-optimization/60485
28359         * tree-ssa-structalias.c (set_union_with_increment): Properly
28360         take into account all fields that overlap the shifted vars.
28361         (do_sd_constraint): Likewise.
28362         (do_ds_constraint): Likewise.
28363         (get_constraint_for_ptr_offset): Likewise.
28364
28365 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
28366
28367         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
28368         (nios2_compute_frame_layout):
28369         Add calculation of cfun->machine->fp_save_offset.
28370         (nios2_expand_prologue): Correct setting of frame pointer register
28371         in prologue.
28372         (nios2_expand_epilogue): Update recovery of stack pointer from
28373         frame pointer accordingly.
28374         (nios2_initial_elimination_offset): Update calculation of offset
28375         for eliminating to HARD_FRAME_POINTER_REGNUM.
28376
28377 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
28378
28379         PR ipa/60457
28380         * ipa.c (symtab_remove_unreachable_nodes): Don't call
28381         cgraph_get_create_node on VAR_DECLs.
28382
28383 2014-03-10  Richard Biener  <rguenther@suse.de>
28384
28385         PR middle-end/60474
28386         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
28387
28388 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
28389
28390         * config/vms/vms.opt (vms_float_format): New variable.
28391
28392 2014-03-08  Tobias Burnus  <burnus@net-b.de>
28393
28394         * doc/invoke.texi (-fcilkplus): Update implementation status.
28395
28396 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
28397             Richard Biener  <rguenther@suse.de>
28398
28399         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
28400         consistently accross all TUs.
28401         (run_gcc): Enable -fshort-double automatically at link at link-time
28402         and disallow override.
28403
28404 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
28405
28406         PR target/58271
28407         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
28408         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
28409         if they can't be used.
28410
28411 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28412
28413         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
28414         for Solaris 11/x86 ld.
28415         * configure: Regenerate.
28416
28417 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28418
28419         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
28420         (LIB_TLS_SPEC): Save as ld_tls_libs.
28421         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
28422         (HAVE_AS_IX86_TLSLDM): New test.
28423         * configure, config.in: Regenerate.
28424         * config/i386/i386.c (legitimize_tls_address): Fall back to
28425         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
28426         cannot support TLS_MODEL_LOCAL_DYNAMIC.
28427         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
28428         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
28429
28430 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
28431
28432         * common.opt (fira-loop-pressure): Mark as optimization.
28433
28434 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
28435
28436         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
28437         an OpenMP mappable type.
28438
28439 2014-03-06  Matthias Klose  <doko@ubuntu.com>
28440
28441         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
28442         MULTILIB_OSDIRNAMES is not defined.
28443
28444 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
28445             Meador Inge  <meadori@codesourcery.com>
28446
28447         PR target/58595
28448         * config/arm/arm.c (arm_tls_symbol_p): Remove.
28449         (arm_legitimize_address): Call legitimize_tls_address for any
28450         arm_tls_referenced_p expression, handle constant addend.  Call it
28451         before testing for !TARGET_ARM.
28452         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
28453
28454 2014-03-06  Richard Biener  <rguenther@suse.de>
28455
28456         PR middle-end/60445
28457         PR lto/60424
28458         PR lto/60427
28459         Revert
28460         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
28461
28462         * tree-streamer.c (record_common_node): Assert we don't record
28463         nodes with type double.
28464         (preload_common_node): Skip type double, complex double and double
28465         pointer since it is now frontend dependent due to fshort-double option.
28466
28467 2014-03-06  Richard Biener  <rguenther@suse.de>
28468
28469         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
28470         or -fno-lto is specified and the linker has full plugin support.
28471         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
28472         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
28473         * lto-wrapper.c (merge_and_complain): Merge compile-time
28474         optimization levels.
28475         (run_gcc): And pass it through to the link options.
28476
28477 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
28478
28479         PR debug/60381
28480         Revert:
28481         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
28482         PR debug/59992
28483         * cselib.c (remove_useless_values): Skip to avoid quadratic
28484         behavior if the condition moved from...
28485         (cselib_process_insn): ... here holds.
28486
28487 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
28488
28489         PR plugins/59335
28490         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
28491         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
28492
28493         PR plugins/59335
28494         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
28495         (TM_H): Add x86-tune.def.
28496
28497 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28498
28499         * config/aarch64/aarch64.c (generic_tunings):
28500         Use cortexa57_extra_costs.
28501
28502 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
28503
28504         PR lto/60404
28505         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
28506         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
28507         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
28508         cost for in_lto_p.
28509
28510 2014-03-04  Heiher  <r@hev.cc>
28511
28512         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
28513         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
28514
28515 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
28516
28517         * config/i386/predicates.md (const2356_operand): Change to ...
28518         (const2367_operand): ... this.
28519         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
28520         const2367_operand.
28521         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
28522         (*avx512pf_scatterpf<mode>sf): Ditto.
28523         (avx512pf_scatterpf<mode>df): Ditto.
28524         (*avx512pf_scatterpf<mode>df_mask): Ditto.
28525         (*avx512pf_scatterpf<mode>df): Ditto.
28526         * config/i386/i386.c (ix86_expand_builtin): Update
28527         incorrect hint operand error message.
28528
28529 2014-03-04  Richard Biener  <rguenther@suse.de>
28530
28531         * lto-section-in.c (lto_get_section_data): Fix const cast.
28532
28533 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
28534
28535         * tree-streamer.c (record_common_node): Assert we don't record
28536         nodes with type double.
28537         (preload_common_node): Skip type double, complex double and double
28538         pointer since it is now frontend dependent due to fshort-double option.
28539
28540 2014-03-04  Richard Biener  <rguenther@suse.de>
28541
28542         PR lto/60405
28543         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
28544         (lto_input_toplevel_asms): Likewise.
28545         * lto-section-in.c (lto_get_section_data): Instead do it here
28546         for every section.
28547
28548 2014-03-04  Richard Biener  <rguenther@suse.de>
28549
28550         PR tree-optimization/60382
28551         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
28552         dead PHIs a reduction.
28553
28554 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
28555
28556         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
28557         hint value.
28558         (_mm_prefetch): Move out of GCC target("sse") pragma.
28559         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
28560         GCC target("prfchw") pragma.
28561         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
28562         for locality <= 2.
28563         * config/i386/i386.c (ix86_option_override_internal): Enable
28564         -mprfchw with -mprefetchwt1.
28565
28566 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
28567
28568         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
28569         Mark as varying.
28570
28571 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
28572
28573         * opts.h (CL_PCH_IGNORE): Define.
28574         * targhooks.c (option_affects_pch_p):
28575         Return false for options that have CL_PCH_IGNORE set.
28576         * opt-functions.awk: Process PchIgnore.
28577         * doc/options.texi: Document PchIgnore.
28578
28579         * config/arc/arc.opt (misize): Add PchIgnore property.
28580
28581 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28582
28583         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
28584         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
28585         constraint on constants to permit them being loaded into
28586         GENERAL_REGS or BASE_REGS.
28587
28588 2014-03-03  Nick Clifton  <nickc@redhat.com>
28589
28590         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
28591         anti-cacnonical alternatives.
28592         (negandhi3_real): New pattern.
28593         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
28594
28595 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
28596
28597         * config/avr/avr-mcus.def: Remove atxmega16x1.
28598         * config/avr/avr-tables.opt: Regenerate.
28599         * config/avr/t-multilib: Regenerate.
28600         * doc/avr-mmcu.texi: Regenerate.
28601
28602 2014-03-03  Tobias Grosser  <tobias@grosser.es>
28603             Mircea Namolaru  <mircea.namolaru@inria.fr>
28604
28605         PR tree-optimization/58028
28606         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
28607         scalar dimensions.
28608
28609 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28610
28611         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
28612         not handled by recognizers.
28613
28614 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
28615
28616         PR middle-end/60175
28617         * function.c (expand_function_end): Don't emit
28618         clobber_return_register sequence if clobber_after is a BARRIER.
28619         * cfgexpand.c (construct_exit_block): Append instructions before
28620         return_label to prev_bb.
28621
28622 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28623
28624         * config/rs6000/constraints.md: Document reserved use of "wc".
28625
28626 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
28627
28628         PR ipa/60150
28629         * ipa.c (function_and_variable_visibility): When dissolving comdat
28630         group, also set all symbols to local.
28631
28632 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
28633
28634         PR ipa/60306
28635
28636         Revert:
28637         2013-12-14  Jan Hubicka  <jh@suse.cz>
28638         PR middle-end/58477
28639         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
28640
28641 2014-03-02  Jon Beniston  <jon@beniston.com>
28642
28643         PR bootstrap/48230
28644         PR bootstrap/50927
28645         PR bootstrap/52466
28646         PR target/46898
28647         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
28648           (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
28649         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
28650         (simple_return, *simple_return): New patterns
28651         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
28652         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
28653
28654 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
28655
28656         * dwarf2out.c (gen_subprogram_die): Tidy.
28657
28658 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
28659
28660         PR target/60071
28661         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
28662         (*mov_t_msb_neg_negc): ... this new insn.
28663
28664 2014-02-28  Jason Merrill  <jason@redhat.com>
28665
28666         PR c++/58678
28667         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
28668         function.
28669
28670 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
28671
28672         PR c++/60314
28673         * dwarf2out.c (decltype_auto_die): New static.
28674         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
28675         (gen_type_die_with_usage): Handle 'decltype(auto)'.
28676         (is_cxx_auto): Likewise.
28677
28678 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
28679
28680         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
28681         we are not using general regs only.
28682
28683 2014-02-28  Richard Biener  <rguenther@suse.de>
28684
28685         PR target/60280
28686         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
28687         previous fix and only allow to remove trivial pre-headers
28688         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
28689         (remove_forwarder_block): Properly update the latch of a loop.
28690
28691 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
28692
28693         PR debug/59992
28694         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
28695         (cselib_preserved_hash_table): New.
28696         (preserve_constants_and_equivs): Move preserved vals to it.
28697         (cselib_find_slot): Look it up first.
28698         (cselib_init): Initialize it.
28699         (cselib_finish): Release it.
28700         (dump_cselib_table): Dump it.
28701
28702 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
28703
28704         PR debug/59992
28705         * cselib.c (remove_useless_values): Skip to avoid quadratic
28706         behavior if the condition moved from...
28707         (cselib_process_insn): ... here holds.
28708
28709 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
28710
28711         PR debug/57232
28712         * var-tracking.c (vt_initialize): Apply the same condition to
28713         preserve the CFA base value.
28714
28715 2014-02-28  Joey Ye  <joey.ye@arm.com>
28716
28717         PR target/PR60169
28718         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
28719         if reload in progress or completed.
28720
28721 2014-02-28  Tobias Burnus  <burnus@net-b.de>
28722
28723         PR middle-end/60147
28724         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
28725         NAMELIST_DECL.
28726
28727 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
28728
28729         * doc/tm.texi.in (Condition Code Status): Update documention for
28730         relative locations of cc0-setter and cc0-user.
28731
28732 2014-02-27  Jeff Law  <law@redhat.com>
28733
28734         PR rtl-optimization/52714
28735         * combine.c (try_combine): When splitting an unrecognized PARALLEL
28736         into two independent simple sets, if I3 is a jump, ensure the
28737         pattern we place into I3 is a (set (pc) ...).
28738
28739 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
28740             Jeff Law  <law@redhat.com>
28741
28742         PR rtl-optimization/49847
28743         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
28744         are in different blocks.
28745         * doc/tm.texi (Condition Code Status): Update documention for
28746         relative locations of cc0-setter and cc0-user.
28747
28748 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
28749
28750         PR target/59222
28751         * lra.c (lra_emit_add): Check SUBREG too.
28752
28753 2014-02-27  Andreas Schwab  <schwab@suse.de>
28754
28755         * config/m68k/m68k.c (m68k_option_override): Disable
28756         -flive-range-shrinkage for classic m68k.
28757         (m68k_override_options_after_change): Likewise.
28758
28759 2014-02-27  Marek Polacek  <polacek@redhat.com>
28760
28761         PR middle-end/59223
28762         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
28763         -Wmaybe-uninitialized.
28764
28765 2014-02-27  Alan Modra  <amodra@gmail.com>
28766
28767         PR target/57936
28768         * reload1.c (emit_input_reload_insns): When reload_override_in,
28769         set old to rl->in_reg when rl->in_reg is a subreg.
28770
28771 2014-02-26  Richard Biener  <rguenther@suse.de>
28772
28773         PR bootstrap/60343
28774         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
28775
28776 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
28777
28778         * common/config/i386/predicates.md (const1256_operand): Remove.
28779         (const2356_operand): New.
28780         (const_1_to_2_operand): Remove.
28781         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
28782         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
28783         (*avx512pf_gatherpf<mode>sf): Ditto.
28784         (avx512pf_gatherpf<mode>df): Ditto.
28785         (*avx512pf_gatherpf<mode>df_mask): Ditto.
28786         (*avx512pf_gatherpf<mode>df): Ditto.
28787         (avx512pf_scatterpf<mode>sf): Ditto.
28788         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
28789         (*avx512pf_scatterpf<mode>sf): Ditto.
28790         (avx512pf_scatterpf<mode>df): Ditto.
28791         (*avx512pf_scatterpf<mode>df_mask): Ditto.
28792         (*avx512pf_scatterpf<mode>df): Ditto.
28793         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
28794
28795 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
28796
28797         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
28798         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
28799         (_mm512_mask_testn_epi64_mask): Move to ...
28800         * config/i386/avx512cdintrin.h: Here.
28801         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
28802         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
28803         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
28804         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
28805         TARGET_AVX512F from TARGET_AVX512CD.
28806
28807 2014-02-26  Richard Biener  <rguenther@suse.de>
28808
28809         PR ipa/60327
28810         * ipa.c (walk_polymorphic_call_targets): Properly guard
28811         call to inline_update_overall_summary.
28812
28813 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
28814
28815         PR target/60280
28816         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
28817         and latches only if requested.  Fix latch if it is removed.
28818         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
28819         LOOPS_HAVE_PREHEADERS.
28820
28821 2014-02-25  Andrew Pinski  <apinski@cavium.com>
28822
28823         * builtins.c (expand_builtin_thread_pointer): Create a new target
28824         when the target is NULL.
28825
28826 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
28827
28828         PR rtl-optimization/60317
28829         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
28830         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
28831         * lra-assigns.c: Include params.h.
28832         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
28833         other reload pseudos considerations.
28834
28835 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28836
28837         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
28838         to use canonical form for nor<mode>3.
28839
28840 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28841
28842         PR target/55426
28843         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
28844         conversions.
28845
28846 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
28847
28848         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
28849         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
28850         (ix86_handle_option): Handle OPT_mprefetchwt1.
28851         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
28852         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
28853         PREFETCHWT1 CPUID.
28854         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28855         OPTION_MASK_ISA_PREFETCHWT1.
28856         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
28857         (PTA_PREFETCHWT1): New.
28858         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
28859         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
28860         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
28861         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
28862         (*prefetch_avx512pf_<mode>_: Change into ...
28863         (*prefetch_prefetchwt1_<mode>: This.
28864         * config/i386/i386.opt (mprefetchwt1): New.
28865         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
28866         (_mm_prefetch): Handle intent to write.
28867         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
28868
28869 2014-02-25  Richard Biener  <rguenther@suse.de>
28870
28871         PR middle-end/60291
28872         * emit-rtl.c (mem_attrs_htab): Remove.
28873         (mem_attrs_htab_hash): Likewise.
28874         (mem_attrs_htab_eq): Likewise.
28875         (set_mem_attrs): Always allocate new mem-attrs when something changed.
28876         (init_emit_once): Do not allocate mem_attrs_htab.
28877
28878 2014-02-25  Richard Biener  <rguenther@suse.de>
28879
28880         PR lto/60319
28881         * lto-opts.c (lto_write_options): Output non-explicit conservative
28882         -fwrapv, -fno-trapv and -fno-strict-overflow.
28883         * lto-wrapper.c (merge_and_complain): Handle merging those options.
28884         (run_gcc): And pass them through.
28885
28886 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
28887
28888         * sel-sched.c (calculate_new_fences): New parameter ptime.
28889         Calculate it as a maximum over all fence cycles.
28890         (sel_sched_region_2): Adjust the call to calculate_new_fences.
28891         Print the final schedule timing when sched_verbose.
28892
28893 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
28894
28895         PR rtl-optimization/60292
28896         * sel-sched.c (fill_vec_av_set): Do not reset target availability
28897         bit fot the fence instruction.
28898
28899 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
28900
28901         * calls.h: Fix typo in comment.
28902
28903 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
28904
28905         * config/pa/pa.c (pa_output_move_double): Don't valididate when
28906         adjusting offsetable addresses.
28907
28908 2014-02-24  Guozhi Wei  <carrot@google.com>
28909
28910         * sparseset.h (sparseset_pop): Fix the wrong index.
28911
28912 2014-02-24  Walter Lee  <walt@tilera.com>
28913
28914         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
28915         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
28916         triplet.
28917         * common/config/tilegx/tilegx-common.c
28918         (TARGET_DEFAULT_TARGET_FLAGS): Define.
28919         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
28920         (LINK_SPEC): Ditto.
28921         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
28922         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
28923         (tilegx_gimplify_va_arg_expr): Handle big endian.
28924         (tilegx_expand_unaligned_load): Ditto.
28925         (tilegx_expand_unaligned_store): Ditto.
28926         (TARGET_RETURN_IN_MSB): New.
28927         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
28928         (TARGET_ENDIAN_DEFAULT): New.
28929         (TARGET_BIG_ENDIAN): Handle big endian.
28930         (BYTES_BIG_ENDIAN): Ditto.
28931         (WORDS_BIG_ENDIAN): Ditto.
28932         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
28933         (ENDIAN_SPEC): New.
28934         (EXTRA_SPECS): New.
28935         * config/tilegx/tilegx.md (extv): Handle big endian.
28936         (extzv): Ditto.
28937         (insn_st<n>): Ditto.
28938         (insn_st<n>_add<bitsuffix>): Ditto.
28939         (insn_stnt<n>): Ditto.
28940         (insn_stnt<n>_add<bitsuffix>):Ditto.
28941         (vec_interleave_highv8qi): Handle big endian.
28942         (vec_interleave_highv8qi_be): New.
28943         (vec_interleave_highv8qi_le): New.
28944         (insn_v1int_h): Handle big endian.
28945         (vec_interleave_lowv8qi): Handle big endian.
28946         (vec_interleave_lowv8qi_be): New.
28947         (vec_interleave_lowv8qi_le): New.
28948         (insn_v1int_l): Handle big endian.
28949         (vec_interleave_highv4hi): Handle big endian.
28950         (vec_interleave_highv4hi_be): New.
28951         (vec_interleave_highv4hi_le): New.
28952         (insn_v2int_h): Handle big endian.
28953         (vec_interleave_lowv4hi): Handle big endian.
28954         (vec_interleave_lowv4hi_be): New.
28955         (vec_interleave_lowv4hi_le): New.
28956         (insn_v2int_l): Handle big endian.
28957         (vec_interleave_highv2si): Handle big endian.
28958         (vec_interleave_highv2si_be): New.
28959         (vec_interleave_highv2si_le): New.
28960         (insn_v4int_h): Handle big endian.
28961         (vec_interleave_lowv2si): Handle big endian.
28962         (vec_interleave_lowv2si_be): New.
28963         (vec_interleave_lowv2si_le): New.
28964         (insn_v4int_l): Handle big endian.
28965         * config/tilegx/tilegx.opt (mbig-endian): New option.
28966         (mlittle-endian): New option.
28967         * doc/install.texi: Document tilegxbe-linux.
28968         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
28969
28970 2014-02-24  Martin Jambor  <mjambor@suse.cz>
28971
28972         PR ipa/60266
28973         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
28974         there are no parameter descriptors.
28975
28976 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
28977
28978         PR rtl-optimization/60268
28979         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
28980         initialization to ...
28981         (sched_rgn_init): ... here.
28982         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
28983
28984 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
28985
28986         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
28987         names.
28988
28989 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
28990
28991         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
28992         definition.
28993
28994 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
28995
28996         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
28997         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
28998
28999 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
29000
29001         * config/microblaze/predicates.md: Add cmp_op predicate.
29002         * config/microblaze/microblaze.md: Add branch_compare instruction
29003         which uses cmp_op predicate and emits cmp insn before branch.
29004         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
29005         to microblaze_expand_conditional_branch and consolidate logic.
29006         (microblaze_expand_conditional_branch): emit branch_compare
29007         insn instead of handling cmp op separate from branch insn.
29008
29009 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29010
29011         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
29012         to permit subregs.
29013
29014 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29015
29016         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
29017         define_insn with define_expand and new define_insn
29018         *altivec_lve<VI_char>x_internal.
29019         (altivec_stve<VI_char>x): Replace define_insn with define_expand
29020         and new define_insn *altivec_stve<VI_char>x_internal.
29021         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
29022         prototype.
29023         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
29024         lve*x built-ins.
29025         (altivec_expand_stvex_be): New function.
29026
29027 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
29028
29029         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
29030         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
29031         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
29032         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
29033
29034 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
29035
29036         PR target/60298
29037         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
29038         instead of emit_move_insn.
29039
29040 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29041
29042         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
29043         vspltw with vsldoi.
29044         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
29045         gen_altivec_vsumsws.
29046
29047 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29048
29049         * config/rs6000/altivec.md (altivec_lvxl): Rename as
29050         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
29051         (altivec_lvxl_<mode>): New define_expand incorporating
29052         -maltivec=be semantics where needed.
29053         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
29054         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
29055         semantics where needed.
29056         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
29057         (altivec_stvx_<mode>): New define_expand incorporating
29058         -maltivec=be semantics where needed.
29059         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
29060         VM2 iterator instead of V4SI.
29061         (altivec_stvxl_<mode>): New define_expand incorporating
29062         -maltivec=be semantics where needed.
29063         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
29064         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
29065         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
29066         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
29067         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
29068         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
29069         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
29070         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
29071         ALTIVEC_BUILTIN_STVXL.
29072         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
29073         (altivec_expand_stvx_be): Likewise.
29074         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
29075         (altivec_expand_lvx_be): Likewise.
29076         (altivec_expand_stvx_be): Likewise.
29077         (altivec_expand_builtin): Add cases for
29078         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
29079         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
29080         (altivec_init_builtins): Add definitions for
29081         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
29082         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
29083
29084 2014-02-21  Catherine Moore  <clm@codesourcery.com>
29085
29086         * doc/invoke.texi (mvirt, mno-virt): Document.
29087         * config/mips/mips.opt (mvirt): New option.
29088         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
29089
29090 2014-02-21  Richard Biener  <rguenther@suse.de>
29091
29092         PR tree-optimization/60276
29093         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
29094         (STMT_VINFO_MIN_NEG_DIST): New macro.
29095         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
29096         STMT_VINFO_MIN_NEG_DIST.
29097         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
29098         made for negative dependence distances still hold.
29099
29100 2014-02-21  Richard Biener  <rguenther@suse.de>
29101
29102         PR middle-end/60291
29103         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
29104         DECL_INITIAL for globals not in the current function context.
29105
29106 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
29107
29108         PR tree-optimization/56490
29109         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
29110         * tree-ssa-uninit.c: Include params.h.
29111         (compute_control_dep_chain): Add num_calls argument, return false
29112         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
29113         num_calls to recursive call.
29114         (find_predicates): Change dep_chain into normal array,
29115         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
29116         variable and adjust compute_control_dep_chain caller.
29117         (find_def_preds): Likewise.
29118
29119 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
29120
29121         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
29122         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
29123
29124 2014-02-21  Nick Clifton  <nickc@redhat.com>
29125
29126         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
29127         (pushhi1): Likewise.
29128         (popqi1): Add mode to pre_dec.
29129         (pophi1): Likewise.
29130
29131 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
29132
29133         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
29134         mode for mask of V8SFmode permutation.
29135
29136 2014-02-20  Richard Henderson  <rth@redhat.com>
29137
29138         PR c++/60272
29139         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
29140         a new pseudo for OLDVAL.
29141
29142 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
29143
29144         PR target/57896
29145         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
29146         gen_reg_rtx if d->testing_p.
29147         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
29148         if d->testing_p and we will certainly return true.
29149         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
29150         if d->testing_p.
29151
29152 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
29153
29154         * emit-rtl.c (gen_reg_rtx): Assert that
29155         crtl->emit.regno_pointer_align_length is non-zero.
29156
29157 2014-02-20  Richard Henderson  <rth@redhat.com>
29158
29159         PR c++/60272
29160         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
29161         on failure the store back into EXPECT.
29162
29163 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
29164             Sandra Loosemore  <sandra@codesourcery.com>
29165
29166         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
29167         * config/nios2/nios2.c (nios2_function_profiler): Add
29168         -fPIC (flag_pic == 2) support.
29169         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
29170         (nios2_large_offset_p): New function.
29171         (nios2_unspec_reloc_p): Move up position, update to use
29172         nios2_large_offset_p.
29173         (nios2_unspec_address): Remove function.
29174         (nios2_unspec_offset): New function.
29175         (nios2_large_got_address): New function.
29176         (nios2_got_address): Add large offset support.
29177         (nios2_legitimize_tls_address): Update usage of removed and new
29178         functions.
29179         (nios2_symbol_binds_local_p): New function.
29180         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
29181         (nios2_legitimize_address): Update to use nios2_large_offset_p.
29182         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
29183         (nios2_print_operand): Merge H/L processing, add hiadj/lo
29184         processing for (const (unspec ...)).
29185         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
29186
29187 2014-02-20  Richard Biener  <rguenther@suse.de>
29188
29189         * tree-cfg.c (replace_uses_by): Mark altered BBs before
29190         doing the substitution.
29191         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
29192
29193 2014-02-20  Martin Jambor  <mjambor@suse.cz>
29194
29195         PR ipa/55260
29196         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
29197         info when checking whether lattices are bottom.
29198
29199 2014-02-20  Richard Biener  <rguenther@suse.de>
29200
29201         PR middle-end/60221
29202         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
29203         regions at -O0.
29204
29205 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
29206
29207         PR ipa/58555
29208         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
29209         parameter specifying the scaling.
29210         (inline_call): Update.
29211         (want_inline_recursively): Guard division by zero.
29212         (recursive_inlining): Update.
29213         * ipa-inline.h (clone_inlined_nodes): Update.
29214
29215 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
29216
29217         PR target/60204
29218         * config/i386/i386.c (classify_argument): Pass structures of size
29219         64 bytes or less in register.
29220
29221 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
29222             Kirill Yukhin  <kirill.yukhin@intel.com>
29223
29224         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
29225         (_mm_rcp28_round_ss): Ditto.
29226         (_mm_rsqrt28_round_sd): Ditto.
29227         (_mm_rsqrt28_round_ss): Ditto.
29228         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
29229         (_mm_rcp14_round_ss): Ditto.
29230         (_mm_rsqrt14_round_sd): Ditto.
29231         (_mm_rsqrt14_round_ss): Ditto.
29232         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
29233         the first input operand, get rid of match_dup.
29234         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
29235         attribute to sse.
29236         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
29237         Ditto.
29238         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
29239         operand as the first input operand, set type attribute.
29240         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
29241         Set type attribute.
29242         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
29243         operand as the first input operand, set type attribute.
29244
29245 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29246
29247         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
29248         bit of zero.
29249
29250 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
29251
29252         PR target/60207
29253         * config/i386/i386.c (construct_container): Remove TFmode check
29254         for X86_64_INTEGER_CLASS.
29255
29256 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
29257
29258         PR target/59794
29259         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
29260         only when -Wpsabi is enabled.
29261
29262 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
29263
29264          PR target/59799
29265         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
29266         passing arrays in registers are the same as for structs, so remove the
29267         special case for them.
29268
29269 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
29270
29271         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
29272         destination type, extract only the valid bits if the source type is not
29273         integral and has a different mode.
29274
29275 2014-02-19  Richard Biener  <rguenther@suse.de>
29276
29277         PR ipa/60243
29278         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
29279         for all calls.
29280
29281 2014-02-19  Richard Biener  <rguenther@suse.de>
29282
29283         PR ipa/60243
29284         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
29285         (ipa_modify_call_arguments): Emit an argument load explicitely and
29286         preserve virtual SSA form there and for the replacement call.
29287         Do not update SSA form nor free dominance info.
29288
29289 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
29290
29291         * ipa.c (function_and_variable_visibility): Also clear WEAK
29292         flag when disolving COMDAT_GROUP.
29293
29294 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
29295
29296         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
29297         * ipa-prop.c (ipa_set_jf_known_type): Return early when
29298         not devirtualizing.
29299         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
29300         do more sanity checks.
29301         (detect_type_change): Return true when giving up early.
29302         (compute_complex_assign_jump_func): Fix type parameter of
29303         ipa_set_ancestor_jf.
29304         (compute_complex_ancestor_jump_func): Likewise.
29305         (update_jump_functions_after_inlining): Fix updating of
29306         ancestor function.
29307         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
29308
29309 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
29310
29311         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
29312         inline clones when edge disappears.
29313
29314 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
29315
29316         PR target/60203
29317         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
29318         Split 64-bit moves into 2 patterns.  Do not allow the use of
29319         direct move for TDmode in little endian, since the decimal value
29320         has little endian bytes within a word, but the 64-bit pieces are
29321         ordered in a big endian fashion, and normal subreg's of TDmode are
29322         not allowed.
29323         (mov<mode>_64bit_dm): Likewise.
29324         (movtd_64bit_nodm): Likewise.
29325
29326 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
29327
29328         PR tree-optimization/60174
29329         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
29330         statement of an SSA_NAME that occurs in an abnormal PHI node.
29331
29332 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
29333
29334         PR sanitizer/60142
29335         * final.c (SEEN_BB): Remove.
29336         (SEEN_NOTE, SEEN_EMITTED): Renumber.
29337         (final_scan_insn): Don't force_source_line on second
29338         NOTE_INSN_BASIC_BLOCK.
29339
29340 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
29341
29342         PR target/60205
29343         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
29344         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
29345         (type_natural_mode): Warn ABI change when %zmm register is not
29346         available for AVX512F vector value passing.
29347
29348 2014-02-18  Kai Tietz  <ktietz@redhat.com>
29349
29350         PR target/60193
29351         * config/i386/i386.c (ix86_expand_prologue): Use value in
29352         rax register as displacement when restoring %r10 or %rax.
29353         Fix wrong offset when restoring both registers.
29354
29355 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
29356
29357         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
29358         assertion with conditional return.
29359
29360 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
29361             Uros Bizjak  <ubizjak@gmail.com>
29362
29363         PR driver/60233
29364         * config/i386/driver-i386.c (host_detect_local_cpu): If
29365         YMM state is not saved by the OS, also clear has_f16c.  Move
29366         CPUID 0x80000001 handling before YMM state saving checking.
29367
29368 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
29369
29370         PR rtl-optimization/58960
29371         * haifa-sched.c (alloc_global_sched_pressure_data): New,
29372         factored out from ...
29373         (sched_init): ... here.
29374         (free_global_sched_pressure_data): New, factored out from ...
29375         (sched_finish): ... here.
29376         * sched-int.h (free_global_sched_pressure_data): Declare.
29377         * sched-rgn.c (nr_regions_initial): New static global.
29378         (haifa_find_rgns): Initialize it.
29379         (schedule_region): Disable sched-pressure for the newly
29380         generated regions.
29381
29382 2014-02-17  Richard Biener  <rguenther@suse.de>
29383
29384         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
29385         release SSA defs of pattern stmts.
29386
29387 2014-02-17  Richard Biener  <rguenther@suse.de>
29388
29389         * tree-inline.c (expand_call_inline): Release the virtual
29390         operand defined by the call we are about to inline.
29391
29392 2014-02-17  Richard Biener  <rguenther@suse.de>
29393
29394         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
29395
29396 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
29397             Ilya Tocar  <ilya.tocar@intel.com>
29398
29399         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
29400         arguments order in builtin.
29401         (_mm512_permutexvar_epi64): Ditto.
29402         (_mm512_mask_permutexvar_epi64): Ditto
29403         (_mm512_maskz_permutexvar_epi32): Ditto
29404         (_mm512_permutexvar_epi32): Ditto
29405         (_mm512_mask_permutexvar_epi32): Ditto
29406
29407 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29408
29409         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
29410         (p8_vmrgow): Likewise.
29411
29412 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29413
29414         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
29415         endian targets.
29416
29417 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
29418
29419         PR target/60203
29420         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
29421         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
29422         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
29423         using direct move instructions on ISA 2.07.  Also adjust
29424         instruction length for 64-bit.
29425         (mov<mode>_64bit, TFmode/TDmode): Likewise.
29426         (mov<mode>_32bit, TFmode/TDmode): Likewise.
29427
29428 2014-02-15  Alan Modra  <amodra@gmail.com>
29429
29430         PR target/58675
29431         PR target/57935
29432         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
29433         find_replacement on parts of insn rtl that might be reloaded.
29434
29435 2014-02-15  Richard Biener  <rguenther@suse.de>
29436
29437         PR tree-optimization/60183
29438         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
29439         (tree_ssa_phiprop): Calculate and free post-dominators.
29440
29441 2014-02-14  Jeff Law  <law@redhat.com>
29442
29443         PR rtl-optimization/60131
29444         * ree.c (get_extended_src_reg): New function.
29445         (combine_reaching_defs): Use it rather than assuming location of REG.
29446         (find_and_remove_re): Verify first operand of extension is
29447         a REG before adding the insns to the copy list.
29448
29449 2014-02-14  Roland McGrath  <mcgrathr@google.com>
29450
29451         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
29452         * configure: Regenerated.
29453         * config.in: Regenerated.
29454         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
29455         instead of ASM_SHORT.
29456
29457 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
29458             Richard Earnshaw  <rearnsha@arm.com>
29459
29460         PR rtl-optimization/59535
29461         * lra-constraints.c (process_alt_operands): Encourage alternative
29462         when unassigned pseudo class is superset of the alternative class.
29463         (inherit_reload_reg): Don't inherit when optimizing for code size.
29464         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
29465         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
29466         modes not less than 4 for Thumb1.
29467
29468 2014-02-14  Kyle McMartin  <kyle@redhat.com>
29469
29470         PR pch/60010
29471         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
29472
29473 2014-02-14  Richard Biener  <rguenther@suse.de>
29474
29475         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
29476         (get_frame_arg): Drop the assert with langhook types_compatible_p.
29477         Do not strip INDIRECT_REFs.
29478
29479 2014-02-14  Richard Biener  <rguenther@suse.de>
29480
29481         PR lto/60179
29482         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
29483         DECL_FUNCTION_SPECIFIC_TARGET.
29484         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
29485         * tree-streamer-out.c (pack_ts_target_option): Remove.
29486         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
29487         (write_ts_function_decl_tree_pointers): Do not stream
29488         DECL_FUNCTION_SPECIFIC_TARGET.
29489         * tree-streamer-in.c (unpack_ts_target_option): Remove.
29490         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
29491         (lto_input_ts_function_decl_tree_pointers): Do not stream
29492         DECL_FUNCTION_SPECIFIC_TARGET.
29493
29494 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
29495
29496         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
29497         (get_initial_def_for_induction, vectorizable_induction): Ignore
29498         debug stmts when looking for exit_phi.
29499         (vectorizable_live_operation): Fix up condition.
29500
29501 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
29502
29503         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
29504         nreverse() because it changes the content of original tree list.
29505
29506 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
29507
29508         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
29509         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
29510
29511 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
29512
29513         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
29514         GNU coding standards.
29515
29516 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
29517
29518         PR debug/60152
29519         * dwarf2out.c (gen_subprogram_die): Don't call
29520         add_calling_convention_attribute if subr_die is old_die.
29521
29522 2014-02-13  Sharad Singhai  <singhai@google.com>
29523
29524         * doc/optinfo.texi: Fix order of nodes.
29525
29526 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
29527
29528         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
29529         operands[2], not operands[3].
29530
29531 2014-02-13  Richard Biener  <rguenther@suse.de>
29532
29533         PR bootstrap/59878
29534         * doc/install.texi (ISL): Update recommended version to 0.12.2,
29535         mention the possibility of an in-tree build.
29536         (CLooG): Update recommended version to 0.18.1, mention the
29537         possibility of an in-tree build and clarify that the ISL
29538         bundled with CLooG does not work.
29539
29540 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
29541
29542         PR target/43546
29543         * expr.c (compress_float_constant): If x is a hard register,
29544         extend into a pseudo and then move to x.
29545
29546 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
29547
29548         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
29549         caused by bad second argument to warning_at() with -mhotpatch and
29550         nested functions (e.g. with gfortran).
29551
29552 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
29553
29554         * opts.c (option_name): Remove "enabled by default" rider.
29555
29556 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
29557
29558         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
29559
29560 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
29561             Uros Bizjak  <ubizjak@gmail.com>
29562
29563         PR target/60151
29564         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
29565         * configure: Regenerated.
29566
29567 2014-02-12  Richard Biener  <rguenther@suse.de>
29568
29569         * vec.c (vec_prefix::calculate_allocation): Move as
29570         inline variant to vec.h.
29571         (vec_prefix::calculate_allocation_1): New out-of-line version.
29572         * vec.h (vec_prefix::calculate_allocation_1): Declare.
29573         (vec_prefix::m_has_auto_buf): Rename to ...
29574         (vec_prefix::m_using_auto_storage): ... this.
29575         (vec_prefix::calculate_allocation): Inline the easy cases
29576         and dispatch to calculate_allocation_1 which doesn't need the
29577         prefix address.
29578         (va_heap::reserve): Use gcc_checking_assert.
29579         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
29580         m_using_auto_storage.
29581         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
29582         member and adjust.
29583         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
29584         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
29585         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
29586
29587 2014-02-12  Richard Biener  <rguenther@suse.de>
29588
29589         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
29590         when we found a dependence.
29591
29592 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
29593
29594         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
29595         common code...
29596         (maybe_fold_stmt): ... into this new function.
29597         * omp-low.c (lower_omp): Update comment.
29598
29599         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
29600         last use.
29601
29602         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
29603         dereference.
29604
29605 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
29606
29607         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
29608         identifiers in comments.
29609         (cortexa53_extra_costs): Likewise.
29610         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
29611         (cortexa7_extra_costs): Likewise.
29612         (cortexa12_extra_costs): Likewise.
29613         (cortexa15_extra_costs): Likewise.
29614         (v7m_extra_costs): Likewise.
29615
29616 2014-02-12  Richard Biener  <rguenther@suse.de>
29617
29618         PR middle-end/60092
29619         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
29620         of posix_memalign being successful.
29621         (lower_stmt): Restrict lowering of posix_memalign to when
29622         -ftree-bit-ccp is enabled.
29623
29624 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
29625
29626         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
29627         arg_loc.
29628         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
29629
29630 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
29631
29632         PR rtl-optimization/60116
29633         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
29634         other_insn once the combination has been validated.
29635
29636 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
29637
29638         PR lto/59468
29639         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
29640         and wrapper.
29641         * ipa-devirt.c: Include demangle.h
29642         (odr_violation_reported): New static variable.
29643         (add_type_duplicate): Update odr_violations.
29644         (maybe_record_node): Add completep parameter; update it.
29645         (record_target_from_binfo): Add COMPLETEP parameter;
29646         update it as needed.
29647         (possible_polymorphic_call_targets_1): Likewise.
29648         (struct polymorphic_call_target_d): Add nonconstruction_targets;
29649         rename FINAL to COMPLETE.
29650         (record_targets_from_bases): Sanity check we found the binfo;
29651         fix COMPLETEP updating.
29652         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
29653         parameter, fix computing of COMPLETEP.
29654         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
29655         at LTO time do demangling.
29656         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
29657         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
29658         parameter.
29659         (gimple_get_virt_method_for_binfo): Likewise.
29660         * gimple-fold.h (gimple_get_virt_method_for_binfo,
29661         gimple_get_virt_method_for_vtable): Update prototypes.
29662
29663 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
29664
29665         PR target/49008
29666         * genautomata.c (add_presence_absence): Fix typo with
29667         {final_}presence_list.
29668
29669 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
29670
29671         PR target/60137
29672         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
29673         for VSX/Altivec vectors that land in GPR registers.
29674
29675 2014-02-11  Richard Henderson  <rth@redhat.com>
29676             Jakub Jelinek  <jakub@redhat.com>
29677
29678         PR debug/59776
29679         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
29680         around drhs if type conversion to lacc->type is not useless.
29681
29682 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29683
29684         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
29685         tuning struct.
29686         (cortex-a57.cortex-a53): Likewise.
29687         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
29688
29689 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29690
29691         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
29692         arm_restrict_it.
29693
29694 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
29695
29696         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
29697         add_options_for_arm_vfp3.
29698
29699 2014-02-11  Jeff Law  <law@redhat.com>
29700
29701         PR middle-end/54041
29702         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
29703         object with an undesirable mode.
29704
29705 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29706
29707         PR libgomp/60107
29708         * config/i386/sol2-9.h: New file.
29709         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
29710         *-*-solaris2.9*): Use it.
29711
29712 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
29713
29714         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
29715         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
29716
29717 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
29718
29719         * config/microblaze/microblaze.c: Extend mcpu version format
29720
29721 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
29722
29723         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
29724
29725 2014-02-10  Richard Henderson  <rth@redhat.com>
29726
29727         PR target/59927
29728         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
29729         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
29730         ms-abi vs -mno-accumulate-outgoing-args.
29731         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
29732         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
29733         respect to ms-abi.
29734
29735 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
29736
29737         PR middle-end/60080
29738         * cfgexpand.c (expand_asm_operands): Attach source location to
29739         ASM_INPUT rtx objects.
29740         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
29741
29742 2014-02-10  Nick Clifton  <nickc@redhat.com>
29743
29744         * config/mn10300/mn10300.c (popcount): New function.
29745         (mn10300_expand_prologue): Include saved registers in stack usage
29746         count.
29747
29748 2014-02-10  Jeff Law  <law@redhat.com>
29749
29750         PR middle-end/52306
29751         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
29752         when changing the SET_DEST of a prior insn to avoid an input reload.
29753
29754 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29755
29756         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
29757         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
29758         -mcall-openbsd, or -mcall-linux.
29759         (CC1_ENDIAN_BIG_SPEC): Remove.
29760         (CC1_ENDIAN_LITTLE_SPEC): Remove.
29761         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
29762         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
29763         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
29764         and %cc1_endian_default.
29765         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
29766
29767 2014-02-10  Richard Biener  <rguenther@suse.de>
29768
29769         PR tree-optimization/60115
29770         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
29771         MEM_REF handling.  Properly verify that the accesses are not
29772         out of the objects bound.
29773
29774 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29775
29776         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
29777         coretex to cortex.
29778
29779 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
29780
29781         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
29782         proper constants and fix formatting.
29783         (possible_polymorphic_call_targets): Fix formatting.
29784
29785 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
29786             Ilya Tocar  <ilya.tocar@intel.com>
29787
29788         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
29789         (_mm512_loadu_epi32): Renamed into...
29790         (_mm512_loadu_si512): This.
29791         (_mm512_storeu_epi32): Renamed into...
29792         (_mm512_storeu_si512): This.
29793         (_mm512_maskz_ceil_ps): Removed.
29794         (_mm512_maskz_ceil_pd): Ditto.
29795         (_mm512_maskz_floor_ps): Ditto.
29796         (_mm512_maskz_floor_pd): Ditto.
29797         (_mm512_floor_round_ps): Ditto.
29798         (_mm512_floor_round_pd): Ditto.
29799         (_mm512_ceil_round_ps): Ditto.
29800         (_mm512_ceil_round_pd): Ditto.
29801         (_mm512_mask_floor_round_ps): Ditto.
29802         (_mm512_mask_floor_round_pd): Ditto.
29803         (_mm512_mask_ceil_round_ps): Ditto.
29804         (_mm512_mask_ceil_round_pd): Ditto.
29805         (_mm512_maskz_floor_round_ps): Ditto.
29806         (_mm512_maskz_floor_round_pd): Ditto.
29807         (_mm512_maskz_ceil_round_ps): Ditto.
29808         (_mm512_maskz_ceil_round_pd): Ditto.
29809         (_mm512_expand_pd): Ditto.
29810         (_mm512_expand_ps): Ditto.
29811         * config/i386/i386.c (ix86_builtins): Remove
29812         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
29813         (bdesc_args): Ditto.
29814         * config/i386/predicates.md (const1256_operand): New.
29815         (const_1_to_2_operand): Ditto.
29816         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
29817         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
29818         (*avx512pf_gatherpf<mode>sf): Ditto.
29819         (avx512pf_gatherpf<mode>df): Ditto.
29820         (*avx512pf_gatherpf<mode>df_mask): Ditto.
29821         (*avx512pf_gatherpf<mode>df): Ditto.
29822         (avx512pf_scatterpf<mode>sf): Ditto.
29823         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
29824         (*avx512pf_scatterpf<mode>sf): Ditto.
29825         (avx512pf_scatterpf<mode>df): Ditto.
29826         (*avx512pf_scatterpf<mode>df_mask): Ditto.
29827         (*avx512pf_scatterpf<mode>df): Ditto.
29828         (avx512f_expand<mode>): Removed.
29829         (<shift_insn><mode>3<mask_name>): Change predicate type.
29830
29831 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
29832
29833         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
29834         not at the end of datarefs vector use ordered_remove to avoid
29835         reordering datarefs vector.
29836
29837         PR c/59984
29838         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
29839         mark local addressable non-static vars as GOVD_PRIVATE
29840         instead of GOVD_LOCAL.
29841         * omp-low.c (lower_omp_for): Move gimple_bind_vars
29842         and BLOCK_VARS of gimple_bind_block to new_stmt rather
29843         than copying them.
29844
29845         PR middle-end/60092
29846         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
29847         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
29848         assume_aligned or alloc_align attributes.
29849         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
29850         arguments.  Handle also assume_aligned and alloc_align attributes.
29851         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
29852         calls to functions with assume_aligned or alloc_align attributes.
29853         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
29854
29855 2014-02-08  Terry Guo  <terry.guo@arm.com>
29856
29857         * doc/invoke.texi: Document ARM -march=armv7e-m.
29858
29859 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
29860
29861         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
29862         flag on __cilkrts_rethrow builtin.
29863
29864         PR ipa/60026
29865         * ipa-cp.c (determine_versionability): Fail at -O0
29866         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
29867         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
29868
29869         Revert:
29870         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
29871
29872         PR ipa/60026
29873         * tree-inline.c (copy_forbidden): Fail for
29874         __attribute__((optimize (0))) functions.
29875
29876 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
29877
29878         * varpool.c: Include pointer-set.h.
29879         (varpool_remove_unreferenced_decls): Variables in other partitions
29880         will not be output; be however careful to not lose information
29881         about partitioning.
29882
29883 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
29884
29885         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
29886         lookup in the vtable constructor.
29887
29888 2014-02-07  Jeff Law  <law@redhat.com>
29889
29890         PR target/40977
29891         * config/m68k/m68k.md (ashldi_extsi): Turn into a
29892         define_insn_and_split.
29893
29894         * ipa-inline.c (inline_small_functions): Fix typos.
29895
29896 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
29897
29898         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
29899         (s390_can_use_return_insn): Declare.
29900         * config/s390/s390.h (EPILOGUE_USES): Define.
29901         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
29902         instructions.
29903         (s390_chunkify_start): Handle return JUMP_LABELs.
29904         (s390_early_mach): Emit a main_pool instruction on the entry edge.
29905         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
29906         (s390_can_use_return_insn): New functions.
29907         (s390_fix_long_loop_prediction): Handle conditional returns.
29908         (TARGET_SET_UP_BY_PROLOGUE): Define.
29909         * config/s390/s390.md (ANY_RETURN): New code iterator.
29910         (*creturn, *csimple_return, return, simple_return): New patterns.
29911
29912 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
29913
29914         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
29915         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
29916         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
29917         REG_CFA_RESTORE list when deciding not to restore a register.
29918
29919 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
29920
29921         * config/s390/s390.c: Include tree-pass.h and context.h.
29922         (s390_early_mach): New function, split out from...
29923         (s390_emit_prologue): ...here.
29924         (pass_data_s390_early_mach): New pass structure.
29925         (pass_s390_early_mach): New class.
29926         (s390_option_override): Create and register early_mach pass.
29927         Move to end of file.
29928
29929 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
29930
29931         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
29932         to match for the exit block.
29933
29934 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29935
29936         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
29937         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
29938         Reject misaligned operands.
29939
29940 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29941
29942         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
29943
29944 2014-02-07  Richard Biener  <rguenther@suse.de>
29945
29946         PR middle-end/60092
29947         * gimple-low.c (lower_builtin_posix_memalign): New function.
29948         (lower_stmt): Call it to lower posix_memalign in a way
29949         to make alignment info accessible.
29950
29951 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
29952
29953         PR c++/60082
29954         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
29955         __builtin_setjmp_receiver.
29956
29957 2014-02-07  Richard Biener  <rguenther@suse.de>
29958
29959         PR middle-end/60092
29960         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
29961         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
29962         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
29963         Handle BUILT_IN_POSIX_MEMALIGN.
29964         (find_func_clobbers): Likewise.
29965         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
29966         (call_may_clobber_ref_p_1): Likewise.
29967
29968 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
29969
29970         PR ipa/59918
29971         * ipa-devirt.c (record_target_from_binfo): Remove overactive
29972         sanity check.
29973
29974 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
29975
29976         PR ipa/59469
29977         * lto-cgraph.c (lto_output_node): Use
29978         symtab_get_symbol_partitioning_class.
29979         (lto_output_varpool_node): likewise.
29980         (symtab_get_symbol_partitioning_class): Move here from
29981         lto/lto-partition.c
29982         * cgraph.h (symbol_partitioning_class): Likewise.
29983         (symtab_get_symbol_partitioning_class): Declare.
29984
29985 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
29986
29987         * ggc.h (ggc_internal_cleared_alloc): New macro.
29988         * vec.h (vec_safe_copy): Handle memory stats.
29989         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
29990         * target-globals.c (save_target_globals): Likewise.
29991
29992 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
29993
29994         PR target/60077
29995         * expr.c (emit_move_resolve_push): Export; be bit more selective
29996         on when to clear alias set.
29997         * expr.h (emit_move_resolve_push): Declare.
29998         * function.h (struct function): Add tail_call_marked.
29999         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
30000         * config/i386/i386-protos.h (ix86_expand_push): Remove.
30001         * config/i386/i386.md (TImode move expander): De not call
30002         ix86_expand_push.
30003         (FP push expanders): Preserve memory attributes.
30004         * config/i386/sse.md (push<mode>1): Remove.
30005         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
30006         (ix86_expand_push): Remove.
30007         * config/i386/mmx.md (push<mode>1): Remove.
30008
30009 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
30010
30011         PR rtl-optimization/60030
30012         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
30013         lopart with paradoxical subreg before shifting it up by hprec.
30014
30015 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30016
30017         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
30018         Remove extra newline at end of file.
30019         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
30020         (arm_issue_rate): Handle cortexa57.
30021         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
30022         (cortex-a57.cortex-a53): Likewise.
30023
30024 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
30025
30026         PR target/59575
30027         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
30028         don't record in REG_FRAME_RELATED_EXPR registers not set in that
30029         bitmask.
30030         (arm_expand_prologue): Adjust all callers.
30031         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
30032         info, registers also at the lowest numbered registers side.  Use
30033         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
30034         XEXP.
30035
30036         PR debug/59992
30037         * var-tracking.c (adjust_mems): Before adding a SET to
30038         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
30039
30040 2014-02-06  Alan Modra  <amodra@gmail.com>
30041
30042         PR target/60032
30043         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
30044         change SDmode to DDmode when lra_in_progress.
30045
30046 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
30047
30048         PR middle-end/59150
30049         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
30050         free_data_ref on the dr first, and before goto again also set dr
30051         to the next dr.  For simd_lane_access, free old datarefs[i] before
30052         overwriting it.  For get_vectype_for_scalar_type failure, don't
30053         free_data_ref if simd_lane_access.
30054
30055         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
30056
30057         PR target/60062
30058         * tree.h (opts_for_fn): New inline function.
30059         (opt_for_fn): Define.
30060         * config/i386/i386.c (ix86_function_regparm): Use
30061         opt_for_fn (decl, optimize) instead of optimize.
30062
30063 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
30064
30065         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
30066         for SYMBOL_REF in large memory model.
30067
30068 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30069
30070         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
30071         and crypto support.
30072         (cortex-a57): Likewise.
30073         (cortex-a57.cortex-a53): Likewise.
30074
30075 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
30076             Kugan Vivekanandarajah  <kuganv@linaro.org>
30077
30078         * config/arm/arm.c (arm_vector_alignment_reachable): Check
30079         unaligned_access.
30080         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
30081
30082 2014-02-06  Richard Biener  <rguenther@suse.de>
30083
30084         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
30085         set_loop_copy and initialize_original_copy_tables.
30086
30087 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
30088
30089         * config/aarch64/aarch64-simd.md
30090         (aarch64_ashr_simddi): Change QI to SI.
30091
30092 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
30093             Jakub Jelinek  <jakub@redhat.com>
30094
30095         PR middle-end/60013
30096         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
30097         of the dataflow.
30098
30099 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30100
30101         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
30102         CODE_FOR_altivec_vpku[hw]um to
30103         CODE_FOR_altivec_vpku[hw]um_direct.
30104         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
30105         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
30106         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
30107         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
30108
30109 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30110
30111         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
30112         generation for -maltivec=be.
30113         (altivec_vsumsws): Simplify redundant test.
30114
30115 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30116
30117         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
30118         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
30119         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
30120         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
30121         gen_altivec_vpkuwum.
30122         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
30123         BYTES_BIG_ENDIAN.
30124         (altivec_vpks<VI_char>ss): Likewise.
30125         (altivec_vpks<VI_char>us): Likewise.
30126         (altivec_vpku<VI_char>us): Likewise.
30127         (altivec_vpku<VI_char>um): Likewise.
30128         (altivec_vpku<VI_char>um_direct): New (copy of
30129         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
30130         internal use).
30131         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
30132         target is little endian and -maltivec=be is not specified.
30133         (*altivec_vupkhs<VU_char>_direct): New (copy of
30134         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
30135         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
30136         target is little endian and -maltivec=be is not specified.
30137         (*altivec_vupkls<VU_char>_direct): New (copy of
30138         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
30139         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
30140         little endian and -maltivec=be is not specified.
30141         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
30142         little endian and -maltivec=be is not specified.
30143
30144 2014-02-05  Richard Henderson  <rth@redhat.com>
30145
30146         PR debug/52727
30147         * combine-stack-adj.c: Revert r206943.
30148         * sched-int.h (struct deps_desc): Add last_args_size.
30149         * sched-deps.c (init_deps): Initialize it.
30150         (sched_analyze_insn): Add OUTPUT dependencies between insns that
30151         contain REG_ARGS_SIZE notes.
30152
30153 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
30154
30155         * lto-cgraph.c (asm_nodes_output): Make global.
30156         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
30157         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
30158         (driver_handle_option): Handle OPT_fwpa.
30159
30160 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
30161
30162         PR ipa/59947
30163         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
30164         a comment typo and formatting issue.  If odr_hash hasn't been
30165         created, return vNULL and set *completep to false.
30166
30167         PR middle-end/57499
30168         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
30169         bb with no successors.
30170
30171 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
30172
30173         PR target/59718
30174         * doc/invoke.texi (-march): Clarify documentation for ARM.
30175         (-mtune): Likewise.
30176         (-mcpu): Likewise.
30177
30178 2014-02-05  Richard Biener  <rguenther@suse.de>
30179
30180         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
30181         when not vectorizing because of too many alias checks.
30182         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
30183         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
30184
30185 2014-02-05  Nick Clifton  <nickc@redhat.com>
30186
30187         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
30188         accept extended registers in any mode when compiling for the MN10300.
30189
30190 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
30191
30192         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
30193         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
30194         sanitization attributes.
30195         (can_inline_edge_p): Likewise.
30196         (sanitize_attrs_match_for_inline_p): New function.
30197
30198 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
30199
30200         * ipa-prop.c (detect_type_change): Shor circuit testing of
30201         type changes on THIS pointer.
30202
30203 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
30204
30205         PR target/59777
30206         * config/pa/pa.c (legitimize_tls_address): Return original address
30207         if not passed a SYMBOL_REF rtx.
30208         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
30209         addresses.
30210         (pa_emit_move_sequence): Simplify TLS source operands.
30211         (pa_legitimate_constant_p): Reject all TLS constants.
30212         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
30213         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
30214
30215 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
30216
30217         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
30218         groups when we know they are controlled by LTO.
30219         * varasm.c (default_binds_local_p_1): If object is in other partition,
30220         it will be resolved locally.
30221
30222 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30223
30224         * config/host-linux.c (linux_gt_pch_use_address): Don't
30225         use SSIZE_MAX because it is not always defined.
30226
30227 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
30228
30229         PR bootstrap/59913
30230         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
30231         threshold for pseudo splitting.
30232         (update_ebb_live_info): Process call argument hard registers and
30233         hard registers from insn definition too.
30234         (max_small_class_regs_num): New constant.
30235         (inherit_in_ebb): Update live hard regs through EBBs.  Update
30236         reloads_num only for small register classes.  Don't split for
30237         outputs of jumps.
30238
30239 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
30240
30241         PR ipa/60058
30242         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
30243         is non-null.
30244
30245 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
30246
30247         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
30248         visibility is safe.
30249
30250 2014-02-04  Marek Polacek  <polacek@redhat.com>
30251
30252         * gdbinit.in (pel): Define.
30253
30254 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30255
30256         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
30257         behavior.
30258
30259 2014-02-04  Richard Biener  <rguenther@suse.de>
30260
30261         PR lto/59723
30262         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
30263         in function context local.
30264         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
30265         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
30266         similar to LTO_imported_decl_ref.
30267
30268 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
30269
30270         PR tree-optimization/60002
30271         * cgraphclones.c (build_function_decl_skip_args): Clear
30272         DECL_LANG_SPECIFIC.
30273
30274         PR tree-optimization/60023
30275         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
30276         false to gsi_replace.
30277         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
30278         has been in some EH region and vec_stmt could throw, add
30279         vec_stmt into the same EH region.
30280         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
30281         has no lhs, ignore it.
30282         * internal-fn.c (expand_MASK_LOAD): Likewise.
30283
30284         PR ipa/60026
30285         * tree-inline.c (copy_forbidden): Fail for
30286         __attribute__((optimize (0))) functions.
30287
30288         PR other/58712
30289         * omp-low.c (simd_clone_struct_copy): If from->inbranch
30290         is set, copy one less argument.
30291         (expand_simd_clones): Don't subtract clone_info->inbranch
30292         from simd_clone_struct_alloc argument.
30293
30294         PR rtl-optimization/57915
30295         * recog.c (simplify_while_replacing): If all unary/binary/relational
30296         operation arguments are constant, attempt to simplify those.
30297
30298         PR middle-end/59261
30299         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
30300         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
30301
30302 2014-02-04  Richard Biener  <rguenther@suse.de>
30303
30304         PR tree-optimization/60012
30305         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
30306         TBAA disambiguation to all DDRs.
30307
30308 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30309
30310         PR target/59788
30311         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
30312         (LINK_SPEC): Use it for -shared, -shared-libgcc.
30313
30314 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
30315
30316         PR ipa/59882
30317         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
30318
30319 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
30320
30321         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
30322         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
30323
30324 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
30325
30326         PR ipa/59831
30327         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
30328         to figure out targets of polymorphic calls with known decl.
30329         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
30330         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
30331         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
30332         (get_polymorphic_call_info): ... here.
30333         (get_polymorphic_call_info_from_invariant): New function.
30334
30335 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
30336
30337         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
30338         lookup via vtable pointer; check for type consistency
30339         and turn inconsitent facts into UNREACHABLE.
30340         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
30341         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
30342         type inconsistent querries; return UNREACHABLE instead.
30343
30344 2014-02-03  Richard Henderson  <rth@twiddle.net>
30345
30346         PR tree-opt/59924
30347         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
30348         already processed this node.
30349         (normalize_one_pred_1): Pass along mark_set.
30350         (normalize_one_pred): Create and destroy a pointer_set_t.
30351         (normalize_one_pred_chain): Likewise.
30352
30353 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
30354
30355         PR gcov-profile/58602
30356         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
30357
30358 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
30359
30360         PR ipa/59831
30361         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
30362         -fno-devirtualize; try to devirtualize by the knowledge of
30363         virtual table pointer given by aggregate propagation.
30364         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
30365         (ipa_print_node_jump_functions): Dump also offset that
30366         is relevant for polymorphic calls.
30367         (determine_known_aggregate_parts): Add arg_type parameter; use it
30368         instead of determining the type from pointer type.
30369         (ipa_compute_jump_functions_for_edge): Update call of
30370         determine_known_aggregate_parts.
30371         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
30372         (gimple_get_virt_method_for_binfo): ... here; simplify using
30373         vtable_pointer_value_to_vtable.
30374         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
30375         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
30376         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
30377         (vtable_pointer_value_to_vtable): Break out from ...; handle also
30378         POINTER_PLUS_EXPR.
30379         (vtable_pointer_value_to_binfo): ... here.
30380         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
30381
30382 2014-02-03  Teresa Johnson  <tejohnson@google.com>
30383
30384         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
30385         redef of outer loop index variable.
30386
30387 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
30388
30389         PR c++/53017
30390         PR c++/59211
30391         * doc/extend.texi (Function Attributes): Typo.
30392
30393 2014-02-03  Cong Hou  <congh@google.com>
30394
30395         PR tree-optimization/60000
30396         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
30397         if the vectorized statement is a store.  A store statement can only
30398         appear at the end of pattern statements.
30399
30400 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
30401
30402         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
30403         (ix86_option_override_internal): Default long double to 64-bit for
30404         32-bit Bionic and to 128-bit for 64-bit Bionic.
30405
30406         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
30407         TARGET_LONG_DOUBLE_128 is true.
30408         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
30409
30410         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
30411         (mlong-double-64): Negate -mlong-double-128.
30412         (mlong-double-128): New option.
30413
30414         * config/i386/i386-c.c (ix86_target_macros): Define
30415         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
30416
30417         * doc/invoke.texi: Document -mlong-double-128.
30418
30419 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
30420
30421         PR rtl-optimization/60024
30422         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
30423
30424 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
30425
30426         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
30427
30428 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
30429
30430         PR rtl-optimization/57662
30431         * sel-sched.c (code_motion_path_driver): Do not mark already not
30432         existing blocks in the visiting bitmap.
30433
30434 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
30435
30436         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
30437         on the insn being emitted.
30438
30439 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
30440             Will Deacon  <will.deacon@arm.com>
30441
30442         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
30443
30444 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30445
30446         * config/arm/arm-tables.opt: Regenerate.
30447
30448 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30449
30450         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
30451         for vector types other than V16QImode.
30452         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
30453         define_expand, and call altivec_expand_vec_perm_le when producing
30454         code with little endian element order.
30455         (*altivec_vperm_<mode>_internal): New insn having previous
30456         behavior of altivec_vperm_<mode>.
30457         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
30458         altivec_expand_vec_perm_le when producing code with little endian
30459         element order.
30460         (*altivec_vperm_<mode>_uns_internal): New insn having previous
30461         behavior of altivec_vperm_<mode>_uns.
30462
30463 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30464
30465         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
30466         (altivec_vsumsws): Add handling for -maltivec=be with a little
30467         endian target.
30468         (altivec_vsumsws_direct): New.
30469         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
30470         gen_altivec_vsumsws.
30471
30472 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
30473
30474         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
30475         vtable_pointer_value_to_binfo): New functions.
30476         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
30477         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
30478
30479 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
30480
30481         * config/nios2/nios2.md (load_got_register): Initialize GOT
30482         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
30483         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
30484
30485 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
30486
30487         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
30488         preserverd by passthrough, do not propagate the type.
30489
30490 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
30491
30492         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
30493         (mips_atomic_assign_expand_fenv): New function.
30494         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
30495
30496 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
30497
30498         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
30499         (__builtin_mips_set_fcsr): Likewise.
30500         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
30501         MIPS_USI_FTYPE_VOID.
30502         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
30503         (mips16_expand_set_fcsr): Likewise.
30504         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
30505         (mips16_set_fcsr_stub): Likewise.
30506         (mips16_get_fcsr_one_only_stub): New class.
30507         (mips16_set_fcsr_one_only_stub): Likewise.
30508         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
30509         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
30510         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
30511         (hard_float): New availability predicate.
30512         (mips_builtins): Add get_fcsr and set_fcsr.
30513         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
30514         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
30515         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
30516         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
30517         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
30518         patterns.
30519
30520 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
30521
30522         * config/mips/mips.c (mips_one_only_stub): New class.
30523         (mips_need_mips16_rdhwr_p): Replace with...
30524         (mips16_rdhwr_stub): ...this new variable.
30525         (mips16_stub_call_address): New function.
30526         (mips16_rdhwr_one_only_stub): New class.
30527         (mips_expand_thread_pointer): Use mips16_stub_call_address.
30528         (mips_output_mips16_rdhwr): Delete.
30529         (mips_finish_stub): New function.
30530         (mips_code_end): Use it to handle rdhwr stubs.
30531
30532 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
30533
30534         PR target/60017
30535         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
30536         when calculating size of integer atomic types.
30537
30538 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
30539
30540         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
30541
30542 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
30543
30544         PR tree-optimization/60003
30545         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
30546         * profile.c (branch_prob): Use gimple_call_builtin_p
30547         to check for BUILT_IN_SETJMP_RECEIVER.
30548         * tree-inline.c (copy_bb): Call notice_special_calls.
30549
30550 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
30551
30552         PR bootstrap/59985
30553         * lra-constraints.c (process_alt_operands): Update reload_sum only
30554         on the first pass.
30555
30556 2014-01-31  Richard Henderson  <rth@redhat.com>
30557
30558         PR middle-end/60004
30559         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
30560         until after else_eh is processed.
30561
30562 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
30563
30564         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
30565         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
30566         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
30567         in smmintrin.h, remove them.
30568         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
30569         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
30570         * config/i386/i386.md (ROUND_SAE): Fix value.
30571         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
30572         (const48_operand): New.
30573         * config/i386/subst.md (round), (round_expand): Use
30574         const_4_or_8_to_11_operand.
30575         (round_saeonly), (round_saeonly_expand): Use const48_operand.
30576
30577 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
30578
30579         * config/i386/constraints.md (Yk): Swap meaning with k.
30580         * config/i386/i386.md (movhi_internal): Change Yk to k.
30581         (movqi_internal): Ditto.
30582         (*k<logic><mode>): Ditto.
30583         (*andhi_1): Ditto.
30584         (*andqi_1): Ditto.
30585         (kandn<mode>): Ditto.
30586         (*<code>hi_1): Ditto.
30587         (*<code>qi_1): Ditto.
30588         (kxnor<mode>): Ditto.
30589         (kortestzhi): Ditto.
30590         (kortestchi): Ditto.
30591         (kunpckhi): Ditto.
30592         (*one_cmplhi2_1): Ditto.
30593         (*one_cmplqi2_1): Ditto.
30594         * config/i386/sse.md (): Change k to Yk.
30595         (avx512f_load<mode>_mask): Ditto.
30596         (avx512f_blendm<mode>): Ditto.
30597         (avx512f_store<mode>_mask): Ditto.
30598         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
30599         (avx512f_storedqu<mode>_mask): Ditto.
30600         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
30601         Ditto.
30602         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
30603         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
30604         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
30605         (avx512f_maskcmp<mode>3): Ditto.
30606         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
30607         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
30608         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
30609         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
30610         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
30611         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
30612         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
30613         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
30614         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
30615         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
30616         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
30617         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
30618         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
30619         (vec_extract_lo_<mode>_maskm): Ditto.
30620         (vec_extract_hi_<mode>_maskm): Ditto.
30621         (avx512f_vternlog<mode>_mask): Ditto.
30622         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
30623         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
30624         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
30625         (avx512f_<code>v8div16qi2_mask): Ditto.
30626         (avx512f_<code>v8div16qi2_mask_store): Ditto.
30627         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
30628         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
30629         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
30630         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
30631         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
30632         (*avx512pf_gatherpf<mode>df_mask): Ditto.
30633         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
30634         (*avx512pf_scatterpf<mode>df_mask): Ditto.
30635         (avx512cd_maskb_vec_dupv8di): Ditto.
30636         (avx512cd_maskw_vec_dupv16si): Ditto.
30637         (avx512f_vpermi2var<mode>3_maskz): Ditto.
30638         (avx512f_vpermi2var<mode>3_mask): Ditto.
30639         (avx512f_vpermi2var<mode>3_mask): Ditto.
30640         (avx512f_vpermt2var<mode>3_maskz): Ditto.
30641         (*avx512f_gathersi<mode>): Ditto.
30642         (*avx512f_gathersi<mode>_2): Ditto.
30643         (*avx512f_gatherdi<mode>): Ditto.
30644         (*avx512f_gatherdi<mode>_2): Ditto.
30645         (*avx512f_scattersi<mode>): Ditto.
30646         (*avx512f_scatterdi<mode>): Ditto.
30647         (avx512f_compress<mode>_mask): Ditto.
30648         (avx512f_compressstore<mode>_mask): Ditto.
30649         (avx512f_expand<mode>_mask): Ditto.
30650         * config/i386/subst.md (mask): Change k to Yk.
30651         (mask_scalar_merge): Ditto.
30652         (sd): Ditto.
30653
30654 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
30655
30656         * doc/extend.texi (Vector Extensions): Document ?: in C++.
30657
30658 2014-01-31  Richard Biener  <rguenther@suse.de>
30659
30660         PR middle-end/59990
30661         * builtins.c (fold_builtin_memory_op): Make sure to not
30662         use a floating-point mode or a boolean or enumeral type for
30663         the copy operation.
30664
30665 2014-01-30  DJ Delorie  <dj@redhat.com>
30666
30667         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
30668         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
30669         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
30670         whenever main() has an epilogue.
30671
30672 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30673
30674         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
30675         unused variable "field".
30676         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
30677         (vsx_mergeh_<mode>): Likewise.
30678         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
30679         (altivec_vmrghh): Likewise.
30680         (altivec_vmrghw): Likewise.
30681         (altivec_vmrglb): Likewise.
30682         (altivec_vmrglh): Likewise.
30683         (altivec_vmrglw): Likewise.
30684         (altivec_vspltb): Add missing uses.
30685         (altivec_vsplth): Likewise.
30686         (altivec_vspltw): Likewise.
30687         (altivec_vspltsf): Likewise.
30688
30689 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
30690
30691         PR target/59923
30692         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
30693         frame related instructions.
30694
30695 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
30696
30697         PR rtl-optimization/59959
30698         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
30699         any reload of register whose subreg is invalid.
30700
30701 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
30702
30703         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
30704         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
30705         Add missing return type - void.
30706
30707 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30708
30709         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
30710         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
30711         remove element index adjustment for endian (now handled in vsx.md
30712         and altivec.md).
30713         (altivec_expand_vec_perm_const): Use
30714         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
30715         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
30716         (vsx_xxspltw_<mode>): Adjust element index for little endian.
30717         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
30718         define_expand and a new define_insn *altivec_vspltb_internal;
30719         adjust for -maltivec=be on a little endian target.
30720         (altivec_vspltb_direct): New.
30721         (altivec_vsplth): Divide into a define_expand and a new
30722         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
30723         little endian target.
30724         (altivec_vsplth_direct): New.
30725         (altivec_vspltw): Divide into a define_expand and a new
30726         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
30727         little endian target.
30728         (altivec_vspltw_direct): New.
30729         (altivec_vspltsf): Divide into a define_expand and a new
30730         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
30731         a little endian target.
30732
30733 2014-01-30  Richard Biener  <rguenther@suse.de>
30734
30735         PR tree-optimization/59993
30736         * tree-ssa-forwprop.c (associate_pointerplus): Check we
30737         can propagate form the earlier stmt and avoid the transform
30738         when the intermediate result is needed.
30739
30740 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
30741
30742         * README.Portability: Fix typo.
30743
30744 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
30745
30746         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
30747         comparison_operator with ordered_comparison_operator.
30748
30749 2014-01-30  Nick Clifton  <nickc@redhat.com>
30750
30751         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
30752         Rename to mn10300_store_multiple_regs.
30753         * config/mn10300/mn10300.c: Likewise.
30754         * config/mn10300/mn10300.md (store_movm): Fix typo: call
30755         store_multiple_regs.
30756         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
30757         Call mn10300_store_multiple_regs.
30758
30759 2014-01-30  Nick Clifton  <nickc@redhat.com>
30760             DJ Delorie  <dj@redhat.com>
30761
30762         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
30763         %fp 2 to keep registers after it properly word-aligned.
30764         (rl78_alloc_physical_registers_umul): Handle the case where both
30765         input operands are the same.
30766
30767 2014-01-30  Richard Biener  <rguenther@suse.de>
30768
30769         PR tree-optimization/59903
30770         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
30771         check properly.
30772
30773 2014-01-30  Jason Merrill  <jason@redhat.com>
30774
30775         PR c++/59633
30776         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
30777
30778         PR c++/59645
30779         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
30780
30781 2014-01-30  Richard Biener  <rguenther@suse.de>
30782
30783         PR tree-optimization/59951
30784         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
30785
30786 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
30787
30788         PR target/59784
30789         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
30790         SFmode to DFmode case.
30791
30792 2014-01-29  DJ Delorie  <dj@redhat.com>
30793
30794         * config/msp430/msp430.opt (-minrt): New.
30795         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
30796         if -minrt given.
30797         (ENDFILE_SPEC): Likewise.
30798
30799 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
30800
30801         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
30802         (estimate_function_body_sizes): Use it.
30803
30804 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
30805
30806         PR c++/58561
30807         * dwarf2out.c (is_cxx_auto): New.
30808         (is_base_type): Use it.
30809         (gen_type_die_with_usage): Likewise.
30810
30811 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30812
30813         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
30814         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
30815         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
30816         -maltivec=be with LE targets.
30817         (vsx_mergeh_<mode>): Likewise.
30818         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
30819         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
30820         (altivec_vmrghb): Replace with define_expand and new
30821         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
30822         (altivec_vmrghb_direct): New define_insn.
30823         (altivec_vmrghh): Replace with define_expand and new
30824         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
30825         (altivec_vmrghh_direct): New define_insn.
30826         (altivec_vmrghw): Replace with define_expand and new
30827         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
30828         (altivec_vmrghw_direct): New define_insn.
30829         (*altivec_vmrghsf): Adjust for endianness.
30830         (altivec_vmrglb): Replace with define_expand and new
30831         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
30832         (altivec_vmrglb_direct): New define_insn.
30833         (altivec_vmrglh): Replace with define_expand and new
30834         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
30835         (altivec_vmrglh_direct): New define_insn.
30836         (altivec_vmrglw): Replace with define_expand and new
30837         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
30838         (altivec_vmrglw_direct): New define_insn.
30839         (*altivec_vmrglsf): Adjust for endianness.
30840         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
30841         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
30842         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
30843         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
30844         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
30845         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
30846         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
30847         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
30848
30849 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
30850
30851         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
30852         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
30853         whitespace.
30854
30855 2014-01-29  Richard Biener  <rguenther@suse.de>
30856
30857         PR tree-optimization/58742
30858         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
30859         associate_pointerplus_align.
30860         (associate_pointerplus_diff): New function.
30861         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
30862         and associate_pointerplus_diff.
30863
30864 2014-01-29  Richard Biener  <rguenther@suse.de>
30865
30866         * lto-streamer.h (LTO_major_version): Bump to 3.
30867         (LTO_minor_version): Reset to 0.
30868
30869 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
30870
30871         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
30872         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
30873         (arm_file_start): Generate correct asm header for armv7ve.
30874         * config/arm/bpabi.h: Add multilib support for armv7ve.
30875         * config/arm/driver-arm.c: Change the architectures of cortex-a7
30876         and cortex-a15 to armv7ve.
30877         * config/arm/t-aprofile: Add multilib support for armv7ve.
30878         * doc/invoke.texi: Document -march=armv7ve.
30879
30880 2014-01-29  Richard Biener  <rguenther@suse.de>
30881
30882         PR tree-optimization/58742
30883         * tree-ssa-forwprop.c (associate_plusminus): Return true
30884         if we changed sth, defer EH cleanup to ...
30885         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
30886         (simplify_mult): New function.
30887
30888 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
30889
30890         PR middle-end/59917
30891         PR tree-optimization/59920
30892         * tree.c (build_common_builtin_nodes): Remove
30893         __builtin_setjmp_dispatcher initialization.
30894         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
30895         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
30896         instead of gsi_after_labels + manually skipping debug stmts.
30897         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
30898         ignore bbs with IFN_ABNORMAL_DISPATCHER.
30899         * tree-inline.c (copy_edges_for_bb): Remove
30900         can_make_abnormal_goto argument, instead add abnormal_goto_dest
30901         argument.  Ignore computed_goto_p stmts.  Don't call
30902         make_abnormal_goto_edges.  If a call might need abnormal edges
30903         for non-local gotos, see if it already has an edge to
30904         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
30905         with true argument, don't do anything then, otherwise add
30906         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
30907         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
30908         caller.
30909         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
30910         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
30911         (lower_stmt): Don't set data->calls_builtin_setjmp.
30912         (lower_builtin_setjmp): Adjust comment.
30913         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
30914         * tree-cfg.c (found_computed_goto): Remove.
30915         (factor_computed_gotos): Remove.
30916         (make_goto_expr_edges): Return bool, true for computed gotos.
30917         Don't call make_abnormal_goto_edges.
30918         (build_gimple_cfg): Don't set found_computed_goto, don't call
30919         factor_computed_gotos.
30920         (computed_goto_p): No longer static.
30921         (make_blocks): Don't set found_computed_goto.
30922         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
30923         (make_edges): If make_goto_expr_edges returns true, push bb
30924         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
30925         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
30926         vector.  Record mapping between bbs and OpenMP regions if there
30927         are any, adjust make_gimple_omp_edges caller.  Call
30928         handle_abnormal_edges.
30929         (make_abnormal_goto_edges): Remove.
30930         * tree-cfg.h (make_abnormal_goto_edges): Remove.
30931         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
30932         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
30933         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
30934         * internal-fn.def (ABNORMAL_DISPATCHER): New.
30935         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
30936         filling *region also set *region_idx to (*region)->entry->index.
30937
30938         PR other/58712
30939         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
30940         For REGs set ORIGINAL_REGNO.
30941
30942 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
30943
30944         * doc/md.texi: Mention that a target shouldn't implement
30945         vec_widen_(s|u)mul_even/odd pair if it is less efficient
30946         than hi/lo pair.
30947
30948 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
30949
30950         PR tree-optimization/59594
30951         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
30952         a copy of the datarefs vector rather than the vector itself.
30953
30954 2014-01-28  Jason Merrill  <jason@redhat.com>
30955
30956         PR c++/53756
30957         * dwarf2out.c (auto_die): New static.
30958         (gen_type_die_with_usage): Handle C++1y 'auto'.
30959         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
30960         on definition.
30961
30962 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
30963
30964         PR target/59672
30965         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
30966         (SPEC_X32): Likewise.
30967         (SPEC_64): Likewise.
30968         * config/i386/i386.c (ix86_option_override_internal): Turn off
30969         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
30970         for TARGET_16BIT.
30971         (x86_file_start): Output .code16gcc for TARGET_16BIT.
30972         * config/i386/i386.h (TARGET_16BIT): New macro.
30973         (TARGET_16BIT_P): Likewise.
30974         * config/i386/i386.opt: Add m16.
30975         * doc/invoke.texi: Document -m16.
30976
30977 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
30978
30979         PR preprocessor/59935
30980         * input.c (location_get_source_line): Bail out on when line number
30981         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
30982
30983 2014-01-28  Richard Biener  <rguenther@suse.de>
30984
30985         PR tree-optimization/58742
30986         * tree-ssa-forwprop.c (associate_plusminus): Handle
30987         pointer subtraction of the form (T)(P + A) - (T)P.
30988
30989 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30990
30991         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
30992         at const_int_cost.
30993
30994 2014-01-28  Richard Biener  <rguenther@suse.de>
30995
30996         Revert
30997         2014-01-28  Richard Biener  <rguenther@suse.de>
30998
30999         PR rtl-optimization/45364
31000         PR rtl-optimization/59890
31001         * var-tracking.c (local_get_addr_clear_given_value): Handle
31002         already cleared slot.
31003         (val_reset): Handle not allocated local_get_addr_cache.
31004         (vt_find_locations): Use post-order on the inverted CFG.
31005
31006 2014-01-28  Richard Biener  <rguenther@suse.de>
31007
31008         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
31009
31010 2014-01-28  Richard Biener  <rguenther@suse.de>
31011
31012         PR rtl-optimization/45364
31013         PR rtl-optimization/59890
31014         * var-tracking.c (local_get_addr_clear_given_value): Handle
31015         already cleared slot.
31016         (val_reset): Handle not allocated local_get_addr_cache.
31017         (vt_find_locations): Use post-order on the inverted CFG.
31018
31019 2014-01-28  Alan Modra  <amodra@gmail.com>
31020
31021         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
31022         * configure.ac <recursive call for build != host>: Define
31023         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
31024         and LD_FOR_BUILD too.
31025         * configure: Regenerate.
31026
31027 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
31028
31029         * config/i386/i386.c (get_builtin_code_for_version): Separate
31030         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
31031         Broadwell from Haswell.
31032
31033 2014-01-27  Steve Ellcey  <sellcey@mips.com>
31034
31035         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
31036         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
31037         * config/mips/mips.c (mips_option_override): Change setting
31038         of TARGET_DSP.
31039         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
31040         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
31041         Change from Mask to Var.
31042
31043 2014-01-27  Jeff Law  <law@redhat.com>
31044
31045         * ipa-inline.c (inline_small_functions): Fix typo.
31046
31047 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
31048
31049         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
31050         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
31051         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
31052         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
31053         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
31054         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
31055         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
31056         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
31057         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
31058         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
31059         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
31060         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
31061         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
31062         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
31063         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
31064         (_mm512_storeu_epi64): Ditto.
31065         (_mm512_cmpge_epi32_mask): Ditto.
31066         (_mm512_cmpge_epu32_mask): Ditto.
31067         (_mm512_cmpge_epi64_mask): Ditto.
31068         (_mm512_cmpge_epu64_mask): Ditto.
31069         (_mm512_cmple_epi32_mask): Ditto.
31070         (_mm512_cmple_epu32_mask): Ditto.
31071         (_mm512_cmple_epi64_mask): Ditto.
31072         (_mm512_cmple_epu64_mask): Ditto.
31073         (_mm512_cmplt_epi32_mask): Ditto.
31074         (_mm512_cmplt_epu32_mask): Ditto.
31075         (_mm512_cmplt_epi64_mask): Ditto.
31076         (_mm512_cmplt_epu64_mask): Ditto.
31077         (_mm512_cmpneq_epi32_mask): Ditto.
31078         (_mm512_cmpneq_epu32_mask): Ditto.
31079         (_mm512_cmpneq_epi64_mask): Ditto.
31080         (_mm512_cmpneq_epu64_mask): Ditto.
31081         (_mm512_expand_pd): Ditto.
31082         (_mm512_expand_ps): Ditto.
31083         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
31084         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
31085         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
31086         * config/i386/i386.c (ix86_builtins): Add
31087         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
31088         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
31089         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
31090         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
31091         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
31092         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
31093         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
31094         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
31095         IX86_BUILTIN_PMOVUSQW512_MEM.
31096         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
31097         __builtin_ia32_pmovsqd512mem_mask,
31098         __builtin_ia32_pmovqd512mem_mask,
31099         __builtin_ia32_pmovusqw512mem_mask,
31100         __builtin_ia32_pmovsqw512mem_mask,
31101         __builtin_ia32_pmovqw512mem_mask,
31102         __builtin_ia32_pmovusdw512mem_mask,
31103         __builtin_ia32_pmovsdw512mem_mask,
31104         __builtin_ia32_pmovdw512mem_mask,
31105         __builtin_ia32_pmovqb512mem_mask,
31106         __builtin_ia32_pmovusqb512mem_mask,
31107         __builtin_ia32_pmovsqb512mem_mask,
31108         __builtin_ia32_pmovusdb512mem_mask,
31109         __builtin_ia32_pmovsdb512mem_mask,
31110         __builtin_ia32_pmovdb512mem_mask.
31111         (bdesc_args): Add __builtin_ia32_expanddf512,
31112         __builtin_ia32_expandsf512.
31113         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
31114         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
31115         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
31116         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
31117         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
31118         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
31119         (avx512f_<code>v8div16qi2_mask_store): This.
31120         (avx512f_expand<mode>): New.
31121
31122 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
31123
31124         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
31125         New.
31126         (_mm512_mask_prefetch_i64gather_pd): Ditto.
31127         (_mm512_prefetch_i32scatter_pd): Ditto.
31128         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
31129         (_mm512_prefetch_i64scatter_pd): Ditto.
31130         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
31131         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
31132         (_mm512_mask_prefetch_i64gather_ps): Ditto.
31133         (_mm512_prefetch_i32scatter_ps): Ditto.
31134         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
31135         (_mm512_prefetch_i64scatter_ps): Ditto.
31136         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
31137         * config/i386/i386-builtin-types.def: Define
31138         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
31139         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
31140         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
31141         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
31142         IX86_BUILTIN_SCATTERPFQPD.
31143         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
31144         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
31145         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
31146         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
31147         __builtin_ia32_scatterpfqps.
31148         (ix86_expand_builtin): Expand new built-ins.
31149         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
31150         fix memory access data type.
31151         (*avx512pf_gatherpf<mode>_mask): Ditto.
31152         (*avx512pf_gatherpf<mode>): Ditto.
31153         (avx512pf_scatterpf<mode>): Ditto.
31154         (*avx512pf_scatterpf<mode>_mask): Ditto.
31155         (*avx512pf_scatterpf<mode>): Ditto.
31156         (GATHER_SCATTER_SF_MEM_MODE): New.
31157         (avx512pf_gatherpf<mode>df): Ditto.
31158         (*avx512pf_gatherpf<mode>df_mask): Ditto.
31159         (*avx512pf_scatterpf<mode>df): Ditto.
31160
31161 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
31162
31163         PR bootstrap/59934
31164         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
31165         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
31166         reached.
31167
31168 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
31169
31170         * common/config/arm/arm-common.c
31171         (arm_rewrite_mcpu): Handle multiple names.
31172         * config/arm/arm.h
31173         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
31174
31175 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
31176
31177         * gimple-builder.h (create_gimple_tmp): Delete.
31178
31179 2014-01-27  Christian Bruel  <christian.bruel@st.com>
31180
31181         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
31182         words comparisons.
31183
31184 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
31185
31186         * config/pa/pa.md (call): Generate indirect long calls to non-local
31187         functions when outputing 32-bit code.
31188         (call_value): Likewise except for special call to buggy powf function.
31189
31190         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
31191         portable runtime and PIC indirect calls.
31192         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
31193         and PIC call sequences.  Use ldo instead of blr to set return register
31194         in PIC call sequence.
31195
31196 2014-01-25  Walter Lee  <walt@tilera.com>
31197
31198         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
31199         avoid clobbering a live register.
31200
31201 2014-01-25  Walter Lee  <walt@tilera.com>
31202
31203         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
31204         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
31205         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
31206         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
31207
31208 2014-01-25  Walter Lee  <walt@tilera.com>
31209
31210         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
31211         arguments on even registers.
31212         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
31213         STACK_BOUNDARY.
31214         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
31215         (BIGGEST_ALIGNMENT): Ditto.
31216         (BIGGEST_FIELD_ALIGNMENT): Ditto.
31217
31218 2014-01-25  Walter Lee  <walt@tilera.com>
31219
31220         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
31221         insns before bundling.
31222         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
31223
31224 2014-01-25  Walter Lee  <walt@tilera.com>
31225
31226         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
31227         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
31228         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
31229
31230 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
31231
31232         * config/mips/constraints.md (kl): Delete.
31233         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
31234         define expands, using...
31235         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
31236         instructions for MIPS16.
31237         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
31238         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
31239
31240 2014-01-25  Walter Lee  <walt@tilera.com>
31241
31242         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
31243         (clzdi2): Ditto.
31244         (ffsdi2): Ditto.
31245
31246 2014-01-25  Walter Lee  <walt@tilera.com>
31247
31248         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
31249         (TARGET_EXPAND_TO_RTL_HOOK): Define.
31250
31251 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
31252
31253         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
31254         Handle XOR.
31255
31256 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
31257
31258         * print-rtl.c (in_call_function_usage): New var.
31259         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
31260         EXPR_LIST mode as mode and not as reg note name.
31261
31262         PR middle-end/59561
31263         * cfgloopmanip.c (copy_loop_info): If
31264         loop->warned_aggressive_loop_optimizations, make sure
31265         the flag is set in target loop too.
31266
31267 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
31268
31269         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
31270         flag_cilkplus.
31271         * builtins.def: Likewise.
31272         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
31273         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
31274         * ira.c (ira_setup_eliminable_regset): Likewise.
31275         * omp-low.c (gate_expand_omp): Likewise.
31276         (execute_lower_omp): Likewise.
31277         (diagnose_sb_0): Likewise.
31278         (gate_diagnose_omp_blocks): Likewise.
31279         (simd_clone_clauses_extract): Likewise.
31280         (gate): Likewise.
31281
31282 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31283
31284         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
31285         correction for little endian...
31286         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
31287         here.
31288
31289 2014-01-24  Jeff Law  <law@redhat.com>
31290
31291         PR tree-optimization/59919
31292         * tree-vrp.c (find_assert_locations_1): Do not register asserts
31293         for non-returning calls.
31294
31295 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
31296
31297         * common/config/aarch64/aarch64-common.c
31298         (aarch64_rewrite_mcpu): Handle multiple names.
31299         * config/aarch64/aarch64.h
31300         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
31301
31302 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
31303
31304         * input.c (add_file_to_cache_tab): Handle the case where fopen
31305         returns NULL.
31306
31307 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
31308
31309         PR target/59929
31310         * config/i386/i386.md (pushsf splitter): Get stack adjustment
31311         from push operand if code of push isn't PRE_DEC.
31312
31313 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
31314
31315         PR target/59909
31316         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
31317         -mquad-memory-atomic.  Update -mquad-memory documentation to say
31318         it is only used for non-atomic loads/stores.
31319
31320         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
31321         -mquad-memory or -mquad-memory-atomic switches.
31322
31323         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
31324         -mquad-memory-atomic to ISA 2.07 support.
31325
31326         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
31327         to separate support of normal quad word memory operations (ldq, stq)
31328         from the atomic quad word memory operations.
31329
31330         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
31331         support to separate non-atomic quad word operations from atomic
31332         quad word operations.  Disable non-atomic quad word operations in
31333         little endian mode so that we don't have to swap words after the
31334         load and before the store.
31335         (quad_load_store_p): Add comment about atomic quad word support.
31336         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
31337         options printed with -mdebug=reg.
31338
31339         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
31340         -mquad-memory-atomic as the test for whether we have quad word
31341         atomic instructions.
31342         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
31343         or -mp8-vector are used, allow byte/half-word atomic operations.
31344
31345         * config/rs6000/sync.md (load_lockedti): Insure that the address
31346         is a proper indexed or indirect address for the lqarx instruction.
31347         On little endian systems, swap the hi/lo registers after the lqarx
31348         instruction.
31349         (load_lockedpti): Use indexed_or_indirect_operand predicate to
31350         insure the address is valid for the lqarx instruction.
31351         (store_conditionalti): Insure that the address is a proper indexed
31352         or indirect address for the stqcrx. instruction.  On little endian
31353         systems, swap the hi/lo registers before doing the stqcrx.
31354         instruction.
31355         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
31356         insure the address is valid for the stqcrx. instruction.
31357
31358         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
31359         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
31360         type of quad memory support is available.
31361
31362 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
31363
31364         PR regression/59915
31365         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
31366         there is a danger of looping.
31367
31368 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
31369
31370         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
31371         force flag_ira_loop_pressure if set via command line.
31372
31373 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
31374
31375         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
31376         (ashr_simd): New builtin handling DI mode.
31377         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
31378         (aarch64_sshr_simddi): New match pattern.
31379         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
31380         (vshrd_n_s64): Likewise.
31381         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
31382
31383 2014-01-23  Nick Clifton  <nickc@redhat.com>
31384
31385         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
31386         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
31387         favour of mcu specific scripts.
31388         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
31389         430x multilibs.
31390
31391 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
31392             Alex Velenko  <Alex.Velenko@arm.com>
31393
31394         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
31395         (vaddv_s16): Likewise.
31396         (vaddv_s32): Likewise.
31397         (vaddv_u8): Likewise.
31398         (vaddv_u16): Likewise.
31399         (vaddv_u32): Likewise.
31400         (vaddvq_s8): Likewise.
31401         (vaddvq_s16): Likewise.
31402         (vaddvq_s32): Likewise.
31403         (vaddvq_s64): Likewise.
31404         (vaddvq_u8): Likewise.
31405         (vaddvq_u16): Likewise.
31406         (vaddvq_u32): Likewise.
31407         (vaddvq_u64): Likewise.
31408         (vaddv_f32): Likewise.
31409         (vaddvq_f32): Likewise.
31410         (vaddvq_f64): Likewise.
31411         (vmaxv_f32): Likewise.
31412         (vmaxv_s8): Likewise.
31413         (vmaxv_s16): Likewise.
31414         (vmaxv_s32): Likewise.
31415         (vmaxv_u8): Likewise.
31416         (vmaxv_u16): Likewise.
31417         (vmaxv_u32): Likewise.
31418         (vmaxvq_f32): Likewise.
31419         (vmaxvq_f64): Likewise.
31420         (vmaxvq_s8): Likewise.
31421         (vmaxvq_s16): Likewise.
31422         (vmaxvq_s32): Likewise.
31423         (vmaxvq_u8): Likewise.
31424         (vmaxvq_u16): Likewise.
31425         (vmaxvq_u32): Likewise.
31426         (vmaxnmv_f32): Likewise.
31427         (vmaxnmvq_f32): Likewise.
31428         (vmaxnmvq_f64): Likewise.
31429         (vminv_f32): Likewise.
31430         (vminv_s8): Likewise.
31431         (vminv_s16): Likewise.
31432         (vminv_s32): Likewise.
31433         (vminv_u8): Likewise.
31434         (vminv_u16): Likewise.
31435         (vminv_u32): Likewise.
31436         (vminvq_f32): Likewise.
31437         (vminvq_f64): Likewise.
31438         (vminvq_s8): Likewise.
31439         (vminvq_s16): Likewise.
31440         (vminvq_s32): Likewise.
31441         (vminvq_u8): Likewise.
31442         (vminvq_u16): Likewise.
31443         (vminvq_u32): Likewise.
31444         (vminnmv_f32): Likewise.
31445         (vminnmvq_f32): Likewise.
31446         (vminnmvq_f64): Likewise.
31447
31448 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
31449
31450         * config/aarch64/aarch64-simd.md
31451         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
31452         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
31453         (*aarch64_mul3_elt<mode>): Likewise.
31454         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
31455         (*aarch64_mul3_elt_to_64v2df): Likewise.
31456         (*aarch64_mla_elt<mode>): Likewise.
31457         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
31458         (*aarch64_mls_elt<mode>): Likewise.
31459         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
31460         (*aarch64_fma4_elt<mode>): Likewise.
31461         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
31462         (*aarch64_fma4_elt_to_64v2df): Likewise.
31463         (*aarch64_fnma4_elt<mode>): Likewise.
31464         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
31465         (*aarch64_fnma4_elt_to_64v2df): Likewise.
31466         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
31467         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
31468         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
31469         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
31470         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
31471         (aarch64_sqdmull_lane<mode>_internal): Likewise.
31472         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
31473
31474 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
31475
31476         * config/aarch64/aarch64-simd.md
31477         (aarch64_be_checked_get_lane<mode>): New define_expand.
31478         * config/aarch64/aarch64-simd-builtins.def
31479         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
31480         New builtin definition.
31481         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
31482         Use new safe be builtin.
31483
31484 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
31485
31486         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
31487         New define_insn.
31488         (aarch64_be_st1<mode>): Likewise.
31489         (aarch_ld1<VALL:mode>): Define_expand modified.
31490         (aarch_st1<VALL:mode>): Likewise.
31491         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
31492         (UNSPEC_ST1): Likewise.
31493
31494 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
31495
31496         * config/microblaze/microblaze.md: Add trap insn and attribute
31497
31498 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
31499
31500         PR preprocessor/58580
31501         * input.h (location_get_source_line): Take an additional line_size
31502         parameter.
31503         (void diagnostics_file_cache_fini): Declare new function.
31504         * input.c (struct fcache): New type.
31505         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
31506         New static constants.
31507         (diagnostic_file_cache_init, total_lines_num)
31508         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
31509         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
31510         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
31511         (get_next_line, read_next_line, goto_next_line, read_line_num):
31512         New static function definitions.
31513         (diagnostic_file_cache_fini): New function.
31514         (location_get_source_line): Take an additional output line_len
31515         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
31516         read_line_num.
31517         * diagnostic.c (diagnostic_finish): Call
31518         diagnostic_file_cache_fini.
31519         (adjust_line): Take an additional input parameter for the length
31520         of the line, rather than calculating it with strlen.
31521         (diagnostic_show_locus): Adjust the use of
31522         location_get_source_line and adjust_line with respect to their new
31523         signature.  While displaying a line now, do not stop at the first
31524         null byte.  Rather, display the zero byte as a space and keep
31525         going until we reach the size of the line.
31526         * Makefile.in: Add vec.o to OBJS-libcommon
31527
31528 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
31529             Ilya Tocar  <ilya.tocar@intel.com>
31530
31531         * config/i386/avx512fintrin.h (_mm512_kmov): New.
31532         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
31533         (__builtin_ia32_kmov16): Ditto.
31534         * config/i386/i386.md (UNSPEC_KMOV): New.
31535         (kmovw): Ditto.
31536
31537 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
31538
31539         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
31540         (_mm512_storeu_si512): Ditto.
31541
31542 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
31543
31544         PR target/52125
31545         * rtl.h (get_referenced_operands): Declare.
31546         * recog.c (get_referenced_operands): New function.
31547         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
31548         operands have been referenced when recording LO_SUM references.
31549
31550 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
31551
31552         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
31553
31554 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
31555
31556         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
31557         Enable for generic and recent AMD targets.
31558
31559 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
31560
31561         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
31562         ARG_SIZE note when adjustment was eliminated.
31563
31564 2014-01-22  Jeff Law  <law@redhat.com>
31565
31566         PR tree-optimization/59597
31567         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
31568         in file.  Accept new argument REGISTERING and use it to modify
31569         dump output appropriately.
31570         (register_jump_thread): Corresponding changes.
31571         (mark_threaded_blocks): Reinstate code to cancel unprofitable
31572         thread paths involving joiner blocks.  Add code to dump cancelled
31573         jump threading paths.
31574
31575 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
31576
31577         PR rtl-optimization/59477
31578         * lra-constraints.c (inherit_in_ebb): Process call for living hard
31579         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
31580
31581 2014-01-22  Tom Tromey  <tromey@redhat.com>
31582
31583         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
31584         PARAMS.
31585         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
31586
31587 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
31588
31589         PR rtl-optimization/59896
31590         * lra-constraints.c (process_alt_operands): Check unused note for
31591         matched operands of insn with no output reloads.
31592
31593 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
31594
31595         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
31596         (mips_move_from_gpr_cost): Likewise.
31597
31598 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
31599
31600         PR rtl-optimization/59858
31601         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
31602         ira_class_hard_regs_num.
31603         (process_alt_operands): Increase reject for dying matched operand.
31604
31605 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
31606
31607         PR target/59003
31608         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
31609         smaller than size, perform several stores or loads and stores
31610         at dst + count - size to store or copy all of size bytes, rather
31611         than just last modesize bytes.
31612
31613 2014-01-20  DJ Delorie  <dj@redhat.com>
31614
31615         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
31616         that CLOBBERs are REGs before propogating their values.
31617
31618 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
31619
31620         PR middle-end/59789
31621         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
31622         (cgraph_inline_failed_type): New function.
31623         * cgraph.h (DEFCIFCODE): Add type.
31624         (cgraph_inline_failed_type_t): New enum.
31625         (cgraph_inline_failed_type): New prototype.
31626         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
31627         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
31628         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
31629         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
31630         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
31631         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
31632         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
31633         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
31634         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
31635         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
31636         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
31637         OPTIMIZATION_MISMATCH.
31638         * tree-inline.c (expand_call_inline): Emit errors during
31639         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
31640
31641 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
31642
31643         PR target/59685
31644         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
31645         mode attribute in insn output.
31646
31647 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
31648
31649         * output.h (output_constant): Delete.
31650         * varasm.c (output_constant): Make private.
31651
31652 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
31653
31654         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
31655
31656 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
31657
31658         PR middle-end/59860
31659         * tree.h (fold_builtin_strcat): New prototype.
31660         * builtins.c (fold_builtin_strcat): No longer static.  Add len
31661         argument, if non-NULL, don't call c_strlen.  Optimize
31662         directly into __builtin_memcpy instead of __builtin_strcpy.
31663         (fold_builtin_2): Adjust fold_builtin_strcat caller.
31664         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
31665
31666 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
31667
31668         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
31669         for SImode_address_operand operands, having only a REG argument.
31670
31671 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
31672
31673         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
31674         loader name using mbig-endian.
31675         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
31676
31677 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
31678
31679         * doc/invoke.texi (-march): Clarify documentation for AArch64.
31680         (-mtune): Likewise.
31681         (-mcpu): Likewise.
31682
31683 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
31684
31685         * config/aarch64/aarch64-protos.h
31686         (aarch64_cannot_change_mode_class_ptr): Declare.
31687         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
31688         aarch64_cannot_change_mode_class_ptr): New.
31689         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
31690         backend hook aarch64_cannot_change_mode_class.
31691
31692 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
31693
31694         * common/config/aarch64/aarch64-common.c
31695         (aarch64_handle_option): Don't handle any option order logic here.
31696         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
31697         selected_cpu, warn on architecture version mismatch.
31698         (aarch64_override_options): Fix parsing order for option strings.
31699
31700 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
31701             Iain Sandoe  <iain@codesourcery.com>
31702
31703         PR bootstrap/59496
31704         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
31705         warning.  Amend comment to reflect current functionality.
31706
31707 2014-01-20  Richard Biener  <rguenther@suse.de>
31708
31709         PR middle-end/59860
31710         * builtins.c (fold_builtin_strcat): Remove case better handled
31711         by tree-ssa-strlen.c.
31712
31713 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
31714
31715         * config/aarch64/aarch64.opt
31716         (mcpu, march, mtune): Make case-insensitive.
31717
31718 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
31719
31720         PR target/59880
31721         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
31722         if operands[1] is a REG or ZERO_EXTEND of a REG.
31723
31724 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
31725
31726         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
31727
31728 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
31729
31730         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
31731         long non-pic millicode calls.
31732
31733 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
31734
31735         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
31736
31737 2014-01-19  Kito Cheng  <kito@0xlab.org>
31738
31739         * builtins.c (expand_movstr): Check movstr expand done or fail.
31740
31741 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
31742             H.J. Lu  <hongjiu.lu@intel.com>
31743
31744         PR target/59379
31745         * config/i386/i386.md (*lea<mode>): Zero-extend return register
31746         to DImode for zero-extended addresses.
31747
31748 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
31749
31750         PR rtl-optimization/57763
31751         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
31752         on the new indirect jump_insn and increment LABEL_NUSES (label).
31753
31754 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
31755
31756         PR bootstrap/59580
31757         PR bootstrap/59583
31758         * config.gcc (x86_archs): New variable.
31759         (x86_64_archs): Likewise.
31760         (x86_cpus): Likewise.
31761         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
31762         --with-arch/--with-cpu= options.
31763         Support --with-arch=/--with-cpu={nehalem,westmere,
31764         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
31765
31766 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
31767
31768         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
31769         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
31770
31771 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
31772
31773         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
31774
31775 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
31776
31777         PR target/58944
31778         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
31779         clear cpp_get_options (parse_in)->warn_unused_macros for
31780         ix86_target_macros_internal with cpp_define.
31781
31782 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
31783
31784         * jump.c (delete_related_insns): Keep (use (insn))s.
31785         * reorg.c (redundant_insn): Check for barriers too.
31786
31787 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
31788
31789         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
31790
31791 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
31792
31793         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
31794         call to $$dyncall when TARGET_LONG_CALLS is true.
31795
31796 2014-01-17  Jeff Law  <law@redhat.com>
31797
31798         * ree.c (combine_set_extension): Temporarily disable test for
31799         changing number of hard registers.
31800
31801 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
31802
31803         PR middle-end/58125
31804         * ipa-inline-analysis.c (inline_free_summary):
31805         Do not free summary of aliases.
31806
31807 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
31808
31809         PR middle-end/59706
31810         * gimplify.c (gimplify_expr): Use create_tmp_var
31811         instead of create_tmp_var_raw.  If cond doesn't have
31812         integral type, don't add the IFN_ANNOTATE builtin at all.
31813
31814 2014-01-17  Martin Jambor  <mjambor@suse.cz>
31815
31816         PR ipa/59736
31817         * ipa-cp.c (prev_edge_clone): New variable.
31818         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
31819         Also resize prev_edge_clone vector.
31820         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
31821         (ipcp_edge_removal_hook): New function.
31822         (ipcp_driver): Register ipcp_edge_removal_hook.
31823
31824 2014-01-17  Andrew Pinski  <apinski@cavium.com>
31825             Steve Ellcey  <sellcey@mips.com>
31826
31827         PR target/59462
31828         * config/mips/mips.c (mips_print_operand): Check operand mode instead
31829         of operator mode.
31830
31831 2014-01-17  Jeff Law  <law@redhat.com>
31832
31833         PR middle-end/57904
31834         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
31835         so that pass_ccp runs first.
31836
31837 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
31838
31839         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
31840         (ix86_adjust_cost): Use !TARGET_XXX.
31841         (do_reorder_for_imul): Likewise.
31842         (swap_top_of_ready_list): Likewise.
31843         (ix86_sched_reorder): Likewise.
31844
31845 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
31846
31847         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
31848         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
31849         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
31850         (intel_memset): New.  Duplicate slm_memset.
31851         (intel_cost): New.  Duplicate slm_cost.
31852         (m_INTEL): New macro.
31853         (processor_target_table): Add "intel".
31854         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
31855         with PROCESSOR_INTEL for "intel".
31856         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
31857         PROCESSOR_SILVERMONT.
31858         (ix86_issue_rate): Likewise.
31859         (ix86_adjust_cost): Likewise.
31860         (ia32_multipass_dfa_lookahead): Likewise.
31861         (swap_top_of_ready_list): Likewise.
31862         (ix86_sched_reorder): Likewise.
31863         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
31864         instead of TARGET_OPT_AGU.
31865         * config/i386/i386.h (TARGET_INTEL): New.
31866         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
31867         (processor_type): Add PROCESSOR_INTEL.
31868         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
31869         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
31870
31871 2014-01-17  Marek Polacek  <polacek@redhat.com>
31872
31873         PR c/58346
31874         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
31875         size is zero.
31876
31877 2014-01-17  Richard Biener  <rguenther@suse.de>
31878
31879         PR tree-optimization/46590
31880         * opts.c (default_options_table): Add entries for
31881         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
31882         all enabled at -O1 but not for -Og.
31883         * common.opt (fbranch-count-reg): Remove Init(1).
31884         (fmove-loop-invariants): Likewise.
31885         (ftree-pta): Likewise.
31886
31887 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
31888
31889         * config/i386/i386.c (ix86_data_alignment): For compatibility with
31890         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
31891         decls to at least the GCC 4.8 used alignments.
31892
31893         PR fortran/59440
31894         * tree-nested.c (convert_nonlocal_reference_stmt,
31895         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
31896         of GIMPLE_BIND stmts, adjust associated decls.
31897
31898 2014-01-17  Richard Biener  <rguenther@suse.de>
31899
31900         PR tree-optimization/46590
31901         * vec.h (vec<>::bseach): New member function implementing
31902         binary search according to C89 bsearch.
31903         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
31904         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
31905         bitmap pointer again.  Make accesses_in_loop a flat array.
31906         (mem_ref_obstack): New global.
31907         (outermost_indep_loop): Adjust for mem_ref->stored changes.
31908         (mark_ref_stored): Likewise.
31909         (ref_indep_loop_p_2): Likewise.
31910         (set_ref_stored_in_loop): New helper function.
31911         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
31912         (memref_free): Adjust.
31913         (record_mem_ref_loc): Simplify.
31914         (gather_mem_refs_stmt): Adjust.
31915         (sort_locs_in_loop_postorder_cmp): New function.
31916         (analyze_memory_references): Sort accesses_in_loop after
31917         loop postorder number.
31918         (find_ref_loc_in_loop_cmp): New function.
31919         (for_all_locs_in_loop): Find relevant cluster of locs in
31920         accesses_in_loop and iterate without recursion.
31921         (execute_sm): Avoid uninit warning.
31922         (struct ref_always_accessed): Simplify.
31923         (ref_always_accessed::operator ()): Likewise.
31924         (ref_always_accessed_p): Likewise.
31925         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
31926         loop postorder numbers here.
31927         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
31928         numbers.
31929
31930 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
31931
31932         PR c++/57945
31933         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
31934         on decls for which assemble_alias has been called.
31935
31936 2014-01-17  Nick Clifton  <nickc@redhat.com>
31937
31938         * config/msp430/msp430.opt: (mcpu): New option.
31939         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
31940         (msp430_option_override): Parse target_cpu.  If the MCU name
31941         matches a generic string, clear target_mcu.
31942         (msp430_attr): Allow numeric interrupt values up to 63.
31943         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
31944         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
31945         option.
31946         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
31947         Add mcpu matches.
31948         * config/msp430/msp430.md (popm): Use %J rather than %I.
31949         (addsi3): Use msp430_nonimmediate_operand for operand 2.
31950         (addhi_cy_i): Use immediate_operand for operand 2.
31951         * doc/invoke.texi: Document -mcpu option.
31952
31953 2014-01-17  Richard Biener  <rguenther@suse.de>
31954
31955         PR rtl-optimization/38518
31956         * df.h (df_analyze_loop): Declare.
31957         * df-core.c: Include cfgloop.h.
31958         (df_analyze_1): Split out main part of df_analyze.
31959         (df_analyze): Adjust.
31960         (loop_inverted_post_order_compute): New function.
31961         (loop_post_order_compute): Likewise.
31962         (df_analyze_loop): New function avoiding whole-function
31963         postorder computes.
31964         * loop-invariant.c (find_defs): Use df_analyze_loop.
31965         (find_invariants): Adjust.
31966         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
31967
31968 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
31969
31970         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
31971         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
31972
31973 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
31974
31975         * ipa-ref.c (ipa_remove_stmt_references): Fix references
31976         traversal when removing references.
31977
31978 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
31979
31980         PR ipa/59775
31981         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
31982
31983 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
31984
31985         PR middle-end/56791
31986         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
31987         pushing a reload for an autoinc when we had previously reloaded an
31988         inner part of the address.
31989
31990 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
31991
31992         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
31993         field.
31994         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
31995         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
31996         when not giving up or versioning for alias only because of
31997         loop->safelen.
31998         (vect_analyze_data_ref_dependences): Set to true.
31999         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
32000         is a GIMPLE_PHI.
32001         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
32002         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
32003         to the condition.
32004
32005         PR middle-end/58344
32006         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
32007
32008         PR target/59839
32009         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
32010         operand 0 predicate for gathers, use a new pseudo as subtarget.
32011
32012 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
32013
32014         PR middle-end/59609
32015         * lra-constraints.c (process_alt_operands): Add printing debug info.
32016         Check absence of input/output reloads for matched operands too.
32017
32018 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
32019
32020         PR rtl-optimization/59835
32021         * ira.c (ira_init_register_move_cost): Increase cost for
32022         impossible modes.
32023
32024 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
32025
32026         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
32027
32028 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
32029
32030         PR target/59780
32031         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
32032         non-register objects.  Use gen_(high/low)part more consistently.
32033         Fix assertions.
32034
32035 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
32036
32037         PR target/59844
32038         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
32039         endian support, remove tests for WORDS_BIG_ENDIAN.
32040         (p8_mfvsrd_3_<mode>): Likewise.
32041         (reload_gpr_from_vsx<mode>): Likewise.
32042         (reload_gpr_from_vsxsf): Likewise.
32043         (p8_mfvsrd_4_disf): Likewise.
32044
32045 2014-01-16  Richard Biener  <rguenther@suse.de>
32046
32047         PR rtl-optimization/46590
32048         * lcm.c (compute_antinout_edge): Use postorder iteration.
32049         (compute_laterin): Use inverted postorder iteration.
32050
32051 2014-01-16  Nick Clifton  <nickc@redhat.com>
32052
32053         PR middle-end/28865
32054         * varasm.c (output_constant): Return the number of bytes actually
32055         emitted.
32056         (output_constructor_array_range): Update the field size with the
32057         number of bytes emitted by output_constant.
32058         (output_constructor_regular_field): Likewise.  Also do not
32059         complain if the total number of bytes emitted is now greater
32060         than the expected fieldpos.
32061         * output.h (output_constant): Update prototype and descriptive comment.
32062
32063 2014-01-16  Marek Polacek  <polacek@redhat.com>
32064
32065         PR middle-end/59827
32066         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
32067         it is error_mark_node.
32068
32069 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
32070
32071         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
32072         VALID_AVX256_REG_OR_OI_MODE.
32073
32074 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
32075
32076         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
32077         current procedure should be profiled.
32078
32079 2014-01-15  Andrew Pinski  <apinski@cavium.com>
32080
32081         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
32082         of moving from/to the STACK_REG register class.
32083
32084 2014-01-15  Richard Henderson  <rth@redhat.com>
32085
32086         PR debug/54694
32087         * reginfo.c (global_regs_decl): Globalize.
32088         * rtl.h (global_regs_decl): Declare.
32089         * ira.c (do_reload): Diagnose frame_pointer_needed and it
32090         reserved via global_regs.
32091
32092 2014-01-15  Teresa Johnson  <tejohnson@google.com>
32093
32094         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
32095
32096 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
32097
32098         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
32099         and vmulosh rather than call gen_vec_widen_smult_*.
32100         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
32101         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
32102         (vec_widen_smult_even_v16qi): Likewise.
32103         (vec_widen_umult_even_v8hi): Likewise.
32104         (vec_widen_smult_even_v8hi): Likewise.
32105         (vec_widen_umult_odd_v16qi): Likewise.
32106         (vec_widen_smult_odd_v16qi): Likewise.
32107         (vec_widen_umult_odd_v8hi): Likewise.
32108         (vec_widen_smult_odd_v8hi): Likewise.
32109         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
32110         vmuloub rather than call gen_vec_widen_umult_*.
32111         (vec_widen_umult_lo_v16qi): Likewise.
32112         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
32113         vmulosb rather than call gen_vec_widen_smult_*.
32114         (vec_widen_smult_lo_v16qi): Likewise.
32115         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
32116         rather than call gen_vec_widen_umult_*.
32117         (vec_widen_umult_lo_v8hi): Likewise.
32118         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
32119         rather than call gen_vec_widen_smult_*.
32120         (vec_widen_smult_lo_v8hi): Likewise.
32121
32122 2014-01-15  Jeff Law  <law@redhat.com>
32123
32124         PR tree-optimization/59747
32125         * ree.c (find_and_remove_re): Properly handle case where a second
32126         eliminated extension requires widening a copy created for elimination
32127         of a prior extension.
32128         (combine_set_extension): Ensure that the number of hard regs needed
32129         for a destination register does not change when we widen it.
32130
32131 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
32132
32133         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
32134         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
32135         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
32136         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
32137         (avr-*-rtems*): Likewise.
32138         (bfin*-rtems*): Likewise.
32139         (moxie-*-rtems*): Likewise.
32140         (h8300-*-rtems*): Likewise.
32141         (i[34567]86-*-rtems*): Likewise.
32142         (lm32-*-rtems*): Likewise.
32143         (m32r-*-rtems*): Likewise.
32144         (m68k-*-rtems*): Likewise.
32145         (microblaze*-*-rtems*): Likewise.
32146         (mips*-*-rtems*): Likewise.
32147         (powerpc-*-rtems*): Likewise.
32148         (sh-*-rtems*): Likewise.
32149         (sparc-*-rtems*): Likewise.
32150         (sparc64-*-rtems*): Likewise.
32151         (v850-*-rtems*): Likewise.
32152         (m32c-*-rtems*): Likewise.
32153
32154 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
32155
32156         PR rtl-optimization/59511
32157         * ira.c (ira_init_register_move_cost): Use memory costs for some
32158         cases of register move cost calculations.
32159         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
32160         instead of BB frequency.
32161         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
32162         * lra-assigns.c (find_hard_regno_for): Ditto.
32163
32164 2014-01-15  Richard Biener  <rguenther@suse.de>
32165
32166         PR tree-optimization/59822
32167         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
32168         (vectorizable_load): Use it to hoist defs of uses of invariant
32169         loads out of the loop.
32170
32171 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
32172             Kugan Vivekanandarajah  <kuganv@linaro.org>
32173
32174         PR target/59695
32175         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
32176         truncation.
32177
32178 2014-01-15  Richard Biener  <rguenther@suse.de>
32179
32180         PR rtl-optimization/59802
32181         * lcm.c (compute_available): Use inverted postorder to seed
32182         the initial worklist.
32183
32184 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32185
32186         PR target/59803
32187         * config/s390/s390.c (s390_preferred_reload_class): Don't return
32188         ADDR_REGS for invalid symrefs in non-PIC code.
32189
32190 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
32191
32192         PR other/58712
32193         * builtins.c (determine_block_size): Initialize *probable_max_size
32194         even if len_rtx is CONST_INT.
32195
32196 2014-01-14  Andrew Pinski  <apinski@cavium.com>
32197
32198         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
32199         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
32200         (cortexa53_tunings): Likewise.
32201         (aarch64_sched_issue_rate): New function.
32202         (TARGET_SCHED_ISSUE_RATE): Define.
32203
32204 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
32205
32206         * ira-costs.c (find_costs_and_classes): Add missed
32207         ira_init_register_move_cost_if_necessary.
32208
32209 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
32210
32211         PR target/59787
32212         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
32213
32214 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
32215
32216         PR target/59794
32217         * config/i386/i386.c (type_natural_mode): Add a bool parameter
32218         to indicate if type is used for function return value.  Warn ABI
32219         change if the vector mode isn't available for function return value.
32220         (ix86_function_arg_advance): Pass false to type_natural_mode.
32221         (ix86_function_arg): Likewise.
32222         (ix86_gimplify_va_arg): Likewise.
32223         (function_arg_32): Don't warn ABI change.
32224         (ix86_function_value): Pass true to type_natural_mode.
32225         (ix86_return_in_memory): Likewise.
32226         (ix86_struct_value_rtx): Removed.
32227         (TARGET_STRUCT_VALUE_RTX): Likewise.
32228
32229 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
32230
32231         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
32232         converting a conditional jump into a conditional return.
32233
32234 2014-01-14  Richard Biener  <rguenther@suse.de>
32235
32236         PR tree-optimization/58921
32237         PR tree-optimization/59006
32238         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
32239         hoisting invariant stmts.
32240         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
32241         invariant loads on the preheader edge if possible.
32242
32243 2014-01-14  Joey Ye  <joey.ye@arm.com>
32244
32245         * doc/plugin.texi (Building GCC plugins): Update to C++.
32246
32247 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
32248
32249         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
32250         (_mm_rcp28_round_ss): Ditto.
32251         (_mm_rsqrt28_round_sd): Ditto.
32252         (_mm_rsqrt28_round_ss): Ditto.
32253         (_mm_rcp28_sd): Ditto.
32254         (_mm_rcp28_ss): Ditto.
32255         (_mm_rsqrt28_sd): Ditto.
32256         (_mm_rsqrt28_ss): Ditto.
32257         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
32258         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
32259         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
32260         (IX86_BUILTIN_RCP28SD): Ditto.
32261         (IX86_BUILTIN_RCP28SS): Ditto.
32262         (IX86_BUILTIN_RSQRT28SD): Ditto.
32263         (IX86_BUILTIN_RSQRT28SS): Ditto.
32264         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
32265         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
32266         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
32267         (ix86_expand_special_args_builtin): Expand new FTYPE.
32268         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
32269         (srcp14<mode>): Make insn unary.
32270         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
32271         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
32272         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
32273         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
32274         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
32275         Fix rounding: make it SAE only.
32276         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
32277         Ditto.
32278         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
32279         Ditto.
32280         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
32281         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
32282         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
32283         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
32284         (round_saeonly_mask_scalar_operand4): Ditto.
32285         (round_saeonly_mask_scalar_op3): Ditto.
32286         (round_saeonly_mask_scalar_op4): Ditto.
32287
32288 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32289
32290         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
32291         Implement -maltivec=be for vec_insert and vec_extract.
32292
32293 2014-01-10  DJ Delorie  <dj@redhat.com>
32294
32295         * config/msp430/msp430.md (call_internal): Don't allow memory
32296         references with SP as the base register.
32297         (call_value_internal): Likewise.
32298         * config/msp430/constraints.md (Yc): New.  For memory references
32299         that don't use SP as a base register.
32300
32301         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
32302         "an integer without a # prefix"
32303         * config/msp430/msp430.md (epilogue_helper): Use it.
32304
32305 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
32306
32307         PR target/59617
32308         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
32309         AVX512F gather builtins.
32310         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
32311         on gather decls with INTEGER_TYPE masktype.
32312         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
32313         directly into the builtin rather than hoisting it before loop.
32314
32315         PR tree-optimization/59387
32316         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
32317         (scev_const_prop): If folded_casts and type has undefined overflow,
32318         use force_gimple_operand instead of force_gimple_operand_gsi and
32319         for each added stmt if it is assign with
32320         arith_code_with_undefined_signed_overflow, call
32321         rewrite_to_defined_overflow.
32322         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
32323         gimple-fold.h instead.
32324         (arith_code_with_undefined_signed_overflow,
32325         rewrite_to_defined_overflow): Moved to ...
32326         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
32327         rewrite_to_defined_overflow): ... here.  No longer static.
32328         Include gimplify-me.h.
32329         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
32330         rewrite_to_defined_overflow): New prototypes.
32331
32332 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32333
32334         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
32335
32336 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
32337
32338         * builtins.c (get_object_alignment_2): Minor tweak.
32339         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
32340
32341 2014-01-13  Christian Bruel  <christian.bruel@st.com>
32342
32343         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
32344         optimized non constant lengths.
32345
32346 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
32347
32348         PR libgomp/59194
32349         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
32350         load as __atomic_load_N if possible.
32351
32352 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
32353
32354         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
32355         target parameter.
32356         (rs6000_expand_builtin): Adjust call.
32357
32358 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
32359
32360         PR target/58115
32361         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
32362         * config/rs6000/rs6000.c: Include target-globals.h.
32363         (rs6000_set_current_function): Instead of doing target_reinit
32364         unconditionally, use save_target_globals_default_opts and
32365         restore_target_globals.
32366
32367         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
32368         FPSCR.
32369         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
32370         (rs6000_expand_builtin): Handle mffs and mtfsf.
32371         (rs6000_init_builtins): Define mffs and mtfsf.
32372         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
32373         (rs6000_mffs): New pattern.
32374         (rs6000_mtfsf): New pattern.
32375
32376 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
32377
32378         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
32379         Start narrowing with START.  Apply candidate-use pair
32380         and check overall cost in narrowing.
32381         (iv_ca_prune): Pass new argument.
32382
32383 2014-01-10  Jeff Law  <law@redhat.com>
32384
32385         PR middle-end/59743
32386         * ree.c (combine_reaching_defs): Ensure the defining statement
32387         occurs before the extension when optimizing extensions with
32388         different source and destination hard registers.
32389
32390 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
32391
32392         PR ipa/58585
32393         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
32394         vtables into the type inheritance graph.
32395
32396 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
32397
32398         PR rtl-optimization/59754
32399         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
32400         modes in the REGNO != REGNO case.
32401
32402 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32403
32404         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
32405
32406 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
32407
32408         PR tree-optimization/59745
32409         * tree-predcom.c (tree_predictive_commoning_loop): Call
32410         free_affine_expand_cache if giving up because components is NULL.
32411
32412         * target-globals.c (save_target_globals): Allocate < 4KB structs using
32413         GC in payload of target_globals struct instead of allocating them on
32414         the heap and the larger structs separately using GC.
32415         * target-globals.h (struct target_globals): Make regs, hard_regs,
32416         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
32417         of GTY((skip)) and change type to void *.
32418         (reset_target_globals): Cast loads from those fields to corresponding
32419         types.
32420
32421 2014-01-10  Steve Ellcey  <sellcey@mips.com>
32422
32423         PR plugins/59335
32424         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
32425         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
32426         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
32427
32428 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
32429
32430         PR target/59744
32431         * aarch64-modes.def (CC_Zmode): New flags mode.
32432         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
32433         represents an equality.
32434         (aarch64_get_condition_code): Handle CC_Zmode.
32435         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
32436
32437 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32438
32439         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
32440         extraction in good case.
32441
32442 2014-01-10  Richard Biener  <rguenther@suse.de>
32443
32444         PR tree-optimization/59374
32445         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
32446         checking after SLP discovery.  Mark stmts not participating
32447         in any SLP instance properly.
32448
32449 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32450
32451         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
32452         when handling a SET rtx.
32453
32454 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32455
32456         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
32457         (cortex-a57): Likewise.
32458         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
32459
32460 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32461
32462         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
32463         non-iwmmxt builtins.
32464
32465 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
32466
32467         PR ipa/58252
32468         PR ipa/59226
32469         * ipa-devirt.c record_target_from_binfo): Take as argument
32470         stack of binfos and lookup matching one for virtual inheritance.
32471         (possible_polymorphic_call_targets_1): Update.
32472
32473 2014-01-10  Huacai Chen  <chenhc@lemote.com>
32474
32475         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
32476         kernel strings for Loongson-2E/2F/3A.
32477
32478 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
32479
32480         PR middle-end/59670
32481         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
32482         is_gimple_call before calling gimple_call_internal_p.
32483
32484 2014-01-09  Steve Ellcey  <sellcey@mips.com>
32485
32486         * Makefile.in (TREE_FLOW_H): Remove.
32487         (TREE_SSA_H): Add file names from tree-flow.h.
32488         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
32489         * tree.h: Remove tree-flow.h reference.
32490         * hash-table.h: Remove tree-flow.h reference.
32491         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
32492         reference with tree-ssa-loop.h.
32493
32494 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32495
32496         * doc/invoke.texi: Add -maltivec={be,le} options, and document
32497         default element-order behavior for -maltivec.
32498         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
32499         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
32500         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
32501         when targeting big endian, at least for now.
32502         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
32503
32504 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
32505
32506         PR middle-end/47735
32507         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
32508         var satisfies use_register_for_decl, just take into account type
32509         alignment, rather than decl alignment.
32510
32511         PR tree-optimization/59622
32512         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
32513         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
32514         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
32515         Don't devirtualize for inplace at all.  For targets.length () == 1,
32516         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
32517
32518 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
32519
32520         * config/i386/i386.md (cpu): Remove the unused btver1.
32521
32522 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
32523
32524         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
32525
32526 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
32527
32528         PR target/58115
32529         * tree-core.h (struct target_globals): New forward declaration.
32530         (struct tree_target_option): Add globals field.
32531         * tree.h (TREE_TARGET_GLOBALS): Define.
32532         (prepare_target_option_nodes_for_pch): New prototype.
32533         * target-globals.h (struct target_globals): Define even if
32534         !SWITCHABLE_TARGET.
32535         * tree.c (prepare_target_option_node_for_pch,
32536         prepare_target_option_nodes_for_pch): New functions.
32537         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
32538         * config/i386/i386.c: Include target-globals.h.
32539         (ix86_set_current_function): Instead of doing target_reinit
32540         unconditionally, use save_target_globals_default_opts and
32541         restore_target_globals.
32542
32543 2014-01-09  Richard Biener  <rguenther@suse.de>
32544
32545         PR tree-optimization/59715
32546         * tree-cfg.h (split_critical_edges): Declare.
32547         * tree-cfg.c (split_critical_edges): Export.
32548         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
32549
32550 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
32551
32552         * cfgexpand.c (expand_stack_vars): Optionally disable
32553         asan stack protection.
32554         (expand_used_vars): Likewise.
32555         (partition_stack_vars): Likewise.
32556         * asan.c (asan_emit_stack_protection): Optionally disable
32557         after return stack usage.
32558         (instrument_derefs): Optionally disable memory access instrumentation.
32559         (instrument_builtin_call): Likewise.
32560         (instrument_strlen_call): Likewise.
32561         (asan_protect_global): Optionally disable global variables protection.
32562         * doc/invoke.texi: Added doc for new options.
32563         * params.def: Added new options.
32564         * params.h: Likewise.
32565
32566 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
32567
32568         PR rtl-optimization/59724
32569         * ifcvt.c (cond_exec_process_if_block): Don't call
32570         flow_find_head_matching_sequence with 0 longest_match.
32571         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
32572         non-active insns if !stop_after.
32573         (try_head_merge_bb): Revert 2014-01-07 changes.
32574
32575 2014-01-08  Jeff Law  <law@redhat.com>
32576
32577         * ree.c (get_sub_rtx): New function, extracted from...
32578         (merge_def_and_ext): Here.
32579         (combine_reaching_defs): Use get_sub_rtx.
32580
32581 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
32582
32583         * cgraph.h (varpool_variable_node): Do not choke on null node.
32584
32585 2014-01-08  Catherine Moore  <clm@codesourcery.com>
32586
32587         * config/mips/mips.md (simple_return): Attempt to use JRC
32588         for microMIPS.
32589         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
32590
32591 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
32592
32593         PR rtl-optimization/59137
32594         * reorg.c (steal_delay_list_from_target): Call update_block for
32595         elided insns.
32596         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
32597
32598 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32599
32600         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
32601         two duplicate entries.
32602
32603 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
32604
32605         Revert:
32606         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
32607
32608         * config/mips/mips.c (mips_truncated_op_cost): New function.
32609         (mips_rtx_costs): Adjust test for BADDU.
32610         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
32611
32612         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
32613
32614         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
32615         (*baddu_si): ...this new pattern.
32616
32617 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
32618
32619         PR ipa/59722
32620         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
32621
32622 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32623
32624         PR middle-end/57748
32625         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
32626         inner_reference_p.
32627         (expand_expr, expand_normal): Adjust.
32628         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
32629         inner_reference_p. Use inner_reference_p to expand inner references.
32630         (store_expr): Adjust.
32631         * cfgexpand.c (expand_call_stmt): Adjust.
32632
32633 2014-01-08  Rong Xu  <xur@google.com>
32634
32635         * gcov-io.c (gcov_var): Move from gcov-io.h.
32636         (gcov_position): Ditto.
32637         (gcov_is_error): Ditto.
32638         (gcov_rewrite): Ditto.
32639         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
32640         only part to libgcc/libgcov.h.
32641
32642 2014-01-08  Marek Polacek  <polacek@redhat.com>
32643
32644         PR middle-end/59669
32645         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
32646
32647 2014-01-08  Marek Polacek  <polacek@redhat.com>
32648
32649         PR sanitizer/59667
32650         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
32651
32652 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
32653
32654         PR rtl-optimization/59649
32655         * stor-layout.c (get_mode_bounds): For BImode return
32656         0 and STORE_FLAG_VALUE.
32657
32658 2014-01-08  Richard Biener  <rguenther@suse.de>
32659
32660         PR middle-end/59630
32661         * gimple.h (is_gimple_builtin_call): Remove.
32662         (gimple_builtin_call_types_compatible_p): New.
32663         (gimple_call_builtin_p): New overload.
32664         * gimple.c (is_gimple_builtin_call): Remove.
32665         (validate_call): Rename to ...
32666         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
32667         check return types.
32668         (validate_type): New static function.
32669         (gimple_call_builtin_p): New overload and adjust.
32670         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
32671         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
32672         (gimple_fold_stmt_to_constant_1): Likewise.
32673         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
32674
32675 2014-01-08  Richard Biener  <rguenther@suse.de>
32676
32677         PR middle-end/59471
32678         * gimplify.c (gimplify_expr): Gimplify register-register type
32679         VIEW_CONVERT_EXPRs to separate stmts.
32680
32681 2014-01-07  Jeff Law  <law@redhat.com>
32682
32683         PR middle-end/53623
32684         * ree.c (combine_set_extension): Handle case where source
32685         and destination registers in an extension insn are different.
32686         (combine_reaching_defs): Allow source and destination registers
32687         in extension to be different under limited circumstances.
32688         (add_removable_extension): Remove restriction that the
32689         source and destination registers in the extension are the same.
32690         (find_and_remove_re): Emit a copy from the extension's
32691         destination to its source after the defining insn if
32692         the source and destination registers are different.
32693
32694         PR middle-end/59285
32695         * ifcvt.c (merge_if_block): If we are merging a block with more than
32696         one successor with a block with no successors, remove any BARRIER
32697         after the second block.
32698
32699 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
32700
32701         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
32702
32703 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
32704
32705         PR target/59652
32706         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
32707         for 14-bit register offsets when INT14_OK_STRICT is false.
32708
32709 2014-01-07  Roland Stigge  <stigge@antcom.de>
32710             Michael Meissner  <meissner@linux.vnet.ibm.com>
32711
32712         PR 57386/target
32713         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
32714         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
32715
32716 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
32717
32718         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
32719         -mcpu.
32720
32721 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
32722
32723         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
32724         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
32725         rtx is const0_rtx or not.
32726
32727 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
32728
32729         PR target/58115
32730         * target-globals.c (save_target_globals): Remove this_fn_optab
32731         handling.
32732         * toplev.c: Include optabs.h.
32733         (target_reinit): Temporarily restore the global options if another
32734         set of options are in force.
32735
32736 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
32737
32738         PR rtl-optimization/58668
32739         * cfgcleanup.c (flow_find_cross_jump): Don't count
32740         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
32741         to determine what is counted.
32742         (flow_find_head_matching_sequence): Use active_insn_p to determine
32743         what is counted.
32744         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
32745         counting change.
32746         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
32747         determine what is counted.
32748
32749         PR tree-optimization/59643
32750         * tree-predcom.c (split_data_refs_to_components): If one dr is
32751         read and one write, determine_offset fails and the write isn't
32752         in the bad component, just put the read into the bad component.
32753
32754 2014-01-07  Mike Stump  <mikestump@comcast.net>
32755             Jakub Jelinek  <jakub@redhat.com>
32756
32757         PR pch/59436
32758         * tree-core.h (struct tree_optimization_option): Change optabs
32759         type from unsigned char * to void *.
32760         * optabs.c (init_tree_optimization_optabs): Adjust
32761         TREE_OPTIMIZATION_OPTABS initialization.
32762
32763 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
32764
32765         PR target/59644
32766         * config/i386/i386.h (struct machine_function): Add
32767         no_drap_save_restore field.
32768         * config/i386/i386.c (ix86_save_reg): Use
32769         !cfun->machine->no_drap_save_restore instead of
32770         crtl->stack_realign_needed.
32771         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
32772         this function clears frame_pointer_needed.  Set
32773         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
32774         and DRAP reg is needed.
32775
32776 2014-01-06  Marek Polacek  <polacek@redhat.com>
32777
32778         PR c/57773
32779         * doc/implement-c.texi: Mention that other integer types are
32780         permitted as bit-field types in strictly conforming mode.
32781
32782 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
32783
32784         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
32785         is newly allocated.
32786
32787 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
32788
32789         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
32790
32791 2014-01-06  Martin Jambor  <mjambor@suse.cz>
32792
32793         PR ipa/59008
32794         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
32795         to int.
32796         * ipa-prop.c (ipa_print_node_params): Fix indentation.
32797
32798 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
32799
32800         PR debug/59350
32801         PR debug/59510
32802         * var-tracking.c (add_stores): Preserve the value of the source even if
32803         we don't record the store.
32804
32805 2014-01-06  Terry Guo  <terry.guo@arm.com>
32806
32807         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
32808
32809 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
32810
32811         PR bootstrap/59541
32812         * config/darwin.c (darwin_function_section): Adjust return values to
32813         correspond to optimisation changes made in r206070.
32814
32815 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
32816
32817         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
32818         from prefetch_block tune setting.
32819         (nocona_cost): Correct size of prefetch block to 64.
32820
32821 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
32822
32823         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
32824         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
32825         used to save the static chain register in the computation of the offset
32826         from which the FP registers need to be restored.
32827
32828 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
32829
32830         PR tree-optimization/59519
32831         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
32832         ICE if get_current_def (current_new_name) is already non-NULL, as long
32833         as it is a phi result of some other phi in *new_exit_bb that has
32834         the same argument.
32835
32836         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
32837         or vmovdqu* for misaligned_operand.
32838         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
32839         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
32840         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
32841         aligned_mem for AVX512F masked aligned load and store builtins and for
32842         non-temporal moves.
32843
32844 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
32845
32846         PR tree-optimization/59651
32847         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
32848         Address range for negative step should be added by TYPE_SIZE_UNIT.
32849
32850 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
32851
32852         * config/m68k/m68k.c (handle_move_double): Handle pushes with
32853         overlapping registers also for registers other than the stack pointer.
32854
32855 2014-01-03  Marek Polacek  <polacek@redhat.com>
32856
32857         PR other/59661
32858         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
32859         __builtin_FILE.
32860
32861 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
32862
32863         PR target/59625
32864         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
32865         asm goto as jump.
32866
32867         * config/i386/i386.md (MODE_SIZE): New mode attribute.
32868         (push splitter): Use <P:MODE_SIZE> instead of
32869         GET_MODE_SIZE (<P:MODE>mode).
32870         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
32871         (mov -1, reg peephole2): Likewise.
32872         * config/i386/sse.md (*mov<mode>_internal,
32873         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
32874         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
32875         *<code><mode>3, *andnot<mode>3<mask_name>,
32876         <mask_codefor><code><mode>3<mask_name>): Likewise.
32877         * config/i386/subst.md (mask_mode512bit_condition,
32878         sd_mask_mode512bit_condition): Likewise.
32879
32880 2014-01-02  Xinliang David Li  <davidxl@google.com>
32881
32882         PR tree-optimization/59303
32883         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
32884         (dump_predicates): Better output format.
32885         (pred_equal_p): New function.
32886         (is_neq_relop_p): Ditto.
32887         (is_neq_zero_form_p): Ditto.
32888         (pred_expr_equal_p): Ditto.
32889         (pred_neg_p): Ditto.
32890         (simplify_pred): Ditto.
32891         (simplify_preds_2): Ditto.
32892         (simplify_preds_3): Ditto.
32893         (simplify_preds_4): Ditto.
32894         (simplify_preds): Ditto.
32895         (push_pred): Ditto.
32896         (push_to_worklist): Ditto.
32897         (get_pred_info_from_cmp): Ditto.
32898         (is_degenerated_phi): Ditto.
32899         (normalize_one_pred_1): Ditto.
32900         (normalize_one_pred): Ditto.
32901         (normalize_one_pred_chain): Ditto.
32902         (normalize_preds): Ditto.
32903         (normalize_cond_1): Remove function.
32904         (normalize_cond): Ditto.
32905         (is_gcond_subset_of): Ditto.
32906         (is_subset_of_any): Ditto.
32907         (is_or_set_subset_of): Ditto.
32908         (is_and_set_subset_of): Ditto.
32909         (is_norm_cond_subset_of): Ditto.
32910         (pred_chain_length_cmp): Ditto.
32911         (convert_control_dep_chain_into_preds): Type change.
32912         (find_predicates): Ditto.
32913         (find_def_preds): Ditto.
32914         (destroy_predicates_vecs): Ditto.
32915         (find_matching_predicates_in_rest_chains): Ditto.
32916         (use_pred_not_overlap_with_undef_path_pred): Ditto.
32917         (is_pred_expr_subset): Ditto.
32918         (is_pred_chain_subset_of): Ditto.
32919         (is_included_in): Ditto.
32920         (is_superset_of): Ditto.
32921
32922 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
32923
32924         Update copyright years.
32925
32926 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
32927
32928         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
32929         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
32930         config/arc/arc.md, config/arc/arc.opt,
32931         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
32932         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
32933         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
32934         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
32935         config/linux-protos.h, config/linux.c, config/winnt-c.c,
32936         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
32937         vtable-verify.c, vtable-verify.h: Use the standard form for the
32938         copyright notice.
32939
32940 2014-01-02  Tobias Burnus  <burnus@net-b.de>
32941
32942         * gcc.c (process_command): Update copyright notice dates.
32943         * gcov-dump.c: Ditto.
32944         * gcov.c: Ditto.
32945         * doc/cpp.texi: Bump @copying's copyright year.
32946         * doc/cppinternals.texi: Ditto.
32947         * doc/gcc.texi: Ditto.
32948         * doc/gccint.texi: Ditto.
32949         * doc/gcov.texi: Ditto.
32950         * doc/install.texi: Ditto.
32951         * doc/invoke.texi: Ditto.
32952
32953 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
32954
32955         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
32956
32957 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
32958
32959         * config/i386/sse.md (*mov<mode>_internal): Guard
32960         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
32961
32962         PR rtl-optimization/59647
32963         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
32964         new_rtx into UNSIGNED_FLOAT rtxes.
32965 \f
32966 Copyright (C) 2014 Free Software Foundation, Inc.
32967
32968 Copying and distribution of this file, with or without modification,
32969 are permitted in any medium without royalty provided the copyright
32970 notice and this notice are preserved.