re PR target/62642 (x86 rdtsc is moved through barrier)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>
2
3         PR target/62642
4         * ira.c (rtx_moveable_p): Prevent UNSPEC_VOLATILE moves.
5
6 2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>
7
8         * ira-int.h (ira_prohibited_class_mode_regs): Remove.
9         (struct target_ira_int): Move x_ira_prohibited_class_mode_regs to
10         ...
11         * ira.h (struct target_ira): ... here.
12         (ira_prohibited_class_mode_regs): Define.
13         * lra-constraints.c (process_alt_operands): Add one more condition
14         to refuse alternative when reload pseudo of given class can not
15         hold value of given mode.
16
17 2014-12-15  Richard Biener  <rguenther@suse.de>
18
19         PR tree-optimization/64312
20         * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Use
21         vuse_ssa_val as callback to walk_non_aliased_vuses.
22         (vn_reference_lookup): Likewise.
23
24 2014-12-15  Segher Boessenkool  <segher@kernel.crashing.org>
25
26         * gcc/config/rs6000/rs6000.md (*add>mode>3_imm_dot,
27         *add<mode>3_imm_dot2): Change the constraint for the second
28         alternative for operand 1 from "r" to "b".
29
30 2014-12-15  Richard Biener  <rguenther@suse.de>
31
32         * vec.h (vec::safe_grow): Guard against a grow to zero size.
33
34 2014-12-15  Richard Biener  <rguenther@suse.de>
35
36         PR middle-end/64295
37         * match.pd (X / CST -> X * (1 / CST): Use const_binop instead of
38         fold_binary to compute the constant to multiply with.
39
40 2014-12-15  Richard Biener  <rguenther@suse.de>
41
42         PR middle-end/64246
43         * cfgloop.c (mark_loop_for_removal): Make safe against multiple
44         invocations on the same loop.
45
46 2014-12-15  Marek Polacek  <polacek@redhat.com>
47
48         PR middle-end/64292
49         * fold-const.c (negate_expr_p): Add INTEGRAL_TYPE_P check.
50
51 2014-12-15  Renlin Li  <renlin.li@arm.com>
52
53         * config/aarch64/aarch64.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
54         (CTZ_DEFINED_VALUE_AT_ZERO): Update to support more modes.
55
56 2014-12-15  Jakub Jelinek  <jakub@redhat.com>
57
58         PR sanitizer/64265
59         * tsan.c (instrument_func_entry): Insert __tsan_func_entry
60         call on edge from entry block to single succ instead
61         of after labels of single succ of entry block.
62
63 2014-12-15  Richard Biener  <rguenther@suse.de>
64
65         PR tree-optimization/64284
66         * tree-ssa-threadupdate.c (duplicate_seme_region): Mark
67         the loop for removal if we copied the loop header.
68
69 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
70
71         * ipa.c (process_references): Fix conditoinal on flag_optimize
72
73 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
74
75         PR ipa/61558
76         * symtab.c (symbol_table::insert_to_assembler_name_hash
77         symbol_table::unlink_from_assembler_name_hash): Do not ICE when 
78         DECL_ASSEMBLER_NAME is NULL.
79
80 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
81
82         * cgraphunit.c (analyze_functions): Always analyze targets of aliases.
83
84 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
85
86         PR lto/64043
87         * tree.c (virtual_method_call_p): Return false when OTR type has
88         no BINFO.
89
90 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
91
92         * cgraphunit.c (analyze_functions): Do not analyze extern inline
93         funtions when not optimizing; skip comdat locals.
94
95 2014-12-14  H.J. Lu  <hongjiu.lu@intel.com>
96
97         PR rtl-optimization/64037
98         * combine.c (setup_incoming_promotions): Pass the argument
99         before any promotions happen to promote_function_mode.
100
101 2014-12-12  Thomas Schwinge  <thomas@codesourcery.com>
102
103         * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGN): Define as a C statment.
104
105 2014-12-12  Vladimir Makarov  <vmakarov@redhat.com>
106
107         PR target/64110
108         * lra-constraints.c (process_alt_operands): Refuse alternative
109         when reload pseudo of given class can not hold value of given
110         mode.
111
112 2014-12-12  Thomas Schwinge  <thomas@codesourcery.com>
113
114         * gimple-walk.c (walk_gimple_op) <GIMPLE_OMP_FOR>: Also check
115         intermediate walk_tree results for for_incr.
116         <GIMPLE_OMP_TARGET>: Walk child_fn and data_arg, too.
117         <GIMPLE_OMP_CRITICAL, GIMPLE_OMP_ATOMIC_STORE>: Pretty printing.
118
119 2014-12-12  Richard Sandiford  <richard.sandiford@arm.com>
120
121         PR middle-end/64182
122         * wide-int.h (wi::div_round, wi::mod_round): Fix rounding of tied
123         cases.
124         * double-int.c (div_and_round_double): Fix handling of unsigned
125         cases.  Use same rounding approach as wide-int.h.
126
127 2014-12-12  Marek Polacek  <polacek@redhat.com>
128
129         PR middle-end/64274
130         * fold-const.c (fold_binary_loc): Add ANY_INTEGRAL_TYPE_P check.
131
132 2014-12-12  Jakub Jelinek  <jakub@redhat.com>
133
134         PR tree-optimization/64269
135         * tree-ssa-forwprop.c (simplify_builtin_call): Bail out if
136         len2 or diff are too large.
137
138 2014-12-12  Richard Biener  <rguenther@suse.de>
139
140         PR middle-end/64280
141         * tree-cfg.c (replace_uses_by): Guard assert properly.
142
143 2014-12-12  Anthony Green  <green@moxielogic.com>
144
145         * config/moxie/moxie.md: Add use of zex instruction.
146
147 2014-12-12  Marc Glisse  <marc.glisse@inria.fr>
148
149         * real.h (HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
150         HONOR_SIGN_DEPENDENT_ROUNDING): Replace macros with 3 overloaded
151         declarations.
152         * real.c (HONOR_NANS): Fix indentation.
153         (HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
154         HONOR_SIGN_DEPENDENT_ROUNDING): Define three overloads.
155         * builtins.c (fold_builtin_cproj, fold_builtin_signbit,
156         fold_builtin_fmin_fmax, fold_builtin_classify): Simplify argument
157         of HONOR_*.
158         * fold-const.c (operand_equal_p, fold_comparison, fold_binary_loc):
159         Likewise.
160         * gimple-fold.c (gimple_val_nonnegative_real_p): Likewise.
161         * ifcvt.c (noce_try_move, noce_try_minmax, noce_try_abs): Likewise.
162         * omp-low.c (omp_reduction_init): Likewise.
163         * rtlanal.c (may_trap_p_1): Likewise.
164         * simplify-rtx.c (simplify_const_relational_operation): Likewise.
165         * tree-ssa-dom.c (record_equality, record_edge_info): Likewise.
166         * tree-ssa-phiopt.c (value_replacement, abs_replacement): Likewise.
167         * tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
168         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
169
170 2014-12-12  Jan Hubicka  <hubicka@ucw.cz>
171
172         * ipa-inline.c (ipa_inline): Fix condition on when
173         TODO_remove_unreachable_functions is needed.
174
175 2014-12-12  Jan Hubicka  <hubicka@ucw.cz>
176
177         * ipa-devirt.c (possible_polymorphic_call_targets): Return early
178         if otr_type has no BINFO.
179
180 2014-12-12  Zhenqiang Chen  <zhenqiang.chen@arm.com>
181
182         PR rtl-optimization/63917
183         * ifcvt.c (cc_in_cond): New function.
184         (end_ifcvt_sequence): Make sure new generated insns do not clobber CC.
185         (noce_process_if_block, check_cond_move_block): Check CC references.
186
187 2014-12-11  Andrew Pinski  <apinski@cavium.com>
188
189         * config/aarch64/aarch64-protos.h (tune_params): Add align field.
190         * config/aarch64/aarch64.c (generic_tunings): Specify align.
191         (cortexa53_tunings): Likewise.
192         (cortexa57_tunings): Likewise.
193         (thunderx_tunings): Likewise.
194         (aarch64_override_options): Set align_loops, align_jumps,
195         align_functions based on what the tuning struct.
196
197 2014-12-11  Eric Botcazou  <ebotcazou@adacore.com>
198
199         * doc/md.texi (Insn Lengths): Fix description of (pc).
200
201 2014-12-11  Jan Hubicka  <hubicka@ucw.cz>
202
203         PR ipa/61324
204         * passes.c (execute_todo): Update call of remove_unreachable_nodes.
205         * ipa-chkp.c (chkp_produce_thunks): Use TODO_remove_functions.
206         * cgraphunit.c (symbol_table::process_new_functions): Add
207         IPA_SSA_AFTER_INLINING.
208         (ipa_passes): Update call of remove_unreachable_nodes.
209         (symbol_table::compile): Remove call of remove_unreachable_nodes.
210         * ipa-inline.c (inline_small_functions): Do not ICE with
211         -flto-partition=none
212         (ipa_inline): Update symtab->state; fix formatting
213         update call of remove_unreachable_nodes.
214         * passes.c (execute_todo): Update call of remove_unreachable_nodes.
215         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
216         * cgraph.h (enum symtab_state): Add IPA_SSA_AFTER_INLINING.
217         (remove_unreachable_nodes): Update.
218         * ipa.c (process_references): Keep external references only
219         when optimizing.
220         (walk_polymorphic_call_targets): Keep possible polymorphic call
221         target only when devirtualizing.
222         (symbol_table::remove_unreachable_nodes): Remove BEFORE_INLINING_P
223         parameter.
224         (ipa_single_use): Update comment.
225         * ipa-pure-const.c (cdtor_p): New function.
226         (propagate_pure_const): Track if some cdtor was turned pure/const.
227         (execute): Return TODO_remove_functions if needed.
228         * ipa-comdats.c (ipa_comdats): Update comment.
229
230 2014-12-11  Aldy Hernandez  <aldyh@redhat.com>
231
232         * dwarf2out.c (gen_lexical_block_die): Remove unused `depth'
233         parameter.
234         (gen_inlined_subroutine_die): Same.
235         (gen_block_die): Same.
236         (decls_for_scope): Same.
237
238 2014-12-11  Renlin Li  <renlin.li@arm.com>
239
240         * config/aarch64/aarch64-cores.def: Change all AARCH64_FL_FPSIMD to
241         AARCH64_FL_FOR_ARCH8.
242         * config/aarch64/aarch64.c (all_cores): Use FLAGS from
243         aarch64-cores.def file only.
244
245 2014-12-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
246
247         PR fortran/44054
248         * diagnostic.c (diagnostic_action_after_output): Make it extern.
249         Take diagnostic_t argument instead of diagnostic_info. Count also
250         DK_WERROR towards max_errors.
251         (diagnostic_report_diagnostic): Update call according to the above.
252         (error_recursion): Likewise.
253         * diagnostic.h (diagnostic_action_after_output): Declare.
254         * pretty-print.c (pp_formatted_text_data): Delete.
255         (pp_append_r): Call output_buffer_append_r.
256         (pp_formatted_text): Call output_buffer_formatted_text.
257         (pp_last_position_in_text): Call output_buffer_last_position_in_text.
258         * pretty-print.h (output_buffer_formatted_text): New.
259         (output_buffer_append_r): New.
260         (output_buffer_last_position_in_text): New.
261
262 2014-12-11  Kyrylo Tkachov  kyrylo.tkachov@arm.com
263
264         * config/aarch64/aarch64.c (aarch64_parse_extension): Update error
265         message to say +no only when removing extension.
266
267 2014-12-11  Andrew MacLeod  <amacleod@redhat.com>
268
269         * config/tilepro/gen-mul-tables.cc: Add insn-codes.h to include list
270         for generator file.  Add comment indicating it is a generated file.
271         * config/tilepro/mul-tables.c: Update generated file.
272         * config/tilegx/mul-tables.c: Likewise.
273
274 2014-12-11  Segher Boessenkool  <segher@kernel.crashing.org>
275
276         * combine.c (try_combine): Do not allow combining a PARALLEL I2
277         with a register move I3 if that I2 is an asm.
278
279 2014-12-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
280
281         * config/arm/arm_neon.h (vrndqn_f32): Rename to...
282         (vrndnq_f32): ... this.
283         (vrndqa_f32): Rename to...
284         (vrndaq_f32): ... this.
285         (vrndqp_f32): Rename to...
286         (vrndpq_f32): ... this.
287         (vrndqm_f32): Rename to...
288         (vrndmq_f32): ... this.
289         (vrndx_f32): New intrinsic.
290         (vrndxq_f32): Likewise.
291
292 2014-12-11  Marek Polacek  <polacek@redhat.com>
293
294         * fold-const.c (fold_negate_expr): Add ANY_INTEGRAL_TYPE_P check.
295         (extract_muldiv_1): Likewise.
296         (maybe_canonicalize_comparison_1): Likewise.
297         (fold_comparison): Likewise.
298         (tree_binary_nonnegative_warnv_p): Likewise.
299         (tree_binary_nonzero_warnv_p): Likewise.
300         * gimple-ssa-strength-reduction.c (legal_cast_p_1): Likewise.
301         * tree-scalar-evolution.c (simple_iv): Likewise.
302         (scev_const_prop): Likewise.
303         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
304         * tree-vect-generic.c (expand_vector_operation): Likewise.
305         * tree.h (ANY_INTEGRAL_TYPE_CHECK): Define.
306         (ANY_INTEGRAL_TYPE_P): Define.
307         (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED, TYPE_OVERFLOW_TRAPS):
308         Add ANY_INTEGRAL_TYPE_CHECK.
309         (any_integral_type_check): New function.
310
311 2014-12-11  Tobias Burnus  <burnus@net-b.de>
312             Manuel López-Ibáñez  <manu@gcc.gnu.org>
313
314         * error.c (gfc_get_terminal_width): Renamed from
315         get_terminal_width and use same-named common function.
316         (gfc_error_init_1): Update call.
317
318 2014-12-10  Aldy Hernandez  <aldyh@redhat.com>
319
320         * gdbhooks.py (class DWDieRefPrinter): New class.
321         (build_pretty_printer): Register dw_die_ref's.
322
323 2014-12-10  Ilya Tocar  <ilya.tocar@intel.com>
324
325         * config.gcc: Support "knl".
326         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knl".
327         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
328         PROCESSOR_KNL.
329         * config/i386/i386.c (m_KNL): Define.
330         (processor_target_table): Add "knl".
331         (PTA_KNL): Define.
332         (ix86_issue_rate): Add PROCESSOR_KNL.
333         (ix86_adjust_cost): Ditto.
334         (ia32_multipass_dfa_lookahead): Ditto.
335         (get_builtin_code_for_version): Handle "knl".
336         (fold_builtin_cpu): Ditto.
337         * config/i386/i386.h (TARGET_KNL): Define.
338         (processor_type): Add PROCESSOR_KNL.
339         * config/i386/i386.md (attr "cpu"): Add knl.
340         * config/i386/x86-tune.def: Add m_KNL.
341
342 2014-12-10  Jan Hubicka  <hubicka@ucw.cz>
343
344         * doc/invoke.texi: (-devirtualize-at-ltrans): Document.
345         * lto-cgraph.c (lto_output_varpool_node): Mark initializer as removed
346         when it is not streamed to the given ltrans.
347         (compute_ltrans_boundary): Make code adding all polymorphic
348         call targets conditional with !flag_wpa || flag_ltrans_devirtualize.
349         * common.opt (fdevirtualize-at-ltrans): New flag.
350
351 2014-12-10  Ilya Verbin  <ilya.verbin@intel.com>
352
353         * varpool.c (varpool_node::get_create): Force output of vars with
354         "omp declare target" attribute.
355
356 2014-12-10  Marc Glisse  <marc.glisse@inria.fr>
357
358         * real.h (HONOR_NANS): Replace macro with 3 overloaded declarations.
359         * real.c: Include rtl.h and options.h.
360         (HONOR_NANS): Define three overloads.
361         * builtins.c (fold_builtin_classify, fold_builtin_unordered_cmp):
362         Simplify argument of HONOR_NANS.
363         * fold-const.c (combine_comparisons, fold_truth_not_expr,
364         fold_cond_expr_with_comparison, merge_truthop_with_opposite_arm,
365         fold_comparison, fold_binary_loc): Likewise.
366         * ifcvt.c (noce_try_move, noce_try_minmax): Likewise.
367         * ipa-inline-analysis.c (add_clause,
368         set_cond_stmt_execution_predicate): Likewise.
369         * match.pd: Likewise.
370         * rtlanal.c (may_trap_p_1): Likewise.
371         * simplify-rtx.c (simplify_const_relational_operation): Likewise.
372         * tree-if-conv.c (parse_predicate): Likewise.
373         * tree-ssa-ccp.c (valid_lattice_transition): Likewise.
374         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
375         * tree-ssa-phiopt.c (minmax_replacement, neg_replacement): Likewise.
376         * tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
377         * tree-ssa-tail-merge.c (gimple_equal_p): Likewise.
378
379 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
380
381         PR tree-optimization/62021
382         * omp-low.c (simd_clone_adjust_return_type): Use
383         vector of pointer_sized_int_node types instead vector of pointer
384         types.
385         (simd_clone_adjust_argument_types): Likewise.
386
387 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
388             Evgeny Stupachenko  <evstupac@gmail.com>
389
390         PR target/64252
391         * config/i386/i386.c (expand_vec_perm_pblendv): If not testing_p,
392         set dcopy.target to a new pseudo.
393
394 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
395
396         * config/rs6000/rs6000.md (*add<mode>3): Remove condition.
397
398 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
399
400         * config/rs6000/40x.md (ppc403-compare): Remove "compare".
401         config/rs6000/440.md (ppc440-compare): Remove "compare".
402         config/rs6000/476.md (ppc476-compare): Remove "compare".
403         config/rs6000/601.md (ppc601-compare): Remove "compare".
404         config/rs6000/603.md (ppc603-compare): Remove "compare".
405         config/rs6000/6xx.md (ppc604-compare): Remove "compare".
406         config/rs6000/7450.md (ppc7450-compare): Remove "compare".
407         config/rs6000/7xx.md (ppc750-compare): Remove "compare".
408         config/rs6000/8540.md (ppc8540_su): Remove "compare".
409         config/rs6000/cell.md (cell-fast-cmp, cell-cmp-microcoded): Remove
410         "compare".
411         config/rs6000/e300c2c3.md (ppce300c3_cmp): Remove "compare".
412         config/rs6000/e500mc.md (e500mc_su): Remove "compare".
413         config/rs6000/e500mc64.md (e500mc64_su2): Remove "compare".
414         config/rs6000/e5500.md (e5500_sfx2): Remove "compare".
415         config/rs6000/e6500.md (e6500_sfx2): Remove "compare".
416         config/rs6000/mpc.md (mpccore-compare): Remove "compare".
417         config/rs6000/power4.md (power4-compare): Remove "compare".
418         config/rs6000/power5.md (power5-compare): Remove "compare".
419         config/rs6000/power6.md (power6-compare): Remove "compare".
420         config/rs6000/power7.md (power7-compare): Remove "compare".
421         config/rs6000/power8.md (power8-compare): Remove "compare".  Update
422         comment.
423         config/rs6000/rs6000.c (rs6000_adjust_cost) <TYPE_COMPARE>: Remove
424         (three times).
425         (is_cracked_insn): Remove TYPE_COMPARE case.
426         (insn_must_be_first_in_group) <TYPE_COMPARE>: Remove (twice).
427         config/rs6000/rs6000.md (type): Remove "compare".
428         (cell_micro): Remove "compare".
429         config/rs6000/rs64.md (rs64a-compare): Remove "compare".
430
431 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
432
433         * config/rs6000/rs6000.md (*anddi3_2rld_dot, *anddi3_rld_dot2):
434         Change type from "compare" to "two".
435
436 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
437
438         PR target/64180
439         * config/rs6000/predicates.md (unsigned_comparison_operator): New.
440         (signed_comparison_operator): New.
441         * config/rs6000/rs6000-protos.h (rs6000_emit_eqne): Declare.
442         * config/rs6000/rs6000.c (rs6000_emit_eqne): New function.
443         (rs6000_emit_sCOND): Remove ISEL test (move it to the expander).
444         * config/rs6000/rs6000.md (add<mode>3 for SDI): Expand DImode
445         add to addc,adde directly, if !TARGET_POWERPC64.
446         (sub<mode>3 for SDI): Expand DImode sub to subfc,subfe directly,
447         if !TARGET_POWERPC64.
448         (neg<mode>2): Delete expander.
449         (*neg<mode>2): Rename to "neg<mode>2".
450         (addti3, subti3): Delete.
451         (addti3, subti3): New expanders.
452         (*adddi3_noppc64, *subdi3_noppc64, *negdi2_noppc64): Delete.
453         (cstore<mode>4_unsigned): New expander.
454         (cstore<mode>4): Allow GPR as output (not just SI).  Rewrite.
455         (cstore<mode>4 for FP): Remove superfluous quotes.
456         (*eq<mode>, *eq<mode>_compare, *plus_eqsi and splitter,
457         *compare_plus_eqsi and splitter, *plus_eqsi_compare and splitter,
458         *neg_eq0<mode>, *neg_eq<mode>, *ne0_<mode>, plus_ne0_<mode>,
459         compare_plus_ne0_<mode> and splitter, *compare_plus_ne0_<mode>_1 and
460         splitter, *plus_ne0_<mode>_compare and splitter, *leu<mode>,
461         *leu<mode>_compare and splitter, *plus_leu<mode>, *neg_leu<mode>,
462         *and_neg_leu<mode>, *ltu<mode>, *ltu<mode>_compare, *plus_ltu<mode>,
463         *plus_ltu<mode>_1, *plus_ltu<mode>compare, *neg_ltu<mode>, *geu<mode>,
464         *geu<mode>_compare and splitter, *plus_geu<mode>, *neg_geu<mode>,
465         *and_neg_geu<mode>, *plus_gt0<mode>, *gtu<mode>, *gtu<mode>_compare,
466         *plus_gtu<mode>, *plus_gtu<mode>_1, *plus_gtu<mode>_compare,
467         *neg_gtu<mode>, 12 anonymous insns, and 12 anonymous splitters):
468         Delete.
469         (eq<mode>3, ne<mode>3): New.
470         (*neg_eq_<mode>, *neg_ne_<mode>): New.
471         (*plus_eq_<mode>, *plus_ne_<mode>): New.
472         (*minus_eq_<mode>, *minus_ne_<mode>): New.
473
474 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
475
476         PR target/64180
477         * config/rs6000/predicates.md (adde_operand): New.
478         * config/rs6000/rs6000.md (add<mode>3_carry): New.
479         (*add<mode>3_imm_carry_pos): New.
480         (*add<mode>3_imm_carry_0): New.
481         (*add<mode>3_imm_carry_m1): New.
482         (*add<mode>3_imm_carry_neg): New.
483         (add<mode>3_carry_in): New.
484         (*add<mode>3_carry_in_internal): New.
485         (add<mode>3_carry_in_0): New.
486         (add<mode>3_carry_in_m1): New.
487         (subf<mode>3_carry): New.
488         (*subf<mode>3_imm_carry_0): New.
489         (*subf<mode>3_imm_carry_m1): New.
490         (subf<mode>3_carry_in): New.
491         (*subf<mode>3_carry_in_internal): New.
492         (subf<mode>3_carry_in_0): New.
493         (subf<mode>3_carry_in_m1): New.
494         (subf<mode>3_carry_in_xx): New.
495
496 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
497
498         PR target/64180
499         * config/rs6000/rs6000.md (*add<mode>3_internal1): Rename to
500         "*add<mode>3".
501         (*add<mode>3_internal2, *add<mode>3_internal3, and (their splitters):
502         Delete.
503         (*add<mode>3_dot, *add<mode>3_dot2): New.
504         (*add<mode>3_imm_dot, *add<mode>3_imm_dot2): New.
505
506 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
507
508         PR target/64180
509         * config/rs6000/rs6000.md (*add<mode>3_internal1): Remove addic
510         alternative.
511
512 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
513
514         PR target/64180
515         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
516         *ctr<mode>_internal5, *ctr<mode>_internal6): Change "r" alternatives
517         to "b".  Increase length.
518         (splitters for these): Split to cmp+addi instead of addic.
519
520 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
521
522         PR target/64180
523         * config/rs6000/darwin.md (macho_low_si): Remove "r" alternative.
524         (macho_low_di): Ditto.
525         * config/rs6000/rs6000.md (*largetoc_low): Ditto.
526         (tocref<mode>): Ditto.
527         (elf_low): Ditto.
528         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0_elf_low_be): Ditto.
529         (mov_si<mode>_e500_subreg0_elf_low_le): Ditto.
530         (mov_si<mode>_e500_subreg4_elf_low_be): Ditto.  Reformat condition.
531         (mov_si<mode>_e500_subreg4_elf_low_le): Ditto.
532
533 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
534
535         PR target/64180
536         * config/rs6000/rs6000.c (TARGET_MD_ASM_CLOBBERS): Define.
537         (rs6000_md_asm_clobbers): New function.
538
539 2014-12-10  Felix Yang  <felix.yang@huawei.com>
540
541         * config/aarch64/aarch64-protos.h (aarch64_function_profiler): Remove
542         declaration of removed function.
543
544 2014-12-10  Richard Biener  <rguenther@suse.de>
545
546          * tree-ssa-loop-im.c
547          (move_computations_dom_walker::before_dom_children): Clear
548          SSA_NAME_RANGE_INFO on moved stmts.
549
550 2014-12-10  Martin Liska  <mliska@suse.cz>
551
552         * sreal.c (sreal::shift_right): New implementation
553         for int64_t as m_sig.
554         (sreal::normalize): Likewise.
555         (sreal::to_int): Likewise.
556         (sreal::operator+): Likewise.
557         (sreal::operator-): Likewise.
558         (sreal::operator*): Likewise.
559         (sreal::operator/): Likewise.
560         (sreal::signedless_minus): Removed.
561         (sreal::signedless_plus): Removed.
562         (sreal::debug): const keyword is added.
563         * sreal.h (sreal::operator<): New implementation
564         for int64_t as m_sig.
565         * ipa-inline.c (recursive_inlining): LONG_MIN is replaced
566         with sreal::min ().
567
568 2014-12-10  Martin Liska  <mliska@suse.cz>
569
570         * gimple-iterator.h (gsi_start_bb_nondebug): New function.
571         * ipa-icf-gimple.c (func_checker::compare_bb): Correct iteration
572         replaces loop based on precomputed number of non-debug statements.
573
574 2014-12-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
575
576         * config/linux.c (linux_has_ifunc_p): Remove.
577         * config/linux.h (TARGET_HAS_IFUNC_P): Use default version.
578
579 2014-12-10  Mantas Mikaitis  <mantas.mikaitis@arm.com>
580
581         * contrib/check_GNU_style.sh (col): Got rid of cut operation
582         from the pipe chain and instead added cut inside awk command.
583
584 2014-12-10  Richard Biener  <rguenther@suse.de>
585
586         PR tree-optimization/64191
587         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not
588         mark clobbers as necessary.
589         (eliminate_unnecessary_stmts): Keep clobbers live if we can.
590
591 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
592
593         PR target/63594
594         * config/i386/sse.md (vec_dupv4sf): Move after
595         <mask_codefor><avx512>_vec_dup_gpr<mode><mask_name> pattern.
596         (*vec_dupv4si, *vec_dupv2di): Likewise.
597         (<mask_codefor><avx512>_vec_dup_mem<mode><mask_name>): Merge into ...
598         (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): ... this
599         pattern.
600         (*vec_dup<mode> AVX2_VEC_DUP_MODE splitter): Disable for
601         TARGET_AVX512VL (for QI/HI scalar modes only if TARGET_AVX512BW
602         is set too).
603         * config/i386/i386.c (enum ix86_builtins): Remove
604         IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
605         IX86_BUILTIN_PBROADCASTQ128_MEM_MASK and
606         IX86_BUILTIN_PBROADCASTQ512_MEM.
607         (bdesc_args): Use __builtin_ia32_pbroadcastq512_gpr_mask,
608         __builtin_ia32_pbroadcastq256_gpr_mask and
609         __builtin_ia32_pbroadcastq128_gpr_mask instead of *_mem_mask
610         regardless of OPTION_MASK_ISA_64BIT.
611         * config/i386/avx512fintrin.h (_mm512_set1_epi64,
612         _mm512_mask_set1_epi64, _mm512_maskz_set1_epi64): Use *_gpr_mask
613         builtins regardless of whether TARGET_64BIT is defined or not.
614         * config/i386/avx512vlintrin.h (_mm256_mask_set1_epi64,
615         _mm256_maskz_set1_epi64, _mm_mask_set1_epi64, _mm_maskz_set1_epi64):
616         Likewise.
617
618         * config/i386/sse.md (*mov<mode>_internal, *avx512f_gatherdi<mode>_2):
619         Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
620
621 2014-12-10  Oleg Endo  <olegendo@gcc.gnu.org>
622
623         PR target/53513
624         * doc/extend.texi (__builtin_sh_set_fpscr): Fix typo.
625
626 2014-12-10  Marek Polacek  <polacek@redhat.com>
627
628         PR tree-optimization/61686
629         * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
630         p->high.
631
632 2014-12-10  Kito Cheng  <kito@0xlab.org>
633
634         * doc/libgcc.texi: Update text to match implementation in
635         libgcc/libgcc2.c
636
637 2014-12-09  Trevor Saunders  <tsaunders@mozilla.com>
638
639         * plugin.c, plugin.def, ggc.h, ggc-common.c, gengtype.h, gengtype.c,
640         gengtype-state.c, gengtype-parse.c, gentype-lex.l, gcc-plugin.h,
641         doc/plugins.texi, doc/gty.texi: Remove support for if_marked and
642         param_is.
643
644 2014-12-10  Oleg Endo  <olegendo@gcc.gnu.org>
645
646         PR target/53513
647         * doc/extend.texi (__builtin_sh_get_fpscr, __builtin_sh_get_fpscr):
648         Document it.
649
650 2014-12-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
651
652         PR middle-end/64225
653         * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
654         for BUILT_IN_POW when flag_errno_math is present.
655
656 2014-12-09  Ilya Verbin  <ilya.verbin@intel.com>
657
658         * lto-wrapper.c (compile_offload_image): Start processing in_argv
659         from 0 instead of 1.
660         (run_gcc): Put offload objects into offload_argv, put LTO objects and
661         possible preceding arguments into lto_argv.
662         Pass offload_argv to compile_images_for_offload_targets instead of argv.
663         Use lto_argv for LTO recompilation instead of argv.
664
665 2014-12-09  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
666
667         * doc/install.texi: Describe --with-aix-soname option.
668
669 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
670
671         * config/aarch64/aarch64-simd.md (aarch64_get_lanedi): Remove.
672
673 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
674
675         PR target/63870
676         * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane):
677         Delete.
678         * config/aarch64/aarch64-simd.md (aarch64_be_checked_get_lane<mode\>):
679         Delete.
680         * config/aarch64/arm_neon.h (aarch64_vget_lane_any): Use GCC
681         vector extensions, __aarch64_lane, __builtin_aarch64_im_lane_boundsi.
682         (__aarch64_vget_lane_f32, __aarch64_vget_lane_f64,
683         __aarch64_vget_lane_p8, __aarch64_vget_lane_p16,
684         __aarch64_vget_lane_s8, __aarch64_vget_lane_s16,
685         __aarch64_vget_lane_s32, __aarch64_vget_lane_s64,
686         __aarch64_vget_lane_u8, __aarch64_vget_lane_u16,
687         __aarch64_vget_lane_u32, __aarch64_vget_lane_u64,
688         __aarch64_vgetq_lane_f32, __aarch64_vgetq_lane_f64,
689         __aarch64_vgetq_lane_p8, __aarch64_vgetq_lane_p16,
690         __aarch64_vgetq_lane_s8, __aarch64_vgetq_lane_s16,
691         __aarch64_vgetq_lane_s32, __aarch64_vgetq_lane_s64,
692         __aarch64_vgetq_lane_u8, __aarch64_vgetq_lane_u16,
693         __aarch64_vgetq_lane_u32, __aarch64_vgetq_lane_u64): Delete.
694         (__aarch64_vdup_lane_any): Use __aarch64_vget_lane_any, remove
695         'q2' argument.
696         (__aarch64_vdup_lane_f32, __aarch64_vdup_lane_f64,
697         __aarch64_vdup_lane_p8, __aarch64_vdup_lane_p16,
698         __aarch64_vdup_lane_s8, __aarch64_vdup_lane_s16,
699         __aarch64_vdup_lane_s32, __aarch64_vdup_lane_s64,
700         __aarch64_vdup_lane_u8, __aarch64_vdup_lane_u16,
701         __aarch64_vdup_lane_u32, __aarch64_vdup_lane_u64,
702         __aarch64_vdup_laneq_f32, __aarch64_vdup_laneq_f64,
703         __aarch64_vdup_laneq_p8, __aarch64_vdup_laneq_p16,
704         __aarch64_vdup_laneq_s8, __aarch64_vdup_laneq_s16,
705         __aarch64_vdup_laneq_s32, __aarch64_vdup_laneq_s64,
706         __aarch64_vdup_laneq_u8, __aarch64_vdup_laneq_u16,
707         __aarch64_vdup_laneq_u32, __aarch64_vdup_laneq_u64): Remove argument
708         to __aarch64_vdup_lane_any.
709         (vget_lane_f32, vget_lane_f64, vget_lane_p8, vget_lane_p16,
710         vget_lane_s8, vget_lane_s16, vget_lane_s32, vget_lane_s64,
711         vget_lane_u8, vget_lane_u16, vget_lane_u32, vget_lane_u64,
712         vgetq_lane_f32, vgetq_lane_f64, vgetq_lane_p8, vgetq_lane_p16,
713         vgetq_lane_s8, vgetq_lane_s16, vgetq_lane_s32, vgetq_lane_s64,
714         vgetq_lane_u8, vgetq_lane_u16, vgetq_lane_u32, vgetq_lane_u64,
715         vdupb_lane_p8, vdupb_lane_s8, vdupb_lane_u8, vduph_lane_p16,
716         vduph_lane_s16, vduph_lane_u16, vdups_lane_f32, vdups_lane_s32,
717         vdups_lane_u32, vdupb_laneq_p8, vdupb_laneq_s8, vdupb_laneq_u8,
718         vduph_laneq_p16, vduph_laneq_s16, vduph_laneq_u16, vdups_laneq_f32,
719         vdups_laneq_s32, vdups_laneq_u32, vdupd_laneq_f64, vdupd_laneq_s64,
720         vdupd_laneq_u64, vfmas_lane_f32, vfma_laneq_f64, vfmad_laneq_f64,
721         vfmas_laneq_f32, vfmss_lane_f32, vfms_laneq_f64, vfmsd_laneq_f64,
722         vfmss_laneq_f32, vmla_lane_f32, vmla_lane_s16, vmla_lane_s32,
723         vmla_lane_u16, vmla_lane_u32, vmla_laneq_f32, vmla_laneq_s16,
724         vmla_laneq_s32, vmla_laneq_u16, vmla_laneq_u32, vmlaq_lane_f32,
725         vmlaq_lane_s16, vmlaq_lane_s32, vmlaq_lane_u16, vmlaq_lane_u32,
726         vmlaq_laneq_f32, vmlaq_laneq_s16, vmlaq_laneq_s32, vmlaq_laneq_u16,
727         vmlaq_laneq_u32, vmls_lane_f32, vmls_lane_s16, vmls_lane_s32,
728         vmls_lane_u16, vmls_lane_u32, vmls_laneq_f32, vmls_laneq_s16,
729         vmls_laneq_s32, vmls_laneq_u16, vmls_laneq_u32, vmlsq_lane_f32,
730         vmlsq_lane_s16, vmlsq_lane_s32, vmlsq_lane_u16, vmlsq_lane_u32,
731         vmlsq_laneq_f32, vmlsq_laneq_s16, vmlsq_laneq_s32, vmlsq_laneq_u16,
732         vmlsq_laneq_u32, vmul_lane_f32, vmul_lane_s16, vmul_lane_s32,
733         vmul_lane_u16, vmul_lane_u32, vmuld_lane_f64, vmuld_laneq_f64,
734         vmuls_lane_f32, vmuls_laneq_f32, vmul_laneq_f32, vmul_laneq_f64,
735         vmul_laneq_s16, vmul_laneq_s32, vmul_laneq_u16, vmul_laneq_u32,
736         vmulq_lane_f32, vmulq_lane_s16, vmulq_lane_s32, vmulq_lane_u16,
737         vmulq_lane_u32, vmulq_laneq_f32, vmulq_laneq_f64, vmulq_laneq_s16,
738         vmulq_laneq_s32, vmulq_laneq_u16, vmulq_laneq_u32) : Use
739         __aarch64_vget_lane_any.
740
741 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
742
743         PR target/63870
744         * gcc/config/aarch64-builtins.c (aarch64_simd_expand_args): Update error
745         message for SIMD_ARG_CONSTANT.
746
747 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
748
749         PR target/63870
750         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
751         TYPES_BINOPV): Delete.
752         (enum aarch64_builtins): Add AARCH64_BUILTIN_SIMD_LANE_CHECK and
753         AARCH64_SIMD_PATTERN_START.
754         (aarch64_init_simd_builtins): Register
755         __builtin_aarch64_im_lane_boundsi; use  AARCH64_SIMD_PATTERN_START.
756         (aarch64_simd_expand_builtin): Handle AARCH64_BUILTIN_LANE_CHECK; use
757         AARCH64_SIMD_PATTERN_START.
758
759         * config/aarch64/aarch64-simd.md (aarch64_im_lane_boundsi): Delete.
760         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound): Delete.
761
762         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK): New.
763         (__aarch64_vget_lane_f64, __aarch64_vget_lane_s64,
764         __aarch64_vget_lane_u64, __aarch64_vset_lane_any, vdupd_lane_f64,
765         vdupd_lane_s64, vdupd_lane_u64, vext_f32, vext_f64, vext_p8, vext_p16,
766         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
767         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
768         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
769         vextq_u64, vmulq_lane_f64): Use __AARCH64_LANE_CHECK.
770
771 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
772
773         PR target/63950
774         * config/aarch64/arm_neon.h (__AARCH64_NUM_LANES, __aarch64_lane *2):
775         New.
776         (aarch64_vset_lane_any): Redefine using previous, same for BE + LE.
777         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
778         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
779         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64): Remove
780         number of lanes.
781         (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8, vld1_lane_p16,
782         vld1_lane_s8, vld1_lane_s16, vld1_lane_s32, vld1_lane_s64,
783         vld1_lane_u8, vld1_lane_u16, vld1_lane_u32, vld1_lane_u64): Call
784         __aarch64_vset_lane_any rather than vset_lane_xxx.
785
786 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
787
788         * config/aarch64/aarch64.md (absdi2): Remove scratch operand by
789         earlyclobbering result operand.
790
791         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
792         Remove final qualifier_internal.
793         (aarch64_fold_builtin): Stop folding abs builtins, except on floats.
794
795 2014-12-09  Wilco Dijkstra  <wilco.dijkstra@arm.com>
796
797         * gcc/config/aarch64/aarch64-protos.h (tune-params): Add reasociation
798         tuning parameters.
799         * gcc/config/aarch64/aarch64.c (TARGET_SCHED_REASSOCIATION_WIDTH):
800         Define.
801         (aarch64_reassociation_width): New function.
802         (generic_tunings): Add reassociation tuning parameters.
803         (cortexa53_tunings): Likewise.
804         (cortexa57_tunings): Likewise.
805         (thunderx_tunings): Likewise.
806
807 2014-12-09  Andrew Pinski  apinski@cavium.com
808             Kyrylo Tkachov  kyrylo.tkachov@arm.com
809
810         * config/aarch64/aarch64.c (AARCH64_FUSE_CMP_BRANCH): New define.
811         (thunderx_tunings): Add AARCH64_FUSE_CMP_BRANCH to fuseable_ops.
812         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_CMP_BRANCH.
813
814 2014-12-09  David Malcolm  <dmalcolm@redhat.com>
815
816         PR jit/64166
817         * dumpfile.c (gcc::dump_manager::get_dump_file_info_by_switch):
818         New function.
819         (gcc::dump_manager::get_dump_file_name): Split out bulk of
820         implementation into a new overloaded variant taking a
821         dump_file_info *.
822         * dumpfile.h (gcc::dump_manager::get_dump_file_info_by_switch):
823         New function.
824         (gcc::dump_manager::get_dump_file_name): New overloaded variant of
825         this function, taking a dump_file_info *.
826
827 2014-12-09  Uros Bizjak  <ubizjak@gmail.com>
828
829         PR bootstrap/64213
830         Revert:
831         2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
832
833         PR rtl-optimization/64037
834         * combine.c (setup_incoming_promotions): Pass the argument
835         before any promotions happen to promote_function_mode.
836
837 2014-12-09  Richard Biener  <rguenther@suse.de>
838
839         PR tree-optimization/64193
840         * tree-ssa-alias.c (walk_non_aliased_vuses): Add valueize parameter
841         and valueize the VUSE before looking up the def stmt.
842         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
843         * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Pass vn_valueize
844         to walk_non_aliased_vuses.
845         (vn_reference_lookup): Likewise.
846         * tree-ssa-dom.c (lookup_avail_expr): Pass NULL as valueize
847         callback to walk_non_aliased_vuses.
848
849 2014-12-09  Richard Biener  <rguenther@suse.de>
850
851         PR middle-end/64199
852         * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.
853
854 2014-12-09  Richard Biener  <rguenther@suse.de>
855
856         PR tree-optimization/64191
857         * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
858         not relevant (nor are their uses).
859
860 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
861
862         * lto/lto-partition.c (privatize_symbol_name): Correctly
863         privatize instrumentation clones.
864
865 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
866
867         * lto-cgraph.c (input_cgraph_1): Don't break existing
868         instrumentation clone references.
869         * lto/lto-symtab.c (lto_cgraph_replace_node): Redirect
870         instrumented_version references appropriately.
871
872 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
873
874         PR bootstrap/63995
875         * tree-chkp.c (chkp_make_static_bounds): Share bounds var
876         between nodes sharing assembler name.
877
878 2014-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
879
880         PR target/64204
881         * config/rs6000/rs6000.c (rs6000_emit_move): Do not split TFmode
882         constant moves if -mupper-regs-df.
883
884         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Optimize moving
885         0.0L to TFmode.
886         (movtd_64bit_nodm): Likewise.
887         (mov<mode>_32bit, FMOVE128 case): Likewise.
888
889 2014-12-08  Sandra Loosemore  <sandra@codesourcery.com>
890
891         * simplify-rtx.c (simplify_relational_operation_1): Handle
892         simplification identities for BICS patterns.
893
894 2014-12-08  Trevor Saunders  <tsaunders@mozilla.com>
895
896         * config/nvptx/nvptx.c: Convert htabs to hash_table.
897
898 2014-12-08  David Edelsohn  <dje.gcc@gmail.com>
899
900         PR target/64226
901         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner)
902         [SYMBOL_REF]: Do not explicitly call create_TOC_reference for
903         TARGET_TOC. Always use rs6000_emit_move.
904
905 2014-12-08  Mark Wielaard  <mjw@redhat.com>
906
907         PR debug/60782
908         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_ATOMIC.
909
910 2014-11-15  David Wohlferd <dw@LimeGreenSocks.com>
911
912         PR target/61692
913         * cfgexpand.c (expand_asm_operands): Count all inline asm params.
914
915 2014-12-08  David Malcolm  <dmalcolm@redhat.com>
916
917         PR jit/63854
918         * cgraph.h (xstrdup_for_dump): New function.
919         * cgraph.c (cgraph_node::get_create): Replace use of xstrdup
920         within fprintf with xstrdup_for_dump.
921         (cgraph_edge::make_speculative): Likewise.
922         (cgraph_edge::resolve_speculation): Likewise.
923         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
924         (cgraph_node::dump): Likewise.
925         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
926         * ipa-cp.c (perhaps_add_new_callers): Likewise.
927         * ipa-inline.c (report_inline_failed_reason): Likewise.
928         (want_early_inline_function_p): Likewise.
929         (edge_badness): Likewise.
930         (update_edge_key): Likewise.
931         (flatten_function): Likewise.
932         (inline_always_inline_functions): Likewise.
933         * ipa-profile.c (ipa_profile): Likewise.
934         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
935         (ipa_make_edge_direct_to_target): Likewise.
936         (remove_described_reference): Likewise.
937         (propagate_controlled_uses): Likewise.
938         * ipa-utils.c (ipa_merge_profiles): Likewise.
939
940 2014-12-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
941
942         PR ipa/64049
943         * ipa-polymorphic-call.c
944         (pa_polymorphic_call_context::ipa_polymorphic_call): Allow RESULT_DECL.
945
946 2014-12-08  Alex Velenko  <Alex.Velenko@arm.com>
947
948         * config/aarch64/aarch64.md (and_one_cmpl<mode>3_compare0_no_reuse):
949         New define_insn.
950         * (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse):
951         Likewise.
952
953 2014-12-08  Felix Yang  <felix.yang@huawei.com>
954             Haijian Zhang  <z.zhanghaijian@huawei.com>
955             Jiji Jiang  <jiangjiji@huawei.com>
956             Pengfei Sui  <suipengfei@huawei.com>
957
958         * config/aarch64/arm_neon.h (vrecpe_u32, vrecpeq_u32): Rewrite using
959         builtin functions.
960         (vfma_f32, vfmaq_f32, vfmaq_f64, vfma_n_f32, vfmaq_n_f32, vfmaq_n_f64,
961         vfms_f32, vfmsq_f32, vfmsq_f64): Likewise.
962         (vhsub_s8, vhsub_u8, vhsub_s16, vhsub_u16, vhsub_s32, vhsub_u32,
963         vhsubq_s8, vhsubq_u8, vhsubq_s16, vhsubq_u16, vhsubq_s32, vhsubq_u32,
964         vsubhn_s16, vsubhn_u16, vsubhn_s32, vsubhn_u32, vsubhn_s64, vsubhn_u66,
965         vrsubhn_s16, vrsubhn_u16, vrsubhn_s32, vrsubhn_u32, vrsubhn_s64,
966         vrsubhn_u64, vsubhn_high_s16, vsubhn_high_u16, vsubhn_high_s32,
967         vsubhn_high_u32, vsubhn_high_s64, vsubhn_high_u64, vrsubhn_high_s16,
968         vrsubhn_high_u16, vrsubhn_high_s32, vrsubhn_high_u32, vrsubhn_high_s64,
969         vrsubhn_high_u64): Likewise.
970         * config/aarch64/iterators.md (VDQ_SI): New mode iterator.
971         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_URECPE.
972         * config/aarch64/aarch64-simd.md (aarch64_urecpe<mode>): New pattern.
973         * config/aarch64/aarch64-simd-builtins.def (shsub, uhsub, subhn, rsubhn,
974         subhn2, rsubhn2, urecpe): New builtins.
975
976 2014-12-08  Ilya Tocar  <ilya.tocar@intel.com>
977
978         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi.
979         * config/i386/sse.md (VEC_PERM_AVX2): Add v64qi.
980
981 2014-12-08  Ilya Tocar  <ilya.tocar@intel.com>
982
983         * config/i386/i386.c (expand_vec_perm_broadcast_1): Handle v64qi.
984         (expand_vec_perm_vpermi2_vpshub2): New.
985         (ix86_expand_vec_perm_const_1): Use it.
986         (ix86_vectorize_vec_perm_const_ok): Handle v64qi.
987         * config/i386/sse.md (VEC_PERM_CONST): Add v64qi.
988
989 2014-12-08  Ilya Enkovich  <ilya.enkovich@intel.com>
990
991         * tree-chkp.c (chkp_build_returned_bound): Don't predict
992         return bounds for strchr calls.
993
994 2014-12-08  Ilya Enkovich  <ilya.enkovich@intel.com>
995
996         * tree-chkp.c (chkp_call_returns_bounds_p): New.
997         (chkp_build_returned_bound): Use zero bounds as
998         returned by calls not returning bounds.
999
1000 2014-12-08  Richard Biener  <rguenther@suse.de>
1001
1002         * builtins.c (fold_builtin_0): Remove unused ignore parameter.
1003         (fold_builtin_1): Likewise.
1004         (fold_builtin_3): Likewise.
1005         (fold_builtin_varargs): Likewise.
1006         (fold_builtin_2): Likewise.  Do not fold stpcpy here.
1007         (fold_builtin_n): Adjust.
1008         (fold_builtin_stpcpy): Move to gimple-fold.c.
1009         (gimple_fold_builtin_stpcpy): Moved and gimplified from builtins.c.
1010         (gimple_fold_builtin): Fold stpcpy here.
1011
1012 2014-12-07  Trevor Saunders  <tsaunders@mozilla.com>
1013
1014         * symtab.c (symtab_node::verify): Check for section attribute before
1015         asserting something isn't in a section and a comdat group.
1016
1017 2014-12-07  Oleg Endo  <olegendo@gcc.gnu.org>
1018
1019         PR target/50751
1020         * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
1021
1022 2014-12-07  Eric Botcazou  <ebotcazou@adacore.com>
1023
1024         * compare-elim.c: Fix head comment.
1025         (conforming_compare): Remove redundant test.
1026         (can_eliminate_compare): New function extracted from...
1027         (before_dom_children): ...here.  Use it, replace direct uses of
1028         flag_non_call_exceptions and tidy up.
1029         (maybe_select_cc_mode): Tidy up.
1030
1031 2014-12-07  Felix Yang  <felix.yang@huawei.com>
1032             Shanyao Chen  <chenshanyao@huawei.com>
1033
1034         * config/aarch64/aarch64-simd.md (clrsb<mode>2, popcount<mode>2): New
1035         patterns.
1036         * config/aarch64/aarch64-simd-builtins.def (clrsb, popcount): New
1037         builtins.
1038         * config/aarch64/arm_neon.h (vcls_s8, vcls_s16, vcls_s32, vclsq_s8,
1039         vclsq_s16, vclsq_s32, vcnt_p8, vcnt_s8, vcnt_u8, vcntq_p8, vcntq_s8,
1040         vcntq_u8): Rewrite using builtin functions.
1041
1042 2014-12-07  Jan Hubicka  <hubicka@ucw.cz>
1043
1044         * symtab.c (symtab_node::equal_address_to): New function.
1045         * cgraph.h (symtab_node::equal_address_to): Declare.
1046         * fold-const.c (fold_comparison, fold_binary_loc): Use it.
1047         * c-family/c-common.c: Refuse weaks for symbols that can not change
1048         visibility.
1049
1050 2014-12-07  Jonathan Wakely  <jwakely@redhat.com>
1051
1052         * doc/invoke.texi (Warning Options): Fix spelling and grammar.
1053
1054 2014-12-06  James Greenhalgh  <james.greenhalgh@arm.com>
1055             Sebastian Pop  <s.pop@samsung.com>
1056             Brian Rzycki  <b.rzycki@samsung.com>
1057
1058         PR tree-optimization/54742
1059         * params.def (max-fsm-thread-path-insns, max-fsm-thread-length,
1060         max-fsm-thread-paths): New.
1061
1062         * doc/invoke.texi (max-fsm-thread-path-insns, max-fsm-thread-length,
1063         max-fsm-thread-paths): Documented.
1064
1065         * tree-cfg.c (split_edge_bb_loc): Export.
1066         * tree-cfg.h (split_edge_bb_loc): Declared extern.
1067
1068         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Restore the
1069         original value of cond when simplification fails.
1070         (fsm_find_thread_path): New.
1071         (fsm_find_control_statement_thread_paths): New.
1072         (thread_through_normal_block): Call find_control_statement_thread_paths.
1073
1074         * tree-ssa-threadupdate.c (dump_jump_thread_path): Pretty print
1075         EDGE_FSM_THREAD.
1076         (verify_seme): New.
1077         (duplicate_seme_region): New.
1078         (thread_through_all_blocks): Generate code for EDGE_FSM_THREAD edges
1079         calling duplicate_seme_region.
1080
1081         * tree-ssa-threadupdate.h (jump_thread_edge_type): Add EDGE_FSM_THREAD.
1082
1083 2014-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1084
1085         PR target/64200
1086         * config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
1087         for TARGET_INLINE_STRINGOPS_DYNAMICALLY.
1088
1089 2014-12-05  Jakub Jelinek  <jakub@redhat.com>
1090
1091         PR sanitizer/64170
1092         * sanopt.c (maybe_optimize_asan_check_ifn): If base_checks is
1093         non-NULL, call maybe_get_dominating_check on it even if g is
1094         non-NULL.
1095
1096 2014-12-05  Jeff Law  <law@redhat.com>
1097
1098         * doc/md.texi: Note problems using function calls to determine
1099         insn lengths and point readers to a potential workaround.
1100
1101 2014-12-05  Andreas Schwab  <schwab@linux-m68k.org>
1102
1103         * combine.c (is_parallel_of_n_reg_sets)
1104         (can_split_parallel_of_n_reg_sets): Only define if !HAVE_cc0.
1105
1106 2014-12-05  Andrew Pinski  <apinski@cavium.com>
1107
1108         * config/aarch64/aarch64-simd-builtins.def (bswap): Use CF2 rather
1109         than CF10 so 2 is appended on the code.
1110         * config/aarch64/aarch64-simd.md (bswap<mode>): Rename to ...
1111         (bswap<mode>2): This so it matches for the optabs.
1112
1113 2014-12-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1114
1115         * regrename.c (find_best_rename_reg): Rename to ...
1116         (find_rename_reg): This. Also add a parameter to skip tick check.
1117         * regrename.h: Likewise.
1118         * config/c6x/c6x.c (try_rename_operands): Adapt to above renaming.
1119
1120 2014-12-05  Martin Jambor  <mjambor@suse.cz>
1121
1122         PR ipa/64192
1123         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Convert alignment
1124         from bits to bytes after checking they are byte-aligned.
1125
1126 2014-12-05  Renlin Li  <renlin.li@arm.com>
1127
1128         * config/aarch64/aarch64-opts.h (AARCH64_CORE): Rename IDENT to SCHED.
1129         * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
1130         * config/aarch64/aarch64.c (AARCH64_CORE): Rename X to IDENT,
1131         IDENT to SCHED.
1132
1133 2014-12-05  Bin Cheng  <bin.cheng@arm.com>
1134
1135         * config/aarch64/aarch64.md (load_pair<mode>): Split to
1136         load_pairsi, load_pairdi, load_pairsf and load_pairdf.
1137         (load_pairsi, load_pairdi, load_pairsf, load_pairdf): Split
1138         from load_pair<mode>.  New alternative to support int/fp
1139         registers in fp/int mode patterns.
1140         (store_pair<mode>:): Split to store_pairsi, store_pairdi,
1141         store_pairsf and store_pairdi.
1142         (store_pairsi, store_pairdi, store_pairsf, store_pairdf): Split
1143         from store_pair<mode>.  New alternative to support int/fp
1144         registers in fp/int mode patterns.
1145         (*load_pair_extendsidi2_aarch64): New pattern.
1146         (*load_pair_zero_extendsidi2_aarch64): New pattern.
1147         (aarch64-ldpstp.md): Include.
1148         * config/aarch64/aarch64-ldpstp.md: New file.
1149         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
1150         New.
1151         (extract_base_offset_in_addr): New.
1152         (aarch64_operands_ok_for_ldpstp): New.
1153         (aarch64_operands_adjust_ok_for_ldpstp): New.
1154         * config/aarch64/aarch64.c (enum sched_fusion_type): New enum.
1155         (TARGET_SCHED_FUSION_PRIORITY): New hook.
1156         (fusion_load_store): New functon.
1157         (extract_base_offset_in_addr): New function.
1158         (aarch64_gen_adjusted_ldpstp): New function.
1159         (aarch64_sched_fusion_priority): New function.
1160         (aarch64_operands_ok_for_ldpstp): New function.
1161         (aarch64_operands_adjust_ok_for_ldpstp): New function.
1162
1163 2014-12-05  Olivier Hainque  <hainque@adacore.com>
1164
1165         * defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
1166         * dwarf2cfi.c (init_one_dwarf_reg_size): Honor
1167         DWARF_REG_TO_UNWIND_COLUMN.
1168
1169 2014-12-05  Olivier Hainque  <hainque@adacore.com>
1170
1171         * dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing
1172         one particular reg for expand_builtin_init_dwarf_reg_sizes.
1173         (expand_builtin_init_dwarf_reg_sizes): Rework to use helper and
1174         account for dwarf register spans.
1175
1176 2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>
1177
1178         PR target/64003
1179         * config/i386/i386.md (*jcc_1_bnd): New.
1180         (*jcc_2_bnd): New.
1181         (jump_bnd): New.
1182         (*jcc_1): Remove bnd prefix.
1183         (*jcc_2): Likewise.
1184         (jump): Likewise.
1185
1186 2014-12-05  Renlin Li  <renlin.li@arm.com>
1187
1188         * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
1189         selected_tune.
1190         (aarch64_override_options): Use selected_cpu's tuning.
1191
1192 2014-12-05  David Edelsohn  <dje.gcc@gmail.com>
1193
1194         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
1195         alignment to section name. Increase default alignment to word.
1196
1197 2014-12-05  Martin Jambor  <mjambor@suse.cz>
1198
1199         * cgraph.h (cgraph_node): New method expand_all_artificial_thunks.
1200         (cgraph_edge): New method redirect_callee_duplicating_thunks.
1201         * cgraphclones.c (duplicate_thunk_for_node): Donot expand newly
1202         created thunks.
1203         (redirect_edge_duplicating_thunks): Turned into edge method
1204         redirect_callee_duplicating_thunks.
1205         (cgraph_node::expand_all_artificial_thunks): New method.
1206         (create_clone): Call expand_all_artificial_thunks.
1207         * ipa-cp.c (perhaps_add_new_callers): Call
1208         redirect_callee_duplicating_thunks instead of redirect_callee.
1209         Also call expand_all_artificial_thunks.
1210
1211 2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>
1212
1213         PR target/64056
1214         * doc/sourcebuild.texi: Add mempcpy and stpcpy for Effective-Target Keywords.
1215
1216 2014-12-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1217
1218         * diagnostic.h (diagnostic_expand_location): New inline function.
1219         * diagnostic.c (diagnostic_build_prefix): Use it.
1220         (diagnostic_show_locus): Likewise.
1221
1222 2014-12-04  H.J. Lu  <hongjiu.lu@intel.com>
1223
1224         PR bootstrap/64189
1225         * configure.ac (HAVE_LD_PIE_COPYRELOC): Always define.
1226         * configure: Regenerated.
1227
1228 2014-12-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1229
1230         * diagnostic.c (diagnostic_color_init): New.
1231         * diagnostic.h: Declare.
1232         * gcc.c (driver::global_initializations): Use it.
1233         (driver_handle_option): Handle -fdiagnostics-color_.
1234         * toplev.c: Do not include diagnostic-color.h.
1235         (process_options): Do not initialize color diagnostics here.
1236         * common.opt (fdiagnostics-color=): Add Driver.
1237         * opts-global.c (init_options_once): Initialize color here.
1238         * opts.c (common_handle_option): Use diagnostics_color_init.
1239         * diagnostic-color.h: Fix comment.
1240
1241 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1242
1243         * tree-pretty-print.c (INDENT): Rename "buffer" to "pp".
1244         (NIY): Likewise.
1245         (buffer): Rename this variable to...
1246         (tree_pp): ...this.
1247
1248         (do_niy): Rename param from "buffer" to "pp".
1249         (dump_decl_name): Likewise.
1250         (dump_function_name): Likewise.
1251         (dump_function_declaration): Likewise.
1252         (dump_array_domain): Likewise.
1253         (dump_omp_clause): Likewise.
1254         (dump_omp_clauses): Likewise.
1255         (dump_location): Likewise.
1256         (dump_block_node): Likewise.
1257         (dump_generic_node): Likewise.
1258         (print_declaration): Likewise.
1259         (print_struct_decl): Likewise.
1260         (print_call_name): Likewise.
1261         (pretty_print_string): Likewise.
1262         (newline_and_indent): Likewise.
1263
1264         (print_generic_decl): Update for renaming of "buffer" to
1265         "tree_pp".
1266         (print_generic_stmt): Likewise.
1267         (print_generic_stmt_indented): Likewise.
1268         (print_generic_expr): Likewise.
1269         (maybe_init_pretty_print): Likewise.
1270
1271 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1272
1273         PR jit/63854
1274         * tree-pretty-print.c: Eliminate include of <new>.
1275         (buffer): Convert this variable from a pretty_printer to a
1276         pretty_printer *.
1277         (initialized): Eliminate this variable in favor of the NULL-ness
1278         of "buffer".
1279         (print_generic_decl): Update for "buffer" becoming a pointer.
1280         (print_generic_stmt): Likewise.
1281         (print_generic_stmt_indented): Likewise.
1282         (print_generic_expr): Likewise.
1283         (maybe_init_pretty_print): Likewise, allocating "buffer" on the
1284         heap and using its non-NULL-ness to ensure idempotency.
1285
1286 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1287
1288         PR jit/63854
1289         * ipa-prop.c (ipa_register_cgraph_hooks): Guard insertion of
1290         ipa_add_new_function on function_insertion_hook_holder being
1291         non-NULL.
1292         * ipa-reference.c (ipa_reference_c_finalize): Remove
1293         node_removal_hook_holder and node_duplication_hook_holder if
1294         they've been added to symtab.
1295         * toplev.c (toplev::finalize): Call ipa_reference_c_finalize
1296         before cgraph_c_finalize so that the former can access "symtab".
1297
1298 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1299
1300         * doc/cfg.texi (GIMPLE statement iterators): Add note about
1301         gphi_iterator, and use one in the example.
1302         * doc/gimple.texi (Tuple specific accessors): Add missing
1303         GIMPLE_GOTO section and menu item.
1304         (gimple_build_asm, gimple gimple_build_assign_with_ops)
1305         gimple_call_mark_uninlinable, gimple_call_cannot_inline_p): Remove
1306         description of removed functions.
1307         (gimple_build_assign, gimple_build_bind, gimple_build_call,
1308         gimple_build_call_from_tree, gimple_build_call_vec,
1309         gimple_build_catch, gimple_build_cond,
1310         gimple_build_cond_from_tree, gimple_build_debug_bind,
1311         gimple_build_eh_filter, gimple_build_label, gimple_build_goto,
1312         gimple_build_omp_atomic_load, gimple_build_omp_atomic_store,
1313         gimple_build_omp_continue, gimple_build_omp_critical,
1314         gimple_build_omp_for, gimple_build_omp_parallel,
1315         gimple_build_omp_sections, gimple_build_omp_single,
1316         gimple_build_return, gimple_build_resx, gimple_build_switch,
1317         gimple_build_try): Update return type within description to
1318         reflect changes in gimple.h to using gimple subclasses.
1319         (gimple_build_asm_vec): Update return type, params and
1320         description.
1321         (gimple_asm_ninputs): Update param.
1322         (gimple_asm_noutputs, gimple_asm_nclobbers, gimple_asm_input_op
1323         gimple_asm_set_input_op, gimple_asm_output_op
1324         gimple_asm_set_output_op, gimple_asm_clobber_op,
1325         gimple_asm_set_clobber_op, gimple_asm_string,
1326         gimple_asm_volatile_p, gimple_asm_set_volatile, gimple_bind_vars,
1327         gimple_bind_set_vars, gimple_bind_append_vars, gimple_bind_body,
1328         gimple_bind_set_body, gimple_bind_add_stmt, gimple_bind_add_seq,
1329         gimple_bind_block, gimple_bind_set_block, gimple_call_set_fn,
1330         gimple_call_return_type, gimple_call_set_chain,
1331         gimple_call_set_tail, gimple_call_tail_p,
1332         gimple_call_copy_skip_args, gimple_catch_types,
1333         gimple_catch_types_ptr, gimple_catch_handler,
1334         gimple_catch_set_types, gimple_catch_set_handler,
1335         gimple_cond_set_code, gimple_cond_set_lhs, gimple_cond_set_rhs,
1336         gimple_cond_true_label, gimple_cond_set_true_label,
1337         gimple_cond_set_false_label, gimple_cond_false_label,
1338         gimple_cond_make_false, gimple_cond_make_true,
1339         gimple_eh_filter_set_types, gimple_eh_filter_set_failure,
1340         gimple_eh_must_not_throw_fndecl,
1341         gimple_eh_must_not_throw_set_fndecl, gimple_label_label,
1342         gimple_label_set_label, gimple_goto_set_dest,
1343         gimple_omp_atomic_load_set_lhs, gimple_omp_atomic_load_lhs,
1344         gimple_omp_atomic_load_set_rhs, gimple_omp_atomic_load_rhs,
1345         gimple_omp_atomic_store_set_val, gimple_omp_atomic_store_val,
1346         gimple_omp_continue_control_def,
1347         gimple_omp_continue_control_def_ptr,
1348         gimple_omp_continue_set_control_def,
1349         gimple_omp_continue_control_use,
1350         gimple_omp_continue_control_use_ptr,
1351         gimple_omp_continue_set_control_use, gimple_omp_critical_name,
1352         gimple_omp_critical_name_ptr, gimple_omp_critical_set_name,
1353         gimple_omp_parallel_clauses_ptr, gimple_omp_parallel_set_clauses,
1354         gimple_omp_parallel_child_fn, gimple_omp_parallel_child_fn_ptr,
1355         gimple_omp_parallel_set_child_fn, gimple_omp_parallel_data_arg,
1356         gimple_omp_parallel_data_arg_ptr,
1357         gimple_omp_parallel_set_data_arg, gimple_omp_single_set_clauses,
1358         gimple_phi_set_result, gimple_phi_set_arg, gimple_resx_region,
1359         gimple_resx_set_region, gimple_return_retval,
1360         gimple_return_set_retval, gimple_switch_num_labels,
1361         gimple_switch_set_num_labels, gimple_switch_index,
1362         gimple_switch_set_index, gimple_switch_label,
1363         gimple_switch_set_label, gimple_switch_default_label,
1364         gimple_switch_set_default_label, gimple_try_set_eval,
1365         gimple_try_set_cleanup): Update initial param within description
1366         to reflect changes in gimple.h to using gimple subclasses.
1367         (Adding a new GIMPLE statement code): Update to reflect gimple
1368         statement subclassing.
1369
1370 2014-12-04  Sriraman Tallam  <tmsriram@google.com>
1371             H.J. Lu  <hongjiu.lu@intel.com>
1372
1373         * configure.ac (HAVE_LD_PIE_COPYRELOC): Defined to 1 if
1374         Linux/x86-64 linker supports PIE with copy reloc.
1375         * config.in: Regenerated.
1376         * configure: Likewise.
1377
1378         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
1379         pc-relative address for undefined, non-weak, non-function
1380         symbol reference in 64-bit PIE if linker supports PIE with
1381         copy reloc.
1382
1383         * doc/sourcebuild.texi: Document pie_copyreloc target.
1384
1385 2014-12-04  Marek Polacek  <polacek@redhat.com>
1386
1387         PR middle-end/56917
1388         * fold-const.c (fold_unary_loc): Perform the negation in A's type
1389         when transforming ~ (A - 1) or ~ (A + -1) to -A.
1390
1391 2014-12-04  Tobias Burnus  <burnus@net-b.de>
1392
1393         * Makefile.in: Remove CLOOGLIB and CLOOGINC.
1394
1395 2014-12-04  Richard Biener  <rguenther@suse.de>
1396
1397         * doc/match-and-simplify.texi: Update for recent changes.
1398
1399 2014-12-04  Martin Jambor  <mjambor@suse.cz>
1400
1401         * ipa-prop.h (ipa_alignment): New type.
1402         (ipa_jump_func): New field alignment.
1403         (ipcp_transformation_summary) New type.
1404         (ipcp_grow_transformations_if_necessary): Declare.
1405         (ipa_node_agg_replacements): Removed.
1406         (ipcp_transformations): Declare.
1407         (ipcp_get_transformation_summary): New function.
1408         (ipa_get_agg_replacements_for_node): Use it.
1409         * ipa-cp.c (ipcp_param_lattices): New field alignment.
1410         (print_all_lattices): Also print alignment.
1411         (alignment_bottom_p): New function.
1412         (set_alignment_to_bottom): Likewise.
1413         (set_all_contains_variable): Also set alignment to bottom.
1414         (initialize_node_lattices): Likewise.
1415         (propagate_alignment_accross_jump_function): New function.
1416         (propagate_constants_accross_call): Call it.
1417         (ipcp_store_alignment_results): New function.
1418         (ipcp_driver): Call it.
1419         * ipa-prop.c (ipa_node_agg_replacements): Removed.
1420         (ipcp_transformations): New.
1421         (ipa_print_node_jump_functions_for_edge): Also print alignment.
1422         (ipa_set_jf_unknown): New function.
1423         (detect_type_change_from_memory_writes): Use ipa_set_jf_unknown.
1424         (ipa_compute_jump_functions_for_edge): Also calculate alignment.
1425         (update_jump_functions_after_inlining): Use ipa_set_jf_unknown.
1426         (ipcp_grow_transformations_if_necessary): New function.
1427         (ipa_set_node_agg_value_chain): Use ipcp_transformations.
1428         (ipa_node_removal_hook): Likewise.
1429         (ipa_node_duplication_hook): Also duplicate alignment results.
1430         (ipa_write_jump_function): Also stream alignments.
1431         (ipa_read_jump_function): Use ipa_set_jf_unknown, also stream
1432         alignments.
1433         (write_agg_replacement_chain): Renamed to
1434         write_ipcp_transformation_info, also stream alignments.
1435         (read_agg_replacement_chain): Renamed to
1436         read_ipcp_transformation_info, also stream alignments.
1437         (ipa_prop_write_all_agg_replacement): Renamed to
1438         ipcp_write_transformation_summaries. Stream always.
1439         (ipa_prop_read_all_agg_replacement): Renamed to
1440         ipcp_read_transformation_summaries.
1441         (ipcp_update_alignments): New function.
1442         (ipcp_transform_function): Call it, free also alignments.
1443
1444 2014-12-04  Richard Biener  <rguenther@suse.de>
1445
1446         * gimple-fold.c (replace_stmt_with_simplification): Properly
1447         fail when maybe_push_res_to_seq fails.
1448
1449 2014-12-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
1450
1451         * config/aarch64/aarch64.md (define_insn "prefetch"): New.
1452
1453 2014-12-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1454
1455         * doc/install.texi: Remove mentions of cloog and ppl.
1456         * doc/invoke.texi: Likewise
1457
1458 2014-12-04  Jakub Jelinek  <jakub@redhat.com>
1459
1460         PR c++/56493
1461         * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
1462         Handle COMPOUND_EXPR.
1463
1464 2014-12-04  Richard Biener  <rguenther@suse.de>
1465
1466         * builtins.c (target_newline): Export.
1467         (target_percent_s_newline): Likewise.
1468         (fold_builtin_1): Do not fold printf functions here.
1469         (fold_builtin_2): Likewise.
1470         (fold_builtin_3): Likewise, do not fold strncat.
1471         (fold_builtin_strncat): Move to gimple-fold.c.
1472         (fold_builtin_printf): Likewise.
1473         * builtins.h (target_newline): Declare.
1474         (target_percent_s_newline): Likewise.
1475         * gimple-fold.c (gimple_fold_builtin_strncat): Move from
1476         builtins.c and gimplify.
1477         (gimple_fold_builtin_printf): Likewise.
1478         (gimple_fold_builtin): Fold strncat, printf, printf_unlocked,
1479         vprintf, printf_chk and vprintf_chk here.
1480
1481 2014-12-03  David Edelsohn  <dje.gcc@gmail.com>
1482
1483         * config/rs6000/rs6000.md (floatsidf2_internal): Use std::swap.
1484         (floatunssidf2_internal): Same.
1485         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Same.
1486         (rs6000_emit_int_cmove): Same.
1487         (rs6000_sched_reorder): Same.
1488         (altivec_expand_vec_perm_const): Same.
1489         (rs6000_expand_vec_perm_const_1): Same.
1490
1491 2014-12-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1492
1493         PR rtl-optimization/64010
1494         * reload.c (push_reload): Before reusing a register contained
1495         in an operand as input reload register, ensure that it is not
1496         used in CALL_INSN_FUNCTION_USAGE.
1497
1498 2014-12-03  Ulrich Drepper  <drepper@gmail.com>
1499
1500         * Makefile.in: Use $(LN_S) instead of $(LN) -s and remove file first
1501         if it exists.
1502
1503 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
1504
1505         * expmed.c (expand_mult): Use std::swap.
1506
1507         PR c/59708
1508         * expmed.c (expand_widening_mult): Return const0_rtx if
1509         coeff is 0.
1510
1511         * doc/gimple.texi (gimple_build_assign_with_ops): Remove.
1512         (gimple_build_assign): Document the new overloads.
1513
1514 2014-12-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
1515
1516         PR target/64019
1517         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
1518         not create LO_SUM address for constant addresses if the type can
1519         go in Altivec registers.
1520
1521 2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1522
1523         PR fortran/44054
1524         * pretty-print.c (output_buffer::output_buffer): Init flush_p to true.
1525         (pp_flush): Flush only if flush_p.
1526         (pp_really_flush): New.
1527         * pretty-print.h (struct output_buffer): Add flush_p.
1528         (pp_really_flush): Declare.
1529
1530 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
1531
1532         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add $(GENGTYPE_OBJS),
1533         gcc-ar.o, gcc-nm.o and gcc-ranlib.o.
1534         (GENGTYPE_OBJS): New.
1535         (gengtype-lex.o, gengtype-parse.o, gengtype-state.o, gengtype.o):
1536         Remove explicit dependencies.
1537         (CFLAGS-gengtype-lex.o, CFLAGS-gengtype-parse.o,
1538         CFLAGS-gengtype-state.o, CFLAGS-gengtype.o): Add -DHOST_GENERATOR_FILE
1539         instead of -DGENERATOR_FILE.
1540         (CFLAGS-errors.o): New.
1541         * gengtype.c: Instead of testing GENERATOR_FILE define, test
1542         HOST_GENERATOR_FILE.  If defined, include config.h and define
1543         GENERATOR_FILE afterwards, otherwise include bconfig.h.
1544         * gengtype-parse.c: Likewise.
1545         * gengtype-state.c: Likewise.
1546         * gengtype-lex.l: Likewise.
1547         * errors.c: Likewise.
1548
1549 2014-12-03  Joern Rennecke  <joern.rennecke@embecosm.com>
1550
1551         * config/epiphany/epiphany.c (epiphany_override_options):
1552         If TARGET_SOFT_CMPSF is not enabled, set flag_finite_math_only.
1553         * config/epiphany/epiphany.md (mov<mode>cc): Don't use
1554         reverse_condition_maybe_unordered if flag_finite_math_only is set.
1555
1556 2014-12-03  Andrew Stubbs  <ams@codesourcery.com>
1557
1558         Revert:
1559
1560         2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
1561         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
1562         when architecture is older than ARMv7.
1563
1564 2014-12-03  Richard Biener  <rguenther@suse.de>
1565
1566         * builtins.c (target_percent_c): Export.
1567         (fold_builtin_fprintf): Move to gimple-fold.c.
1568         (fold_builtin_2): Do not fold fprintf functions.
1569         (fold_builtin_3): Likewise.
1570         (fold_builtin_4): Remove.
1571         (fold_builtin_n): Do not call fold_builtin_4.
1572         * builtins.h (target_percent_c): Declare.
1573         * gimple-fold.c (gimple_fold_builtin_fprintf): Move from
1574         builtins.c and gimplify.
1575         (gimple_fold_builtin): Fold fprintf, fprintf_unlocked, vfprintf,
1576         fprintf_chk and vfprintf_chk here.
1577
1578 2014-12-03  Martin Jambor  <mjambor@suse.cz>
1579
1580         PR ipa/64153
1581         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
1582         type sizes before view_converting.
1583
1584 2014-12-03  H.J. Lu  <hongjiu.lu@intel.com>
1585
1586         PR rtl-optimization/64151
1587         PR rtl-optimization/64156
1588         * ira-costs.c (scan_one_insn): Revert r218266.
1589
1590 2014-12-03  Richard Biener  <rguenther@suse.de>
1591
1592         * builtins.c (fold_builtin_fpclassify): Change to take
1593         array of arguments instead of CALL_EXPR tree.
1594         (MAX_ARGS_TO_FOLD_BUILTIN): Remove.
1595         (fold_builtin_n): Dispatch to fold_builtin_varargs.
1596         (fold_call_expr): Always use fold_builtin_n.
1597         (fold_builtin_call_array): Change to not build the unfolded call,
1598         always use fold_builtin_n.
1599         (fold_builtin_varargs): Change to take array of arguments instead
1600         of CALL_EXPR tree.
1601         (fold_call_stmt): Always use fold_builtin_n.
1602         * tree.c (build_call_expr_loc_array): Use fold_build_call_array_loc.
1603         * fold-const.c (fold_build_call_array_loc): Build the call
1604         if fold_builtin_call_array returned NULL_TREE.
1605         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Do not build
1606         a CALL_EXPR and use fold_builtin_call_array instead of
1607         fold_call_expr.
1608
1609 2014-12-03  Alan Lawrence  <alan.lawrence@arm.com>
1610
1611         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>, orn<mode>3,
1612         bic<mode>3, add<mode>3, sub<mode>3, neg<mode>2, abs<mode>2, and<mode>3,
1613         ior<mode>3, xor<mode>3, one_cmpl<mode>2,
1614         aarch64_simd_lshr<mode> ,arch64_simd_ashr<mode>,
1615         aarch64_simd_imm_shl<mode>, aarch64_simd_reg_sshl<mode>,
1616         aarch64_simd_reg_shl<mode>_unsigned, aarch64_simd_reg_shr<mode>_signed,
1617         ashl<mode>3, lshr<mode>3, ashr<mode>3, vashl<mode>3,
1618         reduc_plus_scal_<mode>, aarch64_vcond_internal<mode><mode>,
1619         vcondu<mode><mode>, aarch64_cm<optab><mode>, aarch64_cmtst<mode>):
1620         Change VDQ to VDQ_I.
1621
1622         (mul<mode>3): Change VDQM to VDQ_BHSI.
1623         (aarch64_simd_vec_set<mode>,vashr<mode>3, vlshr<mode>3, vec_set<mode>,
1624         aarch64_mla<mode>, aarch64_mls<mode>, <su><maxmin><mode>3,
1625         aarch64_<sur>h<addsub><mode>): Change VQ_S to VDQ_BHSI.
1626         
1627         (*aarch64_<su>mlal<mode>, *aarch64_<su>mlsl<mode>,
1628         aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>,
1629         aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>, aarch64_<sur>shll_n<mode>):
1630         Change VDW to VD_BHSI.
1631         (*aarch64_combinez<mode>, *aarch64_combinez_be<mode>):
1632         Change VDIC to VD_BHSI.
1633
1634         * config/aarch64/aarch64-simd-builtins.def (saddl, uaddl, ssubl, usubl,
1635         saddw, uaddw, ssubw, usubw, shadd, uhadd, srhadd, urhadd, sshll_n,
1636         ushll_n): Change BUILTIN_VDW to BUILTIN_VD_BHSI.
1637
1638         * config/aarch64/iterators.md (SDQ_I, VDQ, VQ_S, VSDQ_I_BHSI, VDQM, VDW,
1639         VDIC, VDQQHS): Remove.
1640         (Vwtype): Update comment (changing VDW to VD_BHSI).
1641
1642 2014-12-03  Richard Biener  <rguenther@suse.de>
1643
1644         PR middle-end/14541
1645         * builtins.c (fold_builtin_logarithm): Implement simplifications ...
1646         * match.pd: ... here as patterns.
1647
1648 2014-12-03  Prachi Godbole  <prachi.godbole@imgtec.com>
1649
1650         * config/mips/p5600.md (define_automaton, define_cpu_unit): Replace
1651         p5600_agen_pipe and p5600_alu_pipe with p5600_agen_alq_pipe.
1652         (p5600_int_arith_1, p5600_int_arith_2, p5600_int_arith_4): Change
1653         reservation order.
1654
1655 2014-12-03  Tom de Vries  <tom@codesourcery.com>
1656
1657         PR rtl-optimization/63957
1658         * doc/invoke.texi: Replace -fuse-caller-save with -fipa-ra.
1659         * final.c (rest_of_handle_final): Replace flag_use_caller_save with
1660         flag_ipa_ra.
1661         (get_call_reg_set_usage): Same.
1662         * lra-assigns.c (lra_assign): Same.
1663         * lra-constraints.c (need_for_call_save_p): Same.
1664         * lra-lives.c (process_bb_lives): Same.
1665         * lra.c (lra): Same.
1666         * calls.c (expand_call): Same.
1667         (emit_library_call_value_1): Same.
1668         * config/arm/arm.c (arm_option_override): Same.
1669         * opts.c (default_options_table): Replace OPT_fuse_caller_save with
1670         OPT_fipa_ra.
1671         * target.def (call_fusage_contains_non_callee_clobbers): Replace
1672         fuse-caller-save with fipa-ra.
1673         * doc/tm.texi (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Same.
1674         * common.opt: Same.
1675
1676 2014-12-03  Yury Gribov  <y.gribov@samsung.com>
1677
1678         * sanopt.c (maybe_get_single_definition): New function.
1679         (maybe_get_dominating_check): Ditto.
1680         (can_remove_asan_check): Ditto.
1681         (struct tree_map_traits): New struct.
1682         (struct sanopt_ctx): Use custom traits for asan_check_map.
1683         (maybe_optimize_ubsan_null_ifn): Move code to
1684         maybe_get_dominating_check.
1685         (maybe_optimize_asan_check_ifn): Move code and take non-SSA expressions
1686         into account when optimizing.
1687         (sanopt_optimize_walker): Optimize ASan checks even when
1688         recovering.
1689
1690 2014-12-03  Ilya Enkovich  <ilya.enkovich@intel.com>
1691
1692         * config/i386/constraints.md (Yr): New.
1693         * config/i386/i386.h (reg_class): Add NO_REX_SSE_REGS.
1694         (REG_CLASS_NAMES): Likewise.
1695         (REG_CLASS_CONTENTS): Likewise.
1696         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add alternatives
1697         which use only NO_REX_SSE_REGS.
1698         (vec_set<mode>_0): Likewise.
1699         (*vec_setv4sf_sse4_1): Likewise.
1700         (sse4_1_insertps): Likewise.
1701         (*sse4_1_extractps): Likewise.
1702         (*sse4_1_mulv2siv2di3<mask_name>): Likewise.
1703         (*<sse4_1_avx2>_mul<mode>3<mask_name>): Likewise.
1704         (*sse4_1_<code><mode>3<mask_name>): Likewise.
1705         (*sse4_1_<code><mode>3): Likewise.
1706         (*sse4_1_eqv2di3): Likewise.
1707         (sse4_2_gtv2di3): Likewise.
1708         (*vec_extractv4si): Likewise.
1709         (*vec_concatv2si_sse4_1): Likewise.
1710         (vec_concatv2di): Likewise.
1711         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Likewise.
1712         (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Likewise.
1713         (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Likewise.
1714         (<vi8_sse4_1_avx2_avx512>_movntdqa): Likewise.
1715         (<sse4_1_avx2>_mpsadbw): Likewise.
1716         (<sse4_1_avx2>packusdw<mask_name>): Likewise.
1717         (<sse4_1_avx2>_pblendvb): Likewise.
1718         (sse4_1_pblendw): Likewise.
1719         (sse4_1_phminposuw): Likewise.
1720         (sse4_1_<code>v8qiv8hi2<mask_name>): Likewise.
1721         (sse4_1_<code>v4qiv4si2<mask_name>): Likewise.
1722         (sse4_1_<code>v4hiv4si2<mask_name>): Likewise.
1723         (sse4_1_<code>v2qiv2di2<mask_name>): Likewise.
1724         (sse4_1_<code>v2hiv2di2<mask_name>): Likewise.
1725         (sse4_1_<code>v2siv2di2<mask_name>): Likewise.
1726         (sse4_1_ptest): Likewise.
1727         (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Likewise.
1728         (sse4_1_round<ssescalarmodesuffix>): Likewise.
1729         * config/i386/subst.md (mask_prefix4): New.
1730         * config/i386/x86-tune.def (X86_TUNE_AVOID_4BYTE_PREFIXES): New.
1731
1732 2014-12-03  Segher Boessenkool  <segher@kernel.crashing.org>
1733
1734         PR rtl-optimization/52714
1735         * combine.c (try_combine): Allow combining two insns into two
1736         new insns if at least one of those is a noop.
1737
1738 2014-12-03  Bin Cheng  <bin.cheng@arm.com>
1739
1740         * target.def (fusion_priority): Wrap code with @smallexample.
1741         * doc/tm.texi: Regenerated.
1742
1743 2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1744
1745         * diagnostic.c (diagnostic_show_locus): Honor override_column when
1746         placing the caret.
1747
1748 2014-12-02  Dmitry Vyukov  <dvyukov@google.com>
1749
1750         * asan.c: (asan_finish_file): Use default priority for constructors
1751         in kernel mode.
1752
1753 2014-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1754
1755         PR target/64115
1756         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
1757         invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
1758
1759 2014-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1760
1761         PR target/64108
1762         * config/i386/i386.c (decide_alg): Stop only if there aren't
1763         any usable algorithms.
1764
1765 2014-12-02  Tom de Vries  <tom@codesourcery.com>
1766
1767         PR rtl-optimization/63718
1768         * config/arm/arm.c (arm_option_override): Disable fuse-caller-save for
1769         Thumb1.
1770
1771 2014-12-02  Richard Biener  <rguenther@suse.de>
1772
1773         * match.pd: When combining divisions exclude the degenerate
1774         case involving INT_MIN from overflow handling.
1775
1776 2014-12-02  Wilco Dijkstra  <wilco.dijkstra@arm.com>
1777
1778         * ira-costs.c (scan_one_insn): Improve spill cost adjustment.
1779
1780 2014-12-02  Martin Jambor  <mjambor@suse.cz>
1781
1782         PR ipa/63814
1783         * ipa-cp.c (same_node_or_its_all_contexts_clone_p): New function.
1784         (cgraph_edge_brings_value_p): New parameter dest, use
1785         same_node_or_its_all_contexts_clone_p and check availability.
1786         (cgraph_edge_brings_value_p): Likewise.
1787         (get_info_about_necessary_edges): New parameter dest, pass it to
1788         cgraph_edge_brings_value_p.  Update caller.
1789         (gather_edges_for_value): Likewise.
1790         (perhaps_add_new_callers): Use cgraph_edge_brings_value_p to check
1791         both the destination and availability.
1792
1793 2014-12-02  Uros Bizjak  <ubizjak@gmail.com>
1794
1795         PR target/64113
1796         * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
1797         using post-reload splitter.  Use peephole2 pass instead.
1798         (call_value_osf_tlsldm): Ditto.
1799         (TLS_CALL): New int iterator.
1800         (tls): New int attribute.
1801         (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
1802         and call_value_tlsldm using TLS_CALL int iterator.
1803
1804 2014-12-02  Richard Biener  <rguenther@suse.de>
1805             Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
1806
1807         * genmatch.c: Include hash-set.h.
1808         (fatal_at): Add source_location overload.
1809         (parser::record_operlist): New method.
1810         (parser::push_simplify): Likewise.
1811         (parser::oper_lists_set): New member.
1812         (parser::oper_lists): Likewise.
1813         (parser::parse_operation): Record seen operator list references.
1814         (parser::parse_c_expr): Likewise.
1815         (parser::parse_simplify): Init oper_lists_set and oper_lists
1816         and use push_simplify.
1817         (parser::parser): Init oper_lists_set and oper_lists.
1818
1819 2014-12-02  Richard Biener  <rguenther@suse.de>
1820
1821         * match.pd: Restrict division combining to trunc_div and
1822         exact_div.
1823
1824 2014-12-02  Jakub Jelinek  <jakub@redhat.com>
1825
1826         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv):
1827         Remove NULL last argument from create_tmp_var calls.
1828         * config/mips/mips.c (mips_atomic_assign_expand_fenv): Likewise.
1829         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Likewise.
1830         * config/i386/i386.c (add_condition_to_bb,
1831         ix86_atomic_assign_expand_fenv): Likewise.
1832         * config/mep/mep.c (mep_gimplify_va_arg_expr): Likewise.
1833         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
1834         * config/aarch64/aarch64-builtins.c
1835         (aarch64_atomic_assign_expand_fenv): Likewise.
1836         * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
1837         Likewise.
1838         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Likewise.
1839         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Likewise.
1840         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
1841
1842         * config/alpha/alpha.c (alpha_gimple_fold_builtin): Use
1843         gimple_build_assign instead of gimple_build_assign_with_ops and swap
1844         the order of first two arguments.
1845         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
1846         Likewise.  Remove last NULL_TREE argument.
1847
1848 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1849
1850         PR rtl-optimization/59278
1851         * combine (reg_dead_at_p): Consider REG_UNUSED notes.
1852
1853 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1854
1855         * combine.c (try_combine): Use is_parallel_of_n_reg_sets some more.
1856
1857 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1858
1859         * combine.c (is_parallel_of_n_reg_sets): New function.
1860         (can_split_parallel_of_n_reg_sets): New function.
1861         (try_combine): If I2 is a PARALLEL of two SETs, split it into
1862         two insns if possible.
1863
1864 2014-12-01  Tobias Burnus  <burnus@net-b.de>
1865             Jack Howarth  <howarth@bromo.med.uc.edu>
1866
1867         PR middle-end/64017
1868         * configure.ac (ac_has_isl_schedule_constraints_compute_schedule):
1869         New check.
1870         * doc/install.texi (ISL): Permit ISL 0.14.
1871         * graphite-optimize-isl.c (getScheduleForBandList, optimize_isl):
1872         Conditionally use ISL 0.13+ functions.
1873         * graphite-interchange.c: Make 'extern "C"' conditional.
1874         * graphite-isl-ast-to-gimple.c: Ditto.
1875         * graphite-poly.c: Ditto.
1876         * graphite-sese-to-poly.c: Ditto.
1877         * config.in: Regenerate.
1878         * gcc/configure: Regenerate.
1879
1880 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1881
1882         * combine.c (distribute_links): Handle multiple SETs.
1883
1884 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1885
1886         * combine.c (struct insn_link): New field `regno'.
1887         (alloc_insn_link): New parameter `regno'.  Use it.
1888         (find_single_use): Check the new field.
1889         (can_combine_def_p, can_combine_use_p): New functions.  Split
1890         off from ...
1891         (create_log_links): ... here.  Correct data type of `regno'.
1892         Adjust call to alloc_insn_link.
1893         (adjust_for_new_dest): Find regno, use it in call to
1894         alloc_insn_link.
1895         (try_combine): Check reg_used_between_p when combining a PARALLEL
1896         as earlier insn.  Adjust call to alloc_insn_link.
1897         (distribute_links): Check the new field.
1898
1899 2014-12-01  David Malcolm  <dmalcolm@redhat.com>
1900
1901         PR jit/63854
1902         * real.c (real_from_string): Add missing mpfr_clear.
1903
1904 2014-12-01  David Malcolm  <dmalcolm@redhat.com>
1905
1906         PR jit/63854
1907         * tree-ssa-math-opts.c (execute_cse_sincos_1): Fix a missing
1908         release of stmts by converting it to an auto_vec.
1909
1910 2014-12-01  Richard Biener  <rguenther@suse.de>
1911
1912         * Makefile.in (gimple-match.o-warn): Use -Wno-unused instead of
1913         -Wno-unused-variable and -Wno-unused-but-set-variable to restore
1914         bootstrap with old GCC.
1915         (generic-match.o-warn): Likewise.
1916
1917 2014-12-01  Richard Biener  <rguenther@suse.de>
1918
1919         * fold-const.c (const_binop): Handle POINTER_PLUS_EXPR.
1920         Properly handle FIXED_CST shifts by INTEGER_CST.
1921         (const_binop): Move COMPLEX_EXPR, VEC_PACK_TRUNC_EXPR,
1922         VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR,
1923         VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_EVEN_EXPR and
1924         VEC_WIDEN_MULT_ODD_EXPR handling here from ...
1925         (fold_binary_loc): ... here.  Call const_binop overload
1926         with result type.
1927
1928 2014-12-01  Marek Polacek  <polacek@redhat.com>
1929             Jakub Jelinek  <jakub@redhat.com>
1930
1931         PR sanitizer/64121
1932         * ubsan.c (instrument_object_size): Stop searching if the base
1933         occurs in abnormal phi.
1934
1935 2014-12-01  Marek Polacek  <polacek@redhat.com>
1936
1937         PR sanitizer/63956
1938         * ubsan.c (is_ubsan_builtin_p): Check also built-in class.
1939
1940 2014-12-01  Jakub Jelinek  <jakub@redhat.com>
1941
1942         * gimple.h (gimple_build_assign_stat): Remove prototype.
1943         (gimple_build_assign): Remove define.  Add overload prototypes
1944         with tree lhs and either a tree rhs, or enum tree_code and
1945         1, 2 or 3 tree operands.
1946         * gimple.c (gimple_build_assign_stat): Renamed to...
1947         (gimple_build_assign): ... this.  Add overloads with
1948         enum tree_code and 1, 2 or 3 tree operands.
1949         (gimple_build_assign_with_ops): Remove 1 and 2 operand overloads.
1950         Rename the 3 operand overload to ...
1951         (gimple_build_assign_1): ... this.  Make it static inline.
1952         * tree-ssa-strlen.c (get_string_length): Use gimple_build_assign
1953         instead of gimple_build_assign_with_ops, swap the order of first
1954         two arguments and adjust formatting where necessary.
1955         * tree-vect-slp.c (vect_get_constant_vectors,
1956         vect_create_mask_and_perm): Likewise.
1957         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
1958         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
1959         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
1960         * tsan.c (instrument_builtin_call): Likewise.
1961         * tree-chkp.c (chkp_compute_bounds_for_assignment,
1962         chkp_generate_extern_var_bounds): Likewise.
1963         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
1964         * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
1965         * gimple-builder.c (build_assign, build_type_cast): Likewise.
1966         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
1967         * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
1968         gimple_mod_subtract): Likewise.
1969         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
1970         * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
1971         vect_recog_sad_pattern, vect_handle_widen_op_by_const,
1972         vect_recog_widen_mult_pattern, vect_recog_pow_pattern,
1973         vect_recog_widen_sum_pattern, vect_operation_fits_smaller_type,
1974         vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern,
1975         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
1976         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
1977         adjust_bool_pattern_cast, adjust_bool_pattern,
1978         vect_recog_bool_pattern): Likewise.
1979         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge,
1980         insert_initializers, introduce_cast_before_cand,
1981         replace_one_candidate): Likewise.
1982         * tree-ssa-math-opts.c (insert_reciprocals, powi_as_mults_1,
1983         powi_as_mults, build_and_insert_binop, build_and_insert_cast,
1984         pass_cse_sincos::execute, bswap_replace, convert_mult_to_fma):
1985         Likewise.
1986         * tree-tailcall.c (adjust_return_value_with_ops,
1987         update_accumulator_with_ops): Likewise.
1988         * tree-predcom.c (reassociate_to_the_same_stmt): Likewise.
1989         * tree-ssa-reassoc.c (build_and_add_sum,
1990         optimize_range_tests_to_bit_test, update_ops,
1991         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
1992         negate_value, repropagate_negates, attempt_builtin_powi,
1993         reassociate_bb): Likewise.
1994         * tree-vect-loop.c (vect_is_simple_reduction_1,
1995         get_initial_def_for_induction, vect_create_epilog_for_reduction):
1996         Likewise.
1997         * ipa-split.c (split_function): Likewise.
1998         * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
1999         abs_replacement, neg_replacement): Likewise.
2000         * tree-profile.c (gimple_gen_edge_profiler): Likewise.
2001         * tree-vrp.c (simplify_truth_ops_using_ranges,
2002         simplify_float_conversion_using_ranges,
2003         simplify_internal_call_using_ranges): Likewise.
2004         * gimple-fold.c (rewrite_to_defined_overflow, gimple_build): Likewise.
2005         * tree-vect-generic.c (expand_vector_divmod,
2006         optimize_vector_constructor): Likewise.
2007         * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn,
2008         instrument_bool_enum_load): Likewise.
2009         * tree-ssa-loop-manip.c (create_iv): Likewise.
2010         * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
2011         expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
2012         expand_cilk_for, simd_clone_adjust): Likewise.
2013         * trans-mem.c (expand_transaction): Likewise.
2014         * tree-vect-data-refs.c (bump_vector_ptr, vect_permute_store_chain,
2015         vect_setup_realignment, vect_permute_load_chain,
2016         vect_shift_permute_load_chain): Likewise.
2017         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
2018         vectorizable_simd_clone_call, vect_gen_widened_results_half,
2019         vect_create_vectorized_demotion_stmts, vectorizable_conversion,
2020         vectorizable_shift, vectorizable_operation, vectorizable_store,
2021         permute_vec_elements, vectorizable_load): Likewise.
2022
2023 2014-12-01  Richard Biener  <rguenther@suse.de>
2024
2025         PR middle-end/64111
2026         * tree.c (int_cst_hasher::hash): Use TYPE_UID instead of
2027         htab_hash_pointer to not break PCH.
2028
2029 2014-12-01  Richard Biener  <rguenther@suse.de>
2030
2031         PR tree-optimization/15346
2032         * Makefile.in (gimple-match.o-warn): Remove -Wno-unused-parameter,
2033         add -Wno-unused-but-set-variable.
2034         * match.pd: Combine two successive divisions.
2035
2036 2014-12-01  Richard Biener  <rguenther@suse.de>
2037
2038         PR middle-end/64126
2039         * match.pd: Allow conversions in ~A + 1 -> -A, add -A - 1 -> ~A
2040         and -1 - A -> ~A.
2041         * fold-const.c (fold_binary_loc): Remove transforms here.
2042
2043 2014-12-01  Maciej W. Rozycki  <macro@codesourcery.com>
2044
2045         * config/mips/mips.c (mips16_build_call_stub): Move the save of
2046         the return address in $18 ahead of passing arguments to FPRs.
2047
2048 2014-12-01  Ilya Enkovich  <ilya.enkovich@intel.com>
2049
2050         PR target/64055
2051         * tree-chkp.c (chkp_find_bound_slots_1): Allow non constant
2052         values in array domain.
2053
2054 2014-12-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
2055
2056         PR tree-optimization/63941
2057         * tree-if-conv.c (add_to_predicate_list): Delete wrong assertion that
2058         DOM_BB has non-true predicate, conditionally set non-true predicate
2059         for BB.
2060
2061 2014-12-01  Martin Jambor  <mjambor@suse.cz>
2062
2063         PR ipa/63551
2064         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
2065         value of the argument to the type of the value in the condition.
2066
2067 2014-12-01  Oleg Endo  <olegendo@gcc.gnu.org>
2068
2069         PR target/63986
2070         PR target/51244
2071         * config/sh/sh.c (sh_unspec_insn_p,
2072         sh_insn_operands_modified_between_p): New functions.
2073         (sh_split_movrt_negc_to_movt_xor): Do not delete insn if its operands
2074         are modified or if it has side effects, may trap or is volatile.
2075
2076 2014-11-29  Jakub Jelinek  <jakub@redhat.com>
2077
2078         * gimple-expr.h (create_tmp_var_raw, create_tmp_var,
2079         create_tmp_reg): Add default NULL value to last argument.
2080         * tree-ssanames.h (make_ssa_name, copy_ssa_name): Likewise.
2081         * gimple-low.c (lower_builtin_posix_memalign): Remove NULL
2082         last argument from create_tmp_var_raw, create_tmp_var,
2083         create_tmp_reg, make_ssa_name and copy_ssa_name calls.
2084         * tree-ssa-strlen.c (get_string_length): Likewise.
2085         * tree-emutls.c (gen_emutls_addr, lower_emutls_1): Likewise.
2086         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
2087         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
2088         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
2089         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
2090         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
2091         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
2092         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
2093         * tsan.c (instrument_expr, instrument_builtin_call,
2094         instrument_func_entry): Likewise.
2095         * varpool.c (add_new_static_var): Likewise.
2096         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
2097         * gimplify.c (internal_get_tmp_var, gimplify_return_expr,
2098         gimplify_modify_expr_to_memcpy, gimplify_modify_expr_to_memset,
2099         gimplify_init_ctor_eval_range, gimplify_init_constructor,
2100         gimplify_omp_atomic, gimplify_expr): Likewise.
2101         * gimple-builder.c (build_assign, build_type_cast): Likewise.
2102         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1,
2103         slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge,
2104         vect_loop_versioning): Likewise.
2105         * tree-if-conv.c (version_loop_for_if_conversion): Likewise.
2106         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
2107         * tree-vect-patterns.c (vect_handle_widen_op_by_const,
2108         vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
2109         vect_recog_over_widening_pattern): Likewise.
2110         * tree-sra.c (build_ref_for_offset, create_access_replacement):
2111         Likewise.
2112         * tree-cfg.c (make_blocks): Likewise.
2113         * tree-eh.c (lower_eh_constructs_2, lower_resx, lower_eh_dispatch):
2114         Likewise.
2115         * tree-ssa-propagate.c (update_call_from_tree): Likewise.
2116         * tree-complex.c (get_component_ssa_name, expand_complex_div_wide):
2117         Likewise.
2118         * tree-ssa-math-opts.c (build_and_insert_cast): Likewise.
2119         * tree-tailcall.c (update_accumulator_with_ops): Likewise.
2120         * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm,
2121         execute_load_motion, reassociate_to_the_same_stmt): Likewise.
2122         * tree-ssa-reassoc.c (build_and_add_sum,
2123         optimize_range_tests_to_bit_test, update_ops,
2124         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
2125         negate_value, repropagate_negates): Likewise.
2126         * tree-vect-loop.c (vect_is_simple_reduction_1,
2127         vect_create_epilog_for_reduction): Likewise.
2128         * ipa-split.c (split_function): Likewise.
2129         * tree-inline.c (remap_ssa_name, setup_one_parameter,
2130         declare_return_variable, tree_function_versioning): Likewise.
2131         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
2132         * cfgexpand.c (update_alias_info_with_stack_vars, expand_used_vars):
2133         Likewise.
2134         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
2135         neg_replacement): Likewise.
2136         * gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
2137         Likewise.
2138         * tree-vrp.c (simplify_truth_ops_using_ranges,
2139         simplify_float_conversion_using_ranges,
2140         simplify_internal_call_using_ranges): Likewise.
2141         * tree-switch-conversion.c (emit_case_bit_tests,
2142         build_one_array, build_arrays, gen_def_assigns): Likewise.
2143         * gimple-fold.c (gimple_fold_builtin_memory_op,
2144         gimple_fold_builtin_strcat, gimple_fold_call, gimple_build): Likewise.
2145         * tree-vect-generic.c (expand_vector_divmod,
2146         optimize_vector_constructor): Likewise.
2147         * ubsan.c (ubsan_encode_value, ubsan_expand_null_ifn,
2148         ubsan_expand_objsize_ifn, instrument_si_overflow,
2149         instrument_bool_enum_load, instrument_nonnull_arg): Likewise.
2150         * tree-outof-ssa.c (insert_backedge_copies): Likewise.
2151         * tree-ssa-loop-manip.c (create_iv,
2152         tree_transform_and_unroll_loop): Likewise.
2153         * omp-low.c (scan_omp_parallel, lower_rec_simd_input_clauses,
2154         lower_rec_input_clauses, lower_lastprivate_clauses,
2155         expand_parallel_call, expand_omp_for_static_chunk,
2156         expand_omp_atomic_pipeline, expand_omp_target,
2157         maybe_add_implicit_barrier_cancel, lower_omp_single_simple,
2158         lower_omp_critical, lower_omp_for, task_copyfn_copy_decl,
2159         lower_depend_clauses, lower_omp_target, lower_omp_1,
2160         ipa_simd_modify_stmt_ops, simd_clone_adjust): Likewise.
2161         * tree-parloops.c (take_address_of, create_phi_for_local_result,
2162         create_call_for_reduction_1, separate_decls_in_region,
2163         create_parallel_loop): Likewise.
2164         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence,
2165         handle_scalar_deps_crossing_scop_limits): Likewise.
2166         * trans-mem.c (lower_transaction, build_tm_load, build_tm_store,
2167         expand_assign_tm, expand_call_tm, expand_transaction,
2168         ipa_tm_insert_gettmclone_call): Likewise.
2169         * tree-vect-data-refs.c (bump_vector_ptr, vect_setup_realignment):
2170         Likewise.
2171         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
2172         vectorizable_call, vectorizable_simd_clone_call,
2173         vectorizable_conversion, vectorizable_store, permute_vec_elements,
2174         vectorizable_load): Likewise.
2175
2176 2014-11-29  Tobias Burnus  <burnus@net-b.de>
2177             Manuel López-Ibáñez  <manu@gcc.gnu.org>
2178
2179         * opt-functions.awk (lang_enabled_by): Support || for
2180         enabled-by.
2181         * optc-gen.awk: Ditto.
2182         * doc/options.texi (LangEnabledBy, EnabledBy): Document the
2183         || syntax.
2184
2185 2014-11-28  Mike Stump  <mikestump@comcast.net>
2186
2187         * bitmap.c (bitmap_ior): Zap current as it could be deleted.
2188         (bitmap_ior_and_compl): Likewise.
2189
2190 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
2191
2192         PR target/64061
2193         * lra.c (lra_substitute_pseudo): Ignore constant with int mode for
2194         subreg.
2195
2196 2014-11-28  Segher Boessenkool  <segher@kernel.crashing.org>
2197
2198         PR target/64093
2199         * config/rs6000/rs6000.md (and<mode>3): Don't generate
2200         and<mode>3_imm unless rs6000_gen_cell_microcode is true.
2201
2202 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
2203
2204         PR rtl-optimization/64087
2205         * lra-lives.c (process_bb_lives): Add debug output.
2206         (lra_create_live_ranges): Don't remove dead insn on the second
2207         call of lra_create_live_ranges_1.
2208
2209 2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
2210
2211         PR rtl-optimization/64037
2212         * combine.c (setup_incoming_promotions): Pass the argument
2213         before any promotions happen to promote_function_mode.
2214
2215 2014-11-28  Evgeny Stupachenko  <evstupac@gmail.com>
2216
2217         * tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift
2218         permutations to loads group of size 3.
2219
2220 2014-11-28  Jiong Wang  <jiong.wang@arm.com>
2221
2222         * config/arm/arm.md (copysignsf3): New pattern.
2223         (copysigndf3): Likewise.
2224
2225 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
2226             Ilya Verbin  <ilya.verbin@intel.com>
2227
2228         * omp-low.c (lower_omp_critical): Mark critical sections
2229         inside target functions as offloadable.
2230
2231 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
2232
2233         * lto-wrapper.c (run_gcc): Set have_lto and have_offload if at least one
2234         file contains sections with LTO and offload IR, respectively.
2235
2236 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
2237
2238         * cgraphunit.c (ipa_passes): Handle flag_generate_offload.
2239         (symbol_table::compile): Set flag_generate_offload if there is something
2240         to offload.
2241         * common.opt (flag_generate_offload): New Variable declaration.
2242         * dwarf2out.c (dwarf2out_finish): Handle flag_generate_offload.
2243         * ipa-inline-analysis.c (inline_generate_summary): Do not skip if
2244         flag_generate_offload is set.
2245         * lto-streamer.c (gate_lto_out): Handle flag_generate_offload.
2246         * passes.c (ipa_write_summaries): Do not skip if flag_generate_offload
2247         is set.
2248         * toplev.c (compile_file): Emit LTO marker if offload info has been
2249         previously emitted.  Do not emit lto_slim marker if
2250         flag_generate_offload is without flag_generate_lto.
2251         * tree.c (free_lang_data): Do not skip if flag_generate_offload is set.
2252
2253 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2254
2255         * config/arm/arm-cores.def (cortex-a17.cortex-a7): New entry.
2256         * config/arm/arm-tables.opt: Regenerate.
2257         * config/arm/arm-tune.md: Regenerate.
2258         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a17.cortex-a7.
2259         * config/arm/t-aprofile: Add cortex-a17.cortex-a7 entry to
2260         MULTILIB_MATCHES.
2261
2262 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2263
2264         * config/arm/arm.md (generic_sched): Specify cortexa17 in 'no' list.
2265         Include cortex-a17.md.
2266         * config/arm/arm.c (arm_issue_rate): Specify 2 for cortexa17.
2267         * config/arm/arm-cores.def (cortex-a17): New entry.
2268         * config/arm/arm-tables.opt: Regenerate.
2269         * config/arm/arm-tune.md: Regenerate.
2270         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=cortex-a17.
2271         * config/arm/cortex-a17.md: New file.
2272         * config/arm/cortex-a17-neon.md: New file.
2273         * config/arm/driver-arm.c (arm_cpu_table): Add entry for cortex-a17.
2274         * config/arm/t-aprofile: Add cortex-a17 entries to MULTILIB_MATCHES.
2275
2276 2014-11-28  Richard Biener  <rguenther@suse.de>
2277
2278         PR middle-end/64084
2279         * genmatch.c (dt_node::gen_kids_1): New function, split out
2280         from dt_node::gen_kids.
2281         (decision_tree::cmp_node): DT_TRUE are generally not equal.
2282         (decision_tree::find_node): Treat DT_TRUE as barrier for
2283         node CSE on the same level.
2284         (dt_node::append_node): Do not keep DT_TRUE last.
2285         (dt_node::gen_kids): Emit code after each DT_TRUE node seen.
2286
2287 2014-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2288
2289         * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
2290         -march=armv8-a+crc.
2291
2292 2014-11-27  Uros Bizjak  <ubizjak@gmail.com>
2293
2294         * config/i386/i386.md (preferred_for_size): New attribute
2295         (*pushxf): Split Yx*r constraints to r,*r.  Use preferred_for_size
2296         attribute to conditionally disable alternative 1.
2297         (*pushdf): Split Yd*r constraints to r,*r.  Use preferred_for_size
2298         and prefered_for_speed attributes to conditionally disable
2299         alternative 1.
2300         (*movxf_internal): Split Yx*r constraints to r,*r.  Use
2301         preferred_for_size attribute to conditionally disable
2302         alternatives 3 and 4.
2303         (*movdf_internal): Split Yd*r constraints to r,*r.  Use
2304         preferred_for_size and prefered_for_speed attributes to conditionally
2305         disable alternatives 3 and 4.
2306         * config/i386/constraints.md (Yd, Yx): Remove register constraints.
2307
2308 2014-11-27  Eric Botcazou  <ebotcazou@adacore.com>
2309
2310         * dwarf2out.c (set_block_origin_self): Skip nested functions.
2311
2312 2014-11-27  H.J. Lu  <hongjiu.lu@intel.com>
2313
2314         PR target/63833
2315         * config/i386/i386.h (REAL_PIC_OFFSET_TABLE_REGNUM): Use
2316         R15_REG for 64-bit.
2317         * config/i386/rdos64.h (REAL_PIC_OFFSET_TABLE_REGNUM): Removed.
2318
2319 2014-11-27  Martin Liska  <mliska@suse.cz>
2320             David Malcolm  <dmalcolm@redhat.com>
2321
2322         * ipa-icf.c (sem_function::equals_private): int* is replaced with
2323         auto_vec.
2324         (sem_function::bb_dict_test): Likewise.
2325         * ipa-icf.h: Likewise.
2326
2327 2014-11-27  Richard Biener  <rguenther@suse.de>
2328
2329         PR middle-end/64088
2330         * fold-const.c (const_unop): Re-instantiate missing condition
2331         before calling fold_abs_const.
2332
2333         PR tree-optimization/64088
2334         * tree-ssa-tail-merge.c (update_debug_stmt): After resetting
2335         the stmt break from the loop over use operands.
2336
2337 2014-11-27  Ilya Tocar  <ilya.tocar@intel.com>
2338
2339         * config/i386/cpuid.h (bit_MPX, bit_BNDREGS, bit_BNDCSR):
2340         Define.
2341         * config/i386/i386.c (get_builtin_code_for_version): Add avx512f.
2342         (fold_builtin_cpu): Ditto.
2343         * doc/extend.texi: Documment it.
2344
2345 2014-11-27  Jakub Jelinek  <jakub@redhat.com>
2346
2347         PR middle-end/64067
2348         * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
2349         Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
2350         not only if modifier is EXPAND_INITIALIZER, but whenever
2351         COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
2352
2353         PR tree-optimization/64024
2354         * tree-vectorizer.h (struct _stmt_vec_info): Remove simd_clone_fndecl
2355         field.  Add simd_clone_info field.
2356         (STMT_VINFO_SIMD_CLONE_FNDECL): Remove.
2357         (STMT_VINFO_SIMD_CLONE_INFO): Define.
2358         * tree-vect-stmts.c (vectorizable_simd_clone_call): Adjust for
2359         STMT_VINFO_SIMD_CLONE_FNDECL becoming first element of
2360         STMT_VINFO_SIMD_CLONE_INFO vector.  For linear arguments, remember
2361         base and linear_step from analysis phase and use it during transform
2362         phase, biased by the difference between LOOP_VINFO_NITERS{_UNCHANGED,}
2363         multiplied by linear_step.
2364         (free_stmt_vec_info): Release STMT_VINFO_SIMD_CLONE_INFO.
2365
2366         PR lto/64025
2367         * alias.c (find_base_term): Use std::swap.  Prefer tmp2
2368         if it is CONSTANT_P other than CONST_INT.
2369
2370 2014-11-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2371
2372         PR target/59593
2373         * config/arm/arm.c (dump_minipool): dispatch to consttable pattern
2374         based on mode size.
2375         * config/arm/arm.md (consttable_1): Move from config/arm/thumb1.md and
2376         make it TARGET_EITHER.
2377         (consttable_2): Move from config/arm/thumb1.md, make it TARGET_EITHER
2378         and move HFmode handling from consttable_4 to it.
2379         (consttable_4): Move HFmode handling to consttable_2 pattern.
2380         * config/arm/thumb1.md (consttable_1): Move to config/arm/arm.md.
2381         (consttable_2): Ditto.
2382
2383 2014-11-27  Richard Biener  <rguenther@suse.de>
2384
2385         * tree-ssa-sccvn.c (try_to_simplify): Allow
2386         gimple_fold_stmt_to_constant_1 to follow SSA edges.
2387
2388 2014-11-27  Richard Biener  <rguenther@suse.de>
2389
2390         PR tree-optimization/64083
2391         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2392         forcibly mark loop for removal the wrong way.
2393
2394 2014-11-27  Richard Biener  <rguenther@suse.de>
2395
2396         PR middle-end/63704
2397         * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
2398         and instead return false when !fstrict-aliasing.
2399
2400 2014-11-27  Richard Biener  <rguenther@suse.de>
2401
2402         PR tree-optimization/61634
2403         * tree-vect-slp.c: Include gimple-walk.h.
2404         (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
2405         down the SLP tree for one scalar statement.
2406         (vect_detect_hybrid_slp_1): New walker function.
2407         (vect_detect_hybrid_slp_2): Likewise.
2408         (vect_detect_hybrid_slp): Properly handle pattern statements
2409         in a pre-scan over all loop stmts.
2410
2411 2014-11-27  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2412
2413         Revert:
2414         2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2415         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
2416         aarch64_convert_mode, aarch64_gen_ccmp_first,
2417         aarch64_gen_ccmp_next): New functions.
2418         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
2419
2420 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
2421
2422         * gcc.c (SANITIZER_SPEC): Don't error on -fsanitize=thread
2423         without -pie or -shared, error on -fsanitize=thread -static instead.
2424
2425 2014-11-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2426
2427         PR ipa/61190
2428         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Fix comment.
2429         (cgraph_node::function_or_virtual_thunk_symbol): New function.
2430         (cgraph_node::call_for_symbol_and_aliases): Fix comment.
2431         (cgraph_node::call_for_symbol_thunks_and_aliases): Adjust comment.
2432         Add new optional parameter exclude_virtual_thunks.
2433         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Add new
2434         optional parameter exclude_virtual_thunks.
2435         (cgraph_node::set_const_flag): Don't propagate to virtual thunks.
2436         (cgraph_node::set_pure_flag): Likewise.
2437         (cgraph_node::function_symbol): Simplified.
2438         (cgraph_node::function_or_virtual_thunk_symbol): New function.
2439         * ipa-pure-const.c (analyze_function): For virtual thunks set
2440         pure_const_state to IPA_NEITHER.
2441         (propagate_pure_const): Use function_or_virtual_thunk_symbol.
2442
2443 2014-11-26  Richard Biener  <rguenther@suse.de>
2444
2445         PR middle-end/63738
2446         * tree-data-ref.c (split_constant_offset_1): Do not follow
2447         SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2448
2449 2014-11-26  Richard Biener  <rguenther@suse.de>
2450
2451         * fold-const.h (const_unop): Declare.
2452         (const_binop): Likewise.
2453         * fold-const.c (const_binop): Export overload that expects
2454         a type parameter and dispatches to fold_relational_const as well.
2455         Check both operand kinds for guarding the transforms.
2456         (const_unop): New function, with constant folding from fold_unary_loc.
2457         (fold_unary_loc): Dispatch to const_unop for tcc_constant operand.
2458         Remove constant folding done there from the simplifications.
2459         (fold_binary_loc): Check for constants using CONSTANT_CLASS_P.
2460         (fold_negate_expr): Remove dead code from the REAL_CST case.
2461         Avoid building garbage in the COMPLEX_CST case.
2462         * gimple-match-head.c (gimple_resimplify1): Dispatch to
2463         const_unop.
2464         (gimple_resimplify2): Dispatch to const_binop.
2465         (gimple_simplify): Likewise.
2466
2467 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
2468
2469         PR bootstrap/63995
2470         * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Ignore
2471         debug statement when searching for a new position for
2472         bounds load/creation statement.
2473
2474 2014-11-26  Marek Polacek  <polacek@redhat.com>
2475
2476         PR sanitizer/63788
2477         * asan.c (initialize_sanitizer_builtins): Add BT_FN_SIZE_CONST_PTR_INT
2478         var.  Conditionally build BUILT_IN_OBJECT_SIZE decl.
2479         (ATTR_PURE_NOTHROW_LEAF_LIST): Define.
2480
2481 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
2482
2483         PR lto/64075
2484         * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Use
2485         proper size for function_code bitfield.
2486         (pack_ts_function_decl_value_fields): Likewise.
2487
2488 2014-11-21  Mark Wielaard  <mjw@redhat.com>
2489
2490         * doc/invoke.texi (-gdwarf-@{version}): Mention experimental DWARFv5.
2491         * opts.c (common_handle_option): Accept -gdwarf-5.
2492         * dwarf2out.c (is_cxx): Add DW_LANG_C_plus_plus_11 and
2493         DW_LANG_C_plus_plus_14.
2494         (lower_bound_default): Likewise. Plus DW_LANG_C11.
2495         (gen_compile_unit_die): Output DW_LANG_C_plus_plus_11,
2496         DW_LANG_C_plus_plus_14 or DW_LANG_C11.
2497         (output_compilation_unit_header): Output at most a DWARFv4 header.
2498         (output_skeleton_debug_sections): Likewise.
2499         (output_line_info): Likewise.
2500         (output_aranges): Document header version number.
2501
2502 2014-11-26  Richard Biener  <rguenther@suse.de>
2503
2504         * gimple-fold.c (get_symbol_constant_value): Allow all
2505         GIMPLE register type zero-constants.
2506
2507 2014-11-26  Mark Wielaard  <mjw@redhat.com>
2508
2509         * dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the
2510         function decl has TREE_THIS_VOLATILE.
2511
2512 2014-11-26  Richard Biener  <rguenther@suse.de>
2513
2514         PR tree-optimization/62238
2515         * tree-predcom.c (ref_at_iteration): Unshare the expression
2516         before gimplifying it.
2517         (prepare_initializers_chain): Discard unused seq.
2518
2519 2014-11-26  Prachi Godbole  <prachi.godbole@imgtec.com>
2520
2521         * config/mips/mips.c (mips_rtx_cost_data): Fix memory_latency cost
2522         for p5600.
2523
2524 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
2525
2526         * ira-lives.c (process_bb_node_lives): Make code with conditional
2527         REAL_PIC_OFFSET_TABLE_REGNUM.
2528
2529 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
2530
2531         PR target/63527
2532         * ira-lives.c (process_bb_node_lives): Check and remove conflict
2533         of pic pseudo with pic hard reg.
2534
2535 2014-11-25  Rohit  <rohitarulraj@freescale.com>
2536
2537         PR bootstrap/63703
2538         * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
2539         added GCC hard register numbers for SPE high registers.
2540
2541 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2542
2543         * bt-load.c (migrate_btr_defs): Get the key of a heap entry
2544         before removing it, not after.
2545
2546 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2547
2548         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Remove
2549         PATTERN call.
2550
2551 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2552
2553         * config/rs6000/sysv4.h (ASM_OUTPUT_REG_POP): Use addi instead
2554         of addic.
2555
2556 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2557
2558         * config/rs6000/rs6000.md (iorxor, IORXOR): Delete code_attrs.
2559         (rest of file): Replace those with code resp. CODE.
2560
2561 2014-11-25  Tom de Vries  <tom@codesourcery.com>
2562
2563         * tree-cfg.c (verify_sese): New function.
2564         (move_sese_region_to_fn): Call verify_sese.
2565         * tree-cfg.h (verify_sese): Declare.
2566
2567 2014-11-25  Richard Biener  <rguenther@suse.de>
2568
2569         PR lto/64065
2570         * lto-streamer-out.c (output_struct_function_base): Stream
2571         last_clique field.
2572         * lto-streamer-in.c (input_struct_function_base): Likewise.
2573
2574 2014-11-25  Martin Liska  <mliska@suse.cz>
2575
2576         PR bootstrap/64050
2577         PR ipa/64060
2578         * sreal.c (sreal::operator+): Addition fixed.
2579         (sreal::signedless_plus): Negative numbers are
2580         handled correctly.
2581         (sreal::operator-): Subtraction is fixed.
2582         (sreal::signedless_minus): Negative numbers are
2583         handled correctly.
2584         * sreal.h (sreal::operator<): Equal negative numbers
2585         are compared correctly.
2586         (sreal::shift): New checking asserts are introduced.
2587         Operation is fixed.
2588
2589 2014-11-25  Richard Biener  <rguenther@suse.de>
2590
2591         PR tree-optimization/61927
2592         * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
2593         of group and pattern analysis to the one in GCC 4.8.
2594
2595 2014-11-25  Ilya Tocar  <ilya.tocar@intel.com>
2596             Jakub Jelinek  <jakub@redhat.com>
2597
2598         * gcc.c (handle_foffload_option): Remove unnecessary calls to strchr,
2599         strlen, strncpy.
2600         * lto-wrapper.c (append_offload_options): Likewise.
2601
2602 2014-11-25  Eric Botcazou  <ebotcazou@adacore.com>
2603
2604         * config/rs6000/rs6000.c (rs6000_call_aix): For the AIX ABI, do not
2605         load the static chain if the call was originally direct.
2606
2607 2014-11-25  Jan Hubicka  <hubicka@ucw.cz>
2608
2609         PR ipa/64059
2610         * ipa-prop.c (ipa_analyze_call_uses): Don't call get_dynamic_type when
2611         devirtualization is disabled.
2612
2613 2014-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
2614
2615         PR target/63965
2616         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
2617         Altivec & -16 mask if the type is not valid for Altivec registers.
2618         (rs6000_secondary_reload_memory): Add support for ((reg + const) +
2619         reg) that occurs during push_reload processing.
2620
2621         * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
2622         alternative for moving constant vectors which are easy altivec
2623         constants to GPRs.  Set the length attribute each of the
2624         alternatives.
2625
2626         * config/rs6000/rs6000-cpus.def: Undo November 21st changes, a
2627         work in progress patch was committed instead of the fixes for
2628         63965.
2629         * config/rs6000/rs6000.c: Likewise.
2630
2631 2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
2632
2633         PR ipa/63671
2634         * ipa-inline-transform.c (can_remove_node_now_p_1): Handle alises
2635         and -fno-devirtualize more carefully.
2636         (can_remove_node_now_p): Update.
2637
2638 2014-11-24  Andrew Pinski  <apinski@cavium.com>
2639
2640         PR rtl-opt/63972
2641         * shrink-wrap.c (move_insn_for_shrink_wrap): Allow LO_SUM also.
2642
2643 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
2644
2645         * config/aarch64/aarch64-simd.md (vec_shr<mode>): New.
2646
2647 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
2648
2649         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
2650         Refactor by combining switch statements and make arrays into scalars.
2651
2652 2014-11-24  David Edelsohn  <dje.gcc@gmail.com>
2653
2654         PR c++/58561
2655         * dbxout.c: Include stringpool.h
2656         (dbxout_type) [default]: Ignore auto type.
2657
2658 2014-11-24  Richard Biener  <rguenther@suse.de>
2659
2660         PR tree-optimization/63679
2661         * tree-ssa-sccvn.c: Include ipa-ref.h, plugin-api.h and cgraph.h.
2662         (copy_reference_ops_from_ref): Fix non-constant ADDR_EXPR case
2663         to properly leave off at -1.
2664         (fully_constant_vn_reference_p): Generalize folding from
2665         constant initializers.
2666         (vn_reference_lookup_3): When looking through aggregate copies
2667         handle offsetted reads and try simplifying the result to
2668         a constant.
2669         * gimple-fold.h (fold_ctor_reference): Export.
2670         * gimple-fold.c (fold_ctor_reference): Likewise.
2671
2672 2014-11-24  Petr Murzin  <petr.murzin@intel.com>
2673
2674         * simplify-rtx.c (simplify_ternary_operation): Simplify
2675         vec_merge (vec_duplicate (vec_select)).
2676
2677 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2678
2679         * config/aarch64/aarch64.c (AARCH64_FUSE_ADRP_LDR): Define.
2680         (cortexa53_tunings): Specify AARCH64_FUSE_ADRP_LDR in fuseable_ops.
2681         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_LDR.
2682
2683 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2684
2685         * config/aarch64/aarch64.c (AARCH64_FUSE_MOVK_MOVK): Define.
2686         (cortexa53_tunings): Specify AARCH64_FUSE_MOVK_MOVK in fuseable_ops.
2687         (cortexa57_tunings): Likewise.
2688         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_MOVK_MOVK.
2689
2690 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2691
2692         * sched-deps.c (sched_macro_fuse_insns): Do not check modified_in_p
2693         in the not conditional jump case.
2694         * doc/tm.texi (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
2695         * target.def (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
2696
2697 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2698
2699         * config/aarch64/aarch64.c: Include tm-constrs.h
2700         (AARCH64_FUSE_ADRP_ADD): Define.
2701         (cortexa57_tunings): Add AARCH64_FUSE_ADRP_ADD to fuseable_ops.
2702         (cortexa53_tunings): Likewise.
2703         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_ADD.
2704
2705 2014-11-24  Martin Liska  <mliska@suse.cz>
2706
2707         * ipa-inline.c (edge_badness): long is replaced by sreal
2708         as fibonacci_heap template type.
2709         (update_edge_key): Likewise.
2710         (inline_small_functions): Likewise.
2711
2712 2014-11-24  Martin Liska  <mliska@suse.cz>
2713
2714         * predict.c (propagate_freq): More elegant sreal API is used.
2715         (estimate_bb_frequencies): Precomputed constants replaced by integer
2716         constants.
2717         * sreal.c (sreal::normalize): New function.
2718         (sreal::to_int): Likewise.
2719         (sreal::operator+): Likewise.
2720         (sreal::operator-): Likewise.
2721         (sreal::signedless_plus): Likewise.
2722         (sreal::signedless_minus): Likewise.
2723         (sreal::operator/): Negative number support is added.
2724         * sreal.h: Definition of new functions added.
2725         (inline sreal operator<<): New function.
2726         (inline sreal operator>>): Likewise.
2727
2728 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2729
2730         * config/aarch64/aarch64-protos.h (struct tune_params): Add
2731         fuseable_ops field.
2732         * config/aarch64/aarch64.c (generic_tunings): Specify fuseable_ops.
2733         (cortexa53_tunings): Likewise.
2734         (cortexa57_tunings): Likewise.
2735         (thunderx_tunings): Likewise.
2736         (aarch64_macro_fusion_p): New function.
2737         (aarch_macro_fusion_pair_p): Likewise.
2738         (TARGET_SCHED_MACRO_FUSION_P): Define.
2739         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
2740         (AARCH64_FUSE_MOV_MOVK): Likewise.
2741         (AARCH64_FUSE_NOTHING): Likewise.
2742
2743 2014-11-24  Martin Liska  <mliska@suse.cz>
2744
2745         PR lto/63968
2746         * bb-reorder.c (find_traces_1_round): decreate_key is replaced
2747         with replace_key method.
2748         * fibonacci_heap.h (fibonacci_heap::insert): New argument.
2749         (fibonacci_heap::replace_key_data): Likewise.
2750         (fibonacci_heap::replace_key): New method that can even increment key,
2751         this operation costs O(log N).
2752         (fibonacci_heap::extract_min): New argument.
2753         (fibonacci_heap::delete_node): Likewise.
2754
2755 2014-11-24  Richard Biener  <rguenther@suse.de>
2756
2757         PR tree-optimization/55334
2758         * function.h (struct function): Add last_clique member.
2759         * tree-inline.c (remap_dependence_clique): New function.
2760         (remap_gimple_op_r): Remap dependence cliques in MEM_REFs.
2761         (copy_tree_body_r): Likewise.
2762         (copy_cfg_body): Free dependence map.
2763         (copy_gimple_seq_and_replace_locals): Likewise.
2764         * tree-pretty-print.c (dump_generic_node): Dump
2765         dependence info.
2766         * tree-ssa-alias.c (refs_may_alias_p_1): Use dependence info
2767         to answer alias query.
2768         * tree-ssa-structalias.c: Include tree-phinodes.h, ssa-iterators.h,
2769         tree-pretty-print.h and gimple-walk.h.
2770         (struct variable_info): Add is_restrict_var flag and ruid
2771         member.
2772         (new_var_info): Initialize is_restrict_var.
2773         (make_constraint_from_restrict): Likewise.
2774         (create_variable_info_for): Exclude restricts from global vars
2775         from new handling.
2776         (intra_create_variable_infos): But not those from parameters.
2777         (visit_loadstore): New function.
2778         (maybe_set_dependence_info): Likewise.
2779         (compute_dependence_clique): Likewise.
2780         (compute_may_aliases): Call compute_dependence_clique.
2781         * tree-data-ref.c (dr_analyze_indices): Copy dependence info
2782         to fake MEM_REF.
2783         (dr_may_alias_p): Use recorded dependence info to answer
2784         alias query.
2785         * tree-core.h (struct tree_base): Add clique, base struct in
2786         union.
2787         * tree.h (MR_DEPENDENCE_CLIQUE): New macro.
2788         (MR_DEPENDENCE_BASE): Likewise.
2789         * tree-inline.h (dependence_hasher): New hash-map kind.
2790         (struct copy_body_data): Add dependence_map pointer.
2791         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Avoid
2792         throwing away dependence info.
2793         * tree-streamer-in.c (unpack_value_fields): Stream dependence info.
2794         * tree-streamer-out.c (streamer_pack_tree_bitfields): Likewise.
2795
2796 2014-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
2797
2798         PR target/53976
2799         * config/sh/sh_optimize_sett_clrt.cc
2800         (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
2801         of void.  Abort at complex edges.
2802         (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
2803         returned false.
2804
2805 2014-11-22  John David Anglin  <danglin@gcc.gnu.org>
2806
2807         PR other/63694
2808         * configure.ac: Check for strtol, strtoul, strtoll and strtoull
2809         declarations.
2810         * configure: Regenerated.
2811         * config.in: Regenerated.
2812
2813 2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
2814
2815         * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline
2816         clones as having abstract origin used.
2817         * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract
2818         origin check.
2819         (clone_inlined_nodes): Copy abstract originflag.
2820         * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get
2821         abstract origin node.
2822
2823 2014-11-22  Uros Bizjak  <ubizjak@gmail.com>
2824
2825         * params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200.
2826         * config/i386/i386.c (ix86_option_override_internal): Do not increase
2827         PARAM_MAX_COMPLETELY_PEELED_INSNS.
2828
2829 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
2830
2831         PR target/63783
2832         PR target/51244
2833         * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
2834         Do not emit bitwise not insn.  Emit logical not insn sequence instead.
2835         Adjust related comments throughout the file.
2836
2837 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
2838
2839         PR target/63986
2840         PR target/51244
2841         * config/sh/sh.c (sh_is_logical_t_store_expr,
2842         sh_try_omit_signzero_extend): Use rtx_insn* for insn argument.
2843         (sh_split_movrt_negc_to_movt_xor): New function.
2844         (sh_find_set_of_reg): Move to ...
2845         * config/sh/sh-protos.h (sh_find_set_of_reg): ... here and convert
2846         to template function.
2847         (set_of_reg): Use rtx_insn* for insn member.
2848         (sh_is_logical_t_store_expr, sh_try_omit_signzero_extend): Use
2849         rtx_insn* for insn argument.
2850         * config/sh/sh.md (movrt_negc, *movrt_negc): Split into movt-xor
2851         sequence using new sh_split_movrt_negc_to_movt_xor function.
2852         (movrt_xor): Allow also for SH2A.
2853         (*movt_movrt): Delete insns and splits.
2854
2855 2014-11-22  Marc Glisse  <marc.glisse@inria.fr>
2856
2857         PR tree-optimization/60770
2858         * tree-sra.c (clobber_subtree): New function.
2859         (sra_modify_constructor_assign): Call it.
2860
2861 2014-11-21  Vladimir Makarov  <vmakarov@redhat.com>
2862
2863         PR target/63897
2864         * lra-lives.c (mark_regno_live, mark_regno_dead): Remove last
2865         argument.
2866         (process_bb_lives): Rename dead_insn_p on remove_p
2867         and global_live_info_p on dead_insn_p.  Calculate local live info
2868         unconditionally.  Remove last argument in calls mark_regno_live and
2869         mark_regno_dead.  Reorganize body of EXECUTE_IF_SET_IN_BITMAP.
2870         (lra_create_live_ranges): Rename to lra_create_live_ranges_1.
2871         Return bool.  Rename global_live_info_p on dead_insn_p.  Return
2872         flag of live info change.
2873         (lra_create_live_ranges): New.
2874
2875 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
2876
2877         PR target/63848
2878         PR target/63975
2879         * internal-fn.c (expand_arith_overflow_result_store,
2880         expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): Use
2881         do_compare_rtx_and_jump instead of emit_cmp_and_jump_insns everywhere,
2882         adjust arguments to those functions.  Use unsignedp = true for
2883         EQ, NE, GEU, LEU, LTU and GTU comparisons.
2884
2885         PR tree-optimization/64006
2886         * tree-vrp.c (stmt_interesting_for_vrp): Return true
2887         for {ADD,SUB,MUL}_OVERFLOW internal calls.
2888         (vrp_visit_assignment_or_call): For {ADD,SUB,MUL}_OVERFLOW
2889         internal calls, check if any REALPART_EXPR/IMAGPART_EXPR
2890         immediate uses would change their value ranges and return
2891         SSA_PROP_INTERESTING if so, or SSA_PROP_NOT_INTERESTING
2892         if there are some REALPART_EXPR/IMAGPART_EXPR immediate uses
2893         interesting for vrp.
2894
2895 2014-11-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
2896
2897         PR target/63965
2898         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
2899         Altivec & -16 mask if the type is not valid for Altivec registers.
2900         (rs6000_secondary_reload_memory): Add support for ((reg + const) +
2901         reg) that occurs during push_reload processing.
2902
2903         * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
2904         alternative for moving constant vectors which are easy altivec
2905         constants to GPRs.  Set the length attribute each of the
2906         alternatives.
2907
2908 2014-11-21  Matthew Fortune  <matthew.fortune@imgtec.com>
2909
2910         * configure.ac: When checking for MIPS .module support ensure that
2911         o32 FPXX is supported to avoid a second configure check.
2912         * configure: Regenerate.
2913
2914 2014-11-21  Jiong Wang  <jiong.wang@arm.com>
2915
2916         * config/aarch64/iterators.md (VS): New mode iterator.
2917         (vsi2qi): New mode attribute.
2918         (VSI2QI): Likewise.
2919         * config/aarch64/aarch64-simd-builtins.def: New entry for ctz.
2920         * config/aarch64/aarch64-simd.md (ctz<mode>2): New pattern for ctz.
2921         * config/aarch64/aarch64-builtins.c
2922         (aarch64_builtin_vectorized_function): Support BUILT_IN_CTZ.
2923
2924 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
2925
2926         PR bootstrap/63784
2927         * configure: Regenerated.
2928
2929 2014-11-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2930
2931         * config/aarch64/arm_neon.h (vsqrt_f64): New intrinsic.
2932
2933 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
2934
2935         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
2936         OPTION_MASK_ISA_PCOMMIT_SET): New.
2937         (ix86_handle_option): Handle OPT_mpcommit.
2938         * config.gcc: Add pcommitintrin.h
2939         * config/i386/pcommitintrin.h: New file.
2940         * config/i386/cpuid.h (bit_PCOMMIT): Define.
2941         * config/i386/driver-i386.c (host_detect_local_cpu): Detect pcommit.
2942         * config/i386/i386-c.c (ix86_target_macros_internal): Define
2943         __PCOMMIT__.
2944         * config/i386/i386.c (ix86_target_string): Add -mpcommit.
2945         (PTA_PCOMMIT): Define.
2946         (ix86_option_override_internal): Handle new option.
2947         (ix86_valid_target_attribute_inner_p): Add pcommit.
2948         (ix86_builtins): Add IX86_BUILTIN_PCOMMIT.
2949         (bdesc_special_args): Add __builtin_ia32_pcommit.
2950         * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Define.
2951         * config/i386/i386.md (unspecv): Add UNSPECV_PCOMMIT.
2952         (pcommit): New instruction.
2953         * config/i386/i386.opt: Add mpcommit.
2954         * config/i386/x86intrin.h: Include pcommitintrin.h.
2955
2956 2014-11-20  Mark Wielaard  <mjw@redhat.com>
2957
2958         PR debug/38757
2959         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use lang_GNU_C.
2960         * config/darwin.c (darwin_file_end): Use lang_GNU_CXX.
2961         (darwin_override_options): Likewise.
2962         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
2963         Likewise.
2964         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
2965         Likewise.
2966         * dbxout.c (get_lang_number): Likewise.
2967         (dbxout_type): Likewise.
2968         (dbxout_symbol_location): Likewise.
2969         * dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
2970         also for DW_LANG_{C,C99,ObjC}.
2971         (highest_c_language): New function.
2972         (gen_compile_unit_die): Call highest_c_language to merge LTO
2973         TRANSLATION_UNIT_LANGUAGE. Use strncmp language_string to
2974         determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
2975         * fold-const.c (fold_cond_expr_with_comparison): Use lang_GNU_CXX.
2976         * langhooks.h (struct lang_hooks): Add version comment to name.
2977         (lang_GNU_C): New function declaration.
2978         (lang_GNU_CXX): Likewise.
2979         * langhooks.c (lang_GNU_C): New function.
2980         (lang_GNU_CXX): Likewise.
2981         * vmsdbgout.c (vmsdbgout_init): Use lang_GNU_C and lang_GNU_CXX.
2982
2983 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
2984
2985         * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLWB_UNSET,
2986         OPTION_MASK_ISA_CLWB_SET): New.
2987         (ix86_handle_option): Handle OPT_mclwb.
2988         * config.gcc: Add clwbintrin.h.
2989         * config/i386/clwbintrin.h: New file.
2990         * config/i386/cpuid.h (bit_CLWB): Define.
2991         * config/i386/driver-i386.c (host_detect_local_cpu): Detect clwb.
2992         * config/i386/i386-c.c (ix86_target_macros_internal): Define
2993         __CLWB__.
2994         * config/i386/i386.c (ix86_target_string): Add -mclwb.
2995         (PTA_CLWB): Define.
2996         (ix86_option_override_internal): Handle new option.
2997         (ix86_valid_target_attribute_inner_p): Add clwb.
2998         (ix86_builtins): Add IX86_BUILTIN_CLWB.
2999         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clwb.
3000         (ix86_expand_builtin): Handle IX86_BUILTIN_CLWB.
3001         * config/i386/i386.h (TARGET_CLWB, TARGET_CLWB_P): Define.
3002         * config/i386/i386.md (unspecv): Add UNSPECV_CLWB.
3003         (clwb): New instruction.
3004         * config/i386/i386.opt: Add mclwb.
3005         * config/i386/x86intrin.h: Include clwbintrin.h.
3006
3007 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
3008
3009         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET
3010         OPTION_MASK_ISA_AVX512VBMI_UNSET): New.
3011         (ix86_handle_option): Handle OPT_mavx512vbmi.
3012         * config.gcc: Add avx512vbmiintrin.h, avx512vbmivlintrin.h.
3013         * config/i386/avx512vbmiintrin.h: New file.
3014         * config/i386/avx512vbmivlintrin.h: Ditto.
3015         * config/i386/cpuid.h (bit_AVX512VBMI): New.
3016         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vbmi.
3017         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3018         __AVX512VBMI__.
3019         * config/i386/i386.c (ix86_target_string): Add -mavx512vbmi.
3020         (PTA_AVX512VBMI): Define.
3021         (ix86_option_override_internal): Handle new options.
3022         (ix86_valid_target_attribute_inner_p): Add avx512vbmi,
3023         (ix86_builtins): Add IX86_BUILTIN_VPMULTISHIFTQB512,
3024         IX86_BUILTIN_VPMULTISHIFTQB256, IX86_BUILTIN_VPMULTISHIFTQB128,
3025         IX86_BUILTIN_VPERMVARQI512_MASK, IX86_BUILTIN_VPERMT2VARQI512,
3026         IX86_BUILTIN_VPERMT2VARQI512_MASKZ, IX86_BUILTIN_VPERMI2VARQI512,
3027         IX86_BUILTIN_VPERMVARQI256_MASK, IX86_BUILTIN_VPERMVARQI128_MASK,
3028         IX86_BUILTIN_VPERMT2VARQI256, IX86_BUILTIN_VPERMT2VARQI256_MASKZ,
3029         IX86_BUILTIN_VPERMT2VARQI128, IX86_BUILTIN_VPERMI2VARQI256,
3030         IX86_BUILTIN_VPERMI2VARQI128.
3031         (bdesc_special_args): Add __builtin_ia32_vpmultishiftqb512_mask,
3032         __builtin_ia32_vpmultishiftqb256_mask,
3033         __builtin_ia32_vpmultishiftqb128_mask,
3034         __builtin_ia32_permvarqi512_mask, __builtin_ia32_vpermt2varqi512_mask,
3035         __builtin_ia32_vpermt2varqi512_maskz,
3036         __builtin_ia32_vpermi2varqi512_mask, __builtin_ia32_permvarqi256_mask,
3037         __builtin_ia32_permvarqi128_mask, __builtin_ia32_vpermt2varqi256_mask,
3038         __builtin_ia32_vpermt2varqi256_maskz,
3039         __builtin_ia32_vpermt2varqi128_mask,
3040         __builtin_ia32_vpermt2varqi128_maskz,
3041         __builtin_ia32_vpermi2varqi256_mask,
3042         __builtin_ia32_vpermi2varqi128_mask.
3043         (ix86_hard_regno_mode_ok): Allow big masks for AVX512VBMI.
3044         * config/i386/i386.h (TARGET_AVX512VBMI, TARGET_AVX512VBMI_P): Define.
3045         * config/i386/i386.opt: Add mavx512vbmi.
3046         * config/i386/immintrin.h: Include avx512vbmiintrin.h,
3047         avx512vbmivlintrin.h.
3048         * config/i386/sse.md (unspec): Add UNSPEC_VPMULTISHIFT.
3049         (VI1_AVX512VL): New iterator.
3050         (<avx512>_permvar<mode><mask_name>): Use it.
3051         (<avx512>_vpermi2var<mode>3_maskz): Ditto.
3052         (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Ditto.
3053         (<avx512>_vpermi2var<mode>3_mask): Ditto.
3054         (<avx512>_vpermt2var<mode>3_maskz): Ditto.
3055         (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto.
3056         (<avx512>_vpermt2var<mode>3_mask): Ditto.
3057         (vpmultishiftqb<mode><mask_name>): Ditto.
3058
3059 2014-11-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3060
3061         PR rtl-optimization/63952
3062         * optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode.
3063         * config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison.
3064         Remove incorrect TARGET_HARD_FLOAT check and no-op expander code.
3065
3066 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
3067
3068         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512IFMA_SET,
3069         OPTION_MASK_ISA_AVX512IFMA_UNSET): New.
3070         (ix86_handle_option): Handle OPT_mavx512ifma.
3071         * config.gcc: Add avx512ifmaintrin.h, avx512ifmavlintrin.h.
3072         * config/i386/avx512ifmaintrin.h: New file.
3073         * config/i386/avx512ifmaivlntrin.h: Ditto.
3074         * config/i386/cpuid.h (bit_AVX512IFMA): New.
3075         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3076         avx512ifma.
3077         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3078         __AVX512IFMA__.
3079         * config/i386/i386.c (ix86_target_string): Add -mavx512ifma.
3080         (PTA_AVX512IFMA): Define.
3081         (ix86_option_override_internal): Handle new options.
3082         (ix86_valid_target_attribute_inner_p): Add avx512ifma.
3083         (ix86_builtins): Add IX86_BUILTIN_VPMADD52LUQ512,
3084         IX86_BUILTIN_VPMADD52HUQ512, IX86_BUILTIN_VPMADD52LUQ256,
3085         IX86_BUILTIN_VPMADD52HUQ256, IX86_BUILTIN_VPMADD52LUQ128,
3086         IX86_BUILTIN_VPMADD52HUQ128, IX86_BUILTIN_VPMADD52LUQ512_MASKZ,
3087         IX86_BUILTIN_VPMADD52HUQ512_MASKZ, IX86_BUILTIN_VPMADD52LUQ256_MASKZ,
3088         IX86_BUILTIN_VPMADD52HUQ256_MASKZ, IX86_BUILTIN_VPMADD52LUQ128_MASKZ,
3089         IX86_BUILTIN_VPMADD52HUQ128_MASKZ.
3090         (bdesc_special_args): Add __builtin_ia32_vpmadd52luq512_mask,
3091         __builtin_ia32_vpmadd52luq512_maskz,
3092         __builtin_ia32_vpmadd52huq512_mask,
3093         __builtin_ia32_vpmadd52huq512_maskx,
3094         __builtin_ia32_vpmadd52luq256_mask,
3095         __builtin_ia32_vpmadd52luq256_maskz,
3096         __builtin_ia32_vpmadd52huq256_mask,
3097         __builtin_ia32_vpmadd52huq256_maskz,
3098         __builtin_ia32_vpmadd52luq128_mask,
3099         __builtin_ia32_vpmadd52luq128_maskz,
3100         __builtin_ia32_vpmadd52huq128_mask,
3101         __builtin_ia32_vpmadd52huq128_maskz,
3102         * config/i386/i386.h (TARGET_AVX512IFMA, TARGET_AVX512IFMA_P): Define.
3103         * config/i386/i386.opt: Add mavx512ifma.
3104         * config/i386/immintrin.h: Include avx512ifmaintrin.h,
3105         avx512ifmavlintrin.h.
3106         * config/i386/sse.md (unspec): Add UNSPEC_VPMADD52LUQ,
3107         UNSPEC_VPMADD52HUQ.
3108         (VPMADD52): New iterator.
3109         (vpmadd52type): New attribute.
3110         (vpamdd52huq<mode>_maskz): New.
3111         (vpamdd52luq<mode>_maskz): Ditto.
3112         (vpamdd52<vpmadd52type><mode><sd_maskz_name>): Ditto.
3113         (vpamdd52<vpmadd52type><mode>_mask): Ditto.
3114
3115 2014-11-21  Alan Lawrence  <alan.lawrence@arm.com>
3116
3117         Revert:
3118         2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
3119         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
3120
3121 2014-11-21  Andrew Bennett  <andrew.bennett@imgtec.com>
3122
3123         * config/mips/mips.c (mips_process_sync_loop): Place a 
3124         nop in the delay slot of the branch likely instruction.
3125         (mips_output_sync_loop): Ensure mips_branch_likely is 
3126         set before calling mips_output_sync_loop.
3127         (mips_sync_loop_insns): Likewise.
3128
3129 2014-11-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3130
3131         PR/target 63673
3132         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
3133         the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
3134         double.
3135
3136 2014-11-21  Georg-Johann Lay  <avr@gjlay.de>
3137
3138         Forward-port from 2014-10-30 4_9-branch r216934
3139
3140         PR target/63633
3141         * config/avr/avr-protos.h (regmask): New inline function.
3142         (avr_fix_inputs, avr_emit3_fix_outputs): New protos.
3143         * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
3144         (avr_fix_inputs, avr_emit3_fix_outputs): New functions.
3145         * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
3146         (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
3147         (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
3148         * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
3149         (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
3150         (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
3151         * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
3152         (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
3153         (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
3154         (fmul, fmuls, fmulsu): Fix operands.  Turn insn into expander as
3155         needed.
3156
3157 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
3158
3159         PR target/61137
3160         * config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function.
3161         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it.
3162
3163 2014-11-21  James Greenhalgh  <james.greenhalgh@arm.com>
3164
3165         * config/aarch64/aarch64-simd.md
3166         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Add a tab between
3167         output mnemonic and operands.
3168         (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
3169         (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
3170
3171 2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>
3172
3173         * config/i386/i386.c (ix86_option_override_internal): Increase
3174         PARAM_MAX_COMPLETELY_PEELED_INSNS.
3175
3176 2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>
3177
3178         PR target/60451
3179         * config/i386/i386.c (expand_vec_perm_even_odd_pack): New.
3180         (expand_vec_perm_even_odd_1): Add new expand for V8HI mode,
3181         replace for V16QI, V16HI and V32QI modes.
3182         (ix86_expand_vec_perm_const_1): Add new expand.
3183
3184 2014-11-21  Nick Clifton  <nickc@redhat.com>
3185
3186         * config/rl78/rl78-real.md (movqi_from_es): New pattern.
3187         * config/rl78/rl78.c (struct machine_function): Add uses_es field.
3188         (rl78_expand_prologue): Save the ES register in interrupt handlers
3189         that use it.
3190         (rl78_expand_epilogue): Restore the ES register if necessary.
3191         (rl78_start_function): Mention if the function uses the ES
3192         register.
3193         (rl78_lo16): Record the use of the ES register.
3194         (transcode_memory_rtx): Likewise.
3195
3196 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
3197
3198         PR tree-optimization/61773
3199         * tree-ssa-strlen.c (get_string_length): Don't assert
3200         stpcpy has been prototyped if si->stmt is BUILT_IN_MALLOC.
3201
3202         PR target/63910
3203         * simplify-rtx.c (simplify_immed_subreg): Return NULL for integer
3204         modes wider than MAX_BITSIZE_MODE_ANY_INT.  If not using
3205         CONST_WIDE_INT, make sure r fits into CONST_DOUBLE.
3206
3207 2014-11-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
3208
3209         * config/rs6000/rs6000.c (includes_rldic_lshift_p): Use
3210         HOST_WIDE_INT_M1U instead of ~0.
3211         (includes_rldicr_lshift_p): Likewise.
3212
3213 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3214
3215         * config/nds32/nds32.c (nds32_legitimate_address_p): For LO_SUM,
3216         we need to look into its operand to determine if it is a valid
3217         address.
3218
3219 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3220
3221         * config/nds32/nds32.c (nds32_emit_stack_push_multiple): Add new
3222         vaarg_p argument and create correct CFI info.
3223         (nds32_expand_prologue): Pass true or false to
3224         nds32_emit_stack_push_multiple function.
3225
3226 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3227
3228         * config/nds32/nds32.c (nds32_expand_prologue): Set fp_adjust_insn
3229         as RTX_FRAME_RELATED_P rtx.
3230
3231 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3232
3233         * config/nds32/nds32.opt (march): Add help message.
3234
3235 2014-11-20  Patrick Palka  <ppalka@gcc.gnu.org>
3236
3237         * tree-vrp.c (test_for_singularity): New parameter
3238         strict_overflow_p.  Set *strict_overflow_p to true if signed
3239         overflow must be undefined for the return value to satisfy the
3240         conditional.
3241         (simplify_cond_using_ranges): Don't perform the simplification
3242         if it violates overflow rules.
3243
3244 2014-11-20  Marek Polacek  <polacek@redhat.com>
3245
3246         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Fix typo.
3247
3248 2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
3249
3250         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
3251         condition would be removed due to undefined behaviour.
3252
3253 2014-11-20  Andrew Pinski  <apinski@cavium.com>
3254
3255         PR ipa/63981
3256         PR ipa/63982
3257         * ipa-polymorphic-call.c (possible_placement_new):
3258         Use POINTER_SIZE instead of GET_MODE_BITSIZE (Pmode).
3259         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
3260         (extr_type_from_vtbl_ptr_store): Likewise.
3261
3262 2014-11-20  Markus Trippelsdorf  <markus@trippelsdorf.de>
3263
3264         * config/rs6000/constraints.md: Avoid signed integer overflows.
3265         * config/rs6000/predicates.md: Likewise.
3266         * config/rs6000/rs6000.c (num_insns_constant_wide): Likewise.
3267         (includes_rldic_lshift_p): Likewise.
3268         (includes_rldicr_lshift_p): Likewise. 
3269         * emit-rtl.c (const_wide_int_htab_hash): Likewise.
3270         * loop-iv.c (determine_max_iter): Likewise.
3271         (iv_number_of_iterations): Likewise.
3272         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Likewise.
3273         * varasm.c (get_section_anchor): Likewise.
3274
3275 2014-11-20  Charles Baylis  <charles.baylis@linaro.org>
3276
3277         PR target/63870
3278         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Pass
3279         expression to aarch64_simd_lane_bounds.
3280         * config/aarch64/aarch64-protos.h (aarch64_simd_lane_bounds): Update
3281         prototype.
3282         * config/aarch64/aarch64-simd.md: (aarch64_combinez<mode>): Update
3283         call to aarch64_simd_lane_bounds.
3284         (aarch64_get_lanedi): Likewise.
3285         (aarch64_ld2_lane<mode>): Likewise.
3286         (aarch64_ld3_lane<mode>): Likewise.
3287         (aarch64_ld4_lane<mode>): Likewise.
3288         (aarch64_im_lane_boundsi): Likewise.
3289         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Add exp
3290         parameter. Report calling function in error message if exp is non-NULL.
3291
3292 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3293
3294         PR target/60111
3295         * config/sh/sh.c: Use signed char for signed field.
3296
3297 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3298
3299         * cfgexpand.c, gimple-ssa.h, trans-mem.c: Replace htab with
3300         hash_table.
3301
3302 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3303
3304         * ipa-utils.c, lto-section-in.c, lto-streamer.h,
3305         tree-scalar-evolution.c: Replace htab with hash_table.
3306
3307 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3308
3309         * lto-section-in.c (lto_delete_in_decl_state): Adjust.
3310         (lto_free_function_in_decl_state): Likewise.
3311         * lto-streamer-out.c (copy_function_or_variable): Likewise.
3312         * lto-streamer.h (lto_file_decl_data_get_ ## name): Likewise.
3313         (lto_file_decl_data_num_ ## name ## s): Likewise.
3314         (struct lto_tree_ref_table): Remove.
3315         (struct lto_in_decl_state): Replace lto_tree_ref_table with vec<tree>.
3316
3317 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3318
3319         * hash-map.h (hash_map::iterator): New class.
3320         (hash_map::begin): New method.
3321         (hash_map::end): Likewise.
3322         * alias.c, config/alpha/alpha.c, dwarf2asm.c, omp-low.c, tree.h:
3323         replace splay_tree with hash_map.
3324
3325 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3326
3327         * hash-table.h (hash_table::hash_table): Call alloc_entries.
3328         (hash_table::alloc_entries): new method.
3329         (hash_table::expand): Call alloc_entries.
3330         (hash_table::empty): Likewise.
3331
3332 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3333
3334         * config/i386/i386.c, function.c, trans-mem.c, tree-core.h,
3335         tree.c, tree.h, ubsan.c, varasm.c: Use hash_table instead of htab.
3336
3337 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3338
3339         * doc/gty.texi: Document the new cache gty attribute.
3340         * gengtype.c (finish_cache_funcs): New function.
3341         (write_roots): Call gt_clear_cache on global variables with the cache
3342         gty attribute.
3343         * ggc-common.c (ggc_mark_roots): Call gt_clear_caches.
3344         * ggc.h (gt_clear_caches): New declaration.
3345         * hash-table.h (struct ggc_cache_hasher): New hasher for caches in gc
3346         memory.
3347         (gt_cleare_cache): New function.
3348         * emit-rtl.c, rtl.h, tree.c: Use hash_table instead of htab.
3349
3350 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3351
3352         * combine.c (try_combine): Prefer to delete dead SETs inside
3353         a PARALLEL over keeping them.
3354
3355 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3356
3357         * combine.c (combine_validate_cost): Always print the insn costs
3358         to the dump file.
3359
3360 2014-11-20  Richard Henderson <rth@redhat.com>
3361
3362         PR target/63977
3363         * config/i386/i386.c (ix86_static_chain): Reinstate the check
3364         for DECL_STATIC_CHAIN.
3365
3366 2014-11-20  Tejas Belagod  <tejas.belagod@arm.com>
3367
3368         * config/aarch64/aarch64-protos.h (aarch64_classify_symbol):
3369         Fixup prototype.
3370         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate,
3371         aarch64_cannot_force_const_mem, aarch64_classify_address,
3372         aarch64_classify_symbolic_expression): Fixup call to
3373         aarch64_classify_symbol.
3374         (aarch64_classify_symbol): Add range-checking for
3375         symbol + offset addressing for tiny and small models.
3376
3377 2014-11-20  Richard Biener  <rguenther@suse.de>
3378
3379         PR middle-end/63962
3380         * match.pd ((p +p off1) +p off2 -> (p +p (off1 + off2))):
3381         Guard with single-use operand 0.
3382
3383 2014-11-20   Richard Biener  <rguenther@suse.de>
3384
3385         PR tree-optimization/63677
3386         * tree-ssa-dom.c: Include gimplify.h for unshare_expr.
3387         (avail_exprs_stack): Make a vector of pairs.
3388         (struct hash_expr_elt): Replace stmt member with vop member.
3389         (expr_elt_hasher::equal): Simplify.
3390         (initialize_hash_element): Adjust.
3391         (initialize_hash_element_from_expr): Likewise.
3392         (dom_opt_dom_walker::thread_across_edge): Likewise.
3393         (record_cond): Likewise.
3394         (dom_opt_dom_walker::before_dom_children): Likewise.
3395         (print_expr_hash_elt): Likewise.
3396         (remove_local_expressions_from_table): Restore previous state
3397         if requested.
3398         (record_equivalences_from_stmt): Record &x + CST as constant
3399         &MEM[&x, CST] for further propagation.
3400         (vuse_eq): New function.
3401         (lookup_avail_expr): For loads use the alias oracle to see
3402         whether a candidate from the expr hash is usable.
3403         (avail_expr_hash): Do not hash VUSEs.
3404
3405 2014-11-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3406
3407         PR target/59593
3408         * config/arm/arm.md (*movhi_insn): Use right formatting
3409         for immediate.
3410
3411 2014-11-20  Igor Zamyatin  <igor.zamyatin@intel.com>
3412
3413         PR sanitizer/63845
3414         * function.c (assign_parms): Move init of pic_offset_table_rtx
3415         from here to...
3416         * cfgexpand.c (expand_used_vars): ...here.
3417
3418 2014-11-19  Jan Hubicka  <hubicka@ucw.cz>
3419
3420         * tree.c (free_lang_data_in_type): If BINFO has no important
3421         information in it, set it to NULL.
3422         (get_binfo_at_offset): Do not walk fields, only bases.
3423         * ipa-utils.h (polymorphic_type_binfo_p): Be ready for BINFO_TYPE
3424         to be NULL.
3425         * ipa-polymorphic-call.c (record_known_type): Likewise.
3426
3427 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3428
3429         PR jit/63854
3430         * ipa-icf.c (sem_item_optimizer::~sem_item_optimizer): Free each
3431         congruence_class_group *.
3432
3433 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
3434
3435         PR target/63947
3436         * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
3437         Output "b" and "nb" suffix for FP mode.
3438
3439 2014-11-19  Jan Hubicka  <hubicka@ucw.cz>
3440
3441         PR bootstrap/63963
3442         * tree-streamer-out.c (write_ts_function_decl_tree_pointers): Stream out
3443         DECL_FUNCTION_SPECIFIC_TARGET
3444         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): Stream in
3445         DECL_FUNCTION_SPECIFIC_TARGET.
3446
3447 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3448
3449         PR jit/63854
3450         * pass_manager.h (GCC_PASS_LISTS): Add all_late_ipa_passes.
3451
3452 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3453
3454         PR jit/63854
3455         * lra.c (lra): After creating live ranges in preparation for call
3456         to lra_inheritance, set live_p to true.
3457
3458 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3459
3460         PR jit/63854
3461         * tree-ssa-threadedge.c (thread_across_edge): Don't just release
3462         "path", delete it.
3463         * tree-ssa-threadupdate.c (delete_jump_thread_path): Likewise.
3464
3465 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3466
3467         PR jit/63854
3468         * tree-ssa-pre.c (do_regular_insertion): Convert "avail" from
3469         vec<> to auto_vec<> to fix a leak.
3470
3471 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3472
3473         PR jit/63854
3474         * dwarf2out.c (dwarf2out_c_finalize): Free producer_string.
3475
3476 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3477
3478         PR jit/63854
3479         * ira-costs.c (ira_costs_c_finalize): New function.
3480         * ira.h (ira_costs_c_finalize): New prototype.
3481         * toplev.c (toplev::finalize): Call ira_costs_c_finalize.
3482
3483 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3484
3485         PR jit/63854
3486         * ipa-reference.c (ipa_reference_c_finalize): Release
3487         optimization_summary_obstack.
3488
3489 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3490
3491         PR jit/63854
3492         * toplev.c (toplev::finalize): Free opts_obstack.
3493
3494 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3495
3496         PR jit/63854
3497         * toplev.c (toplev::finalize): Clean up save_decoded_options.
3498
3499 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3500
3501         PR jit/63854
3502         * bb-reorder.c
3503         (find_rarely_executed_basic_blocks_and_crossing_edges): Convert
3504         local bbs_in_hot_partition from vec<> to auto_vec<>.
3505
3506 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3507
3508         PR jit/63854
3509         * config/alpha/alpha.c (alpha_option_override): Remove static from
3510         "handle_trap_shadows_info" and "align_insns_info".
3511         * config/i386/i386.c (ix86_option_override): Likewise for
3512         "insert_vzeroupper_info".
3513         * config/rl78/rl78.c (rl78_asm_file_start): Likewise for
3514         "rl78_devirt_info" and "rl78_move_elim_info".
3515         * config/rs6000/rs6000.c (rs6000_option_override): Likewise for
3516         "analyze_swaps_info".
3517         * context.c (gcc::context::~context): New.
3518         * context.h (gcc::context::~context): New.
3519         * dumpfile.c (dump_files): Add "false" initializers for new field
3520         "owns_strings".
3521         (gcc::dump_manager::~dump_manager): New.
3522         (gcc::dump_manager::dump_register): Add param "take_ownership".
3523         * dumpfile.h (struct dump_file_info): Add field "owns_strings".
3524         (gcc::dump_manager::~dump_manager): New.
3525         (gcc::dump_manager::dump_register): Add param "take_ownership".
3526         * pass_manager.h (gcc::pass_manager::operator delete): New.
3527         (gcc::pass_manager::~pass_manager): New.
3528         * passes.c (pass_manager::register_one_dump_file): Pass "true" to
3529         new "owns_strings" argument to dump_register.
3530         (pass_manager::operator delete): New.
3531         (delete_pass_tree): New function.
3532         (pass_manager::~pass_manager): New.
3533         * statistics.c (statistics_early_init): Pass "false" to
3534         new "owns_strings" argument to dump_register.
3535         * toplev.c (toplev::finalize): Clean up the context and thus the
3536         things it owns.
3537
3538 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3539
3540         PR jit/63854
3541         * reginfo.c (finish_subregs_of_mode): Replace obstack_finish with
3542         obstack_free when cleaning up valid_mode_changes_obstack.
3543
3544 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3545
3546         PR jit/63854
3547         * opts.c (finalize_options_struct): New.
3548         * opts.h (finalize_options_struct): New.
3549         * toplev.c (toplev::finalize): Call finalize_options_struct
3550         on global_options and global_options_set.
3551
3552 2014-11-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3553             Jakub Jelinek  <jakub@redhat.com>
3554
3555         PR driver/36312
3556         PR driver/63837
3557         * gcc.c (process_command): Don't check for input/output
3558         filename equality if output is HOST_BIT_BUCKET.
3559         * toplev.c (init_asm_output): Likewise.
3560
3561 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3562
3563         Merger of git branch "gimple-classes-v2-option-3".
3564
3565         * ChangeLog.gimple-classes: New.
3566
3567         * coretypes.h (struct gcond): Add forward decl.
3568         (struct gdebug): Likewise.
3569         (struct ggoto): Likewise.
3570         (struct glabel): Likewise.
3571         (struct gswitch): Likewise.
3572         (struct gassign): Likewise.
3573         (struct gasm): Likewise.
3574         (struct gcall): Likewise.
3575         (struct gtransaction): Likewise.
3576         (struct greturn): Likewise.
3577         (struct gbind): Likewise.
3578         (struct gcatch): Likewise.
3579         (struct geh_filter): Likewise.
3580         (struct geh_mnt): Likewise.
3581         (struct geh_else): Likewise.
3582         (struct gresx): Likewise.
3583         (struct geh_dispatch): Likewise.
3584         (struct gphi): Likewise.
3585         (struct gtry): Likewise.
3586         (struct gomp_atomic_load): Likewise.
3587         (struct gomp_atomic_store): Likewise.
3588         (struct gomp_continue): Likewise.
3589         (struct gomp_critical): Likewise.
3590         (struct gomp_for): Likewise.
3591         (struct gomp_parallel): Likewise.
3592         (struct gomp_task): Likewise.
3593         (struct gomp_sections): Likewise.
3594         (struct gomp_single): Likewise.
3595         (struct gomp_target): Likewise.
3596         (struct gomp_teams): Likewise.
3597
3598         * doc/gimple.texi (Class hierarchy of GIMPLE statements): Update
3599         for renaming of gimple subclasses.
3600
3601         * gdbhooks.py: Update.
3602
3603         * gimple-iterator.c (gsi_for_phi): New.
3604         (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
3605         to gphi_iterator.
3606         * gimple-iterator.h (struct gphi_iterator): New subclass of
3607         gimple_stmt_iterator.
3608         (gsi_for_phi): New prototype.
3609         (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
3610         to gphi_iterator.
3611         (gsi_next_nonvirtual_phi): Strengthen param from
3612         gimple_stmt_iterator * to gphi_iterator *, and local "phi" from
3613         gimple to gphi *.
3614
3615         * gsstruct.def: Update for renamings of classes.
3616
3617         * gimple.c (gimple_build_return): Strengthen return type from
3618         gimple to greturn *.
3619         (gimple_call_reset_alias_info): Strengthen param to gcall *.
3620         (gimple_build_call_1): Strengthen return type from gimple to
3621         gcall *.
3622         (gimple_build_call_vec): Likewise.
3623         (gimple_build_call): Likewise.
3624         (gimple_build_call_valist): Likewise.
3625         (gimple_build_call_internal_1): Likewise.
3626         (gimple_build_call_internal): Likewise.
3627         (gimple_build_call_internal_vec): Likewise.
3628         (gimple_build_call_from_tree): Likewise.
3629         (gimple_build_assign_stat): Strengthen return type from gimple to
3630         gassign *.
3631         (gimple_build_assign_with_ops): Likewise.
3632         (gimple_build_assign_with_ops): Likewise.
3633         (gimple_build_cond): Strengthen return type from gimple to
3634         gcond *.
3635         (gimple_build_cond_from_tree): Likewise.
3636         (gimple_cond_set_condition_from_tree): Require a gcond *.
3637         (gimple_build_label): Strengthen return type from gimple to
3638         glabel *.
3639         (gimple_build_goto): Strengthen return type from gimple to
3640         ggoto *.
3641         (gimple_build_bind): Strengthen return type from gimple to
3642         gbind *.
3643         (gimple_build_asm_1): Strengthen return type from gimple to
3644         gasm *.
3645         (gimple_build_asm_vec): Likewise.
3646         (gimple_build_catch): Strengthen return type from gimple to
3647         gcatch *.
3648         (gimple_build_eh_filter): Strengthen return type from gimple to
3649         geh_filter *.
3650         (gimple_build_eh_must_not_throw): Strengthen return type from
3651         gimple to geh_mnt *.
3652         (gimple_build_eh_else): Strengthen return type from gimple to
3653         geh_else *.
3654         (gimple_build_try): Update for renaming of gimple_statement_try to
3655         gtry.
3656         (gimple_build_resx): Strengthen return type from gimple to
3657         gresx *.
3658         (gimple_build_switch_nlabels): Strengthen return type from gimple
3659         to gswitch *.
3660         (gimple_build_switch): Likewise.
3661         (gimple_build_eh_dispatch): Strengthen return type from gimple to
3662         geh_dispatch *.
3663         (gimple_build_debug_bind_stat): Strengthen return type from gimple
3664         to gdebug *.
3665         (gimple_build_debug_source_bind_stat): Strengthen return type from
3666         gimple to gdebug *.
3667         (gimple_build_omp_critical): Strengthen return type from gimple to
3668         gomp_critical *.
3669         (gimple_build_omp_for): Strengthen return type from gimple to
3670         gomp_for *.
3671         (gimple_build_omp_parallel): Strengthen return type from gimple to
3672         gomp_parallel *.
3673         (gimple_build_omp_task): Strengthen return type from gimple to
3674         gomp_task *.
3675         (gimple_build_omp_continue): Strengthen return type from gimple to
3676         gomp_continue *.
3677         (gimple_build_omp_sections): Strengthen return type from gimple to
3678         gomp_sections *.
3679         (gimple_build_omp_single): Strengthen return type from gimple to
3680         gomp_single *.
3681         (gimple_build_omp_target): Strengthen return type from gimple to
3682         gomp_target *.
3683         (gimple_build_omp_teams): Strengthen return type from gimple to
3684         gomp_teams *.
3685         (gimple_build_omp_atomic_load): Strengthen return type from gimple
3686         to gomp_atomic_load *.
3687         (gimple_build_omp_atomic_store): Strengthen return type from gimple
3688         to gomp_atomic_store *.
3689         (gimple_build_transaction): Strengthen return type from gimple
3690         to gtransaction *.
3691         (empty_stmt_p): Replace check for GIMPLE_BIND with a dyn_cast.
3692         (gimple_call_fnspec): Require a const gcall *.
3693         (gimple_call_arg_flags): Likewise.
3694         (gimple_call_return_flags): Likewise.
3695         (gimple_set_bb): Add a checked cast.
3696         (gimple_copy): Within the cases, add locals of the appropriate
3697         subclass and use in place of "stmt" and "copy" for typesafety.
3698         (gimple_has_side_effects): Add a checked cast.
3699         (gimple_could_trap_p_1): Likewise.
3700         (gimple_call_copy_skip_args): Require a gcall *, and return one.
3701         (gimple_asm_clobbers_memory_p): Require a const gasm *.
3702         (infer_nonnull_range): Replace a check for GIMPLE_RETURN with a
3703         dyn_cast, introducing local "return_stmt" and using ti in place
3704         of "stmt".
3705
3706         * gimple.h (gimple_vec): Eliminate this typedef.
3707         (struct gimple_statement_call): Rename to...
3708         (struct gcall): ...this.
3709         (struct gimple_statement_bind): Rename to...
3710         (struct gbind): ...this.
3711         (struct gimple_statement_catch): Rename to...
3712         (struct gcatch): ...this.
3713         (struct gimple_statement_eh_filter): Rename to...
3714         (struct geh_filter): ...this.
3715         (struct gimple_statement_eh_else): Rename to...
3716         (struct geh_else): ...this.
3717         (struct gimple_statement_eh_mnt): Rename to...
3718         (struct geh_mnt): ...this.
3719         (struct gimple_statement_phi): Rename to...
3720         (struct gphi): ...this.
3721         (struct gimple_statement_resx): Rename to...
3722         (struct gresx): ...this.
3723         (struct gimple_statement_eh_dispatch): Rename to...
3724         (struct geh_dispatch): ...this.
3725         (struct gimple_statement_try): Rename to...
3726         (struct gtry): ...this.
3727         (struct gimple_statement_asm): Rename to...
3728         (struct gasm): ...this.
3729         (struct gimple_statement_omp_critical): Rename to...
3730         (struct gomp_critical): ...this.
3731         (struct gimple_statement_omp_for): Rename to...
3732         (struct gomp_for): ...this.
3733         (struct gimple_statement_omp_parallel): Rename to...
3734         (struct gomp_parallel): ...this.
3735         (struct gimple_statement_omp_target): Rename to...
3736         (struct gomp_target): ...this.
3737         (struct gimple_statement_omp_task): Rename to...
3738         (struct gomp_task): ...this.
3739         (struct gimple_statement_omp_sections): Rename to...
3740         (struct gomp_sections): ...this.
3741         (struct gimple_statement_omp_continue): Rename to...
3742         (struct gomp_continue): ...this.
3743         (struct gimple_statement_omp_single): Rename to...
3744         (struct gomp_single): ...this.
3745         (struct gimple_statement_omp_teams): Rename to...
3746         (struct gomp_teams): ...this.
3747         (struct gimple_statement_omp_atomic_load): Rename to...
3748         (struct gomp_atomic_load): ...this.
3749         (struct gimple_statement_omp_atomic_store :): Rename to...
3750         (struct gomp_atomic_store :): ...this.
3751         (struct gimple_statement_transaction): Rename to...
3752         (struct gtransaction): ...this.
3753         (struct gcond): New subclass.
3754         (struct gdebug): New subclass.
3755         (struct ggoto): New subclass.
3756         (struct glabel): New subclass.
3757         (struct gswitch): New subclass.
3758         (struct gassign): New subclass.
3759         (struct greturn): New subclass.
3760         (is_a_helper <gimple_statement_asm *>::test): Rename to...
3761         (is_a_helper <gasm *>::test): ...this.
3762         (is_a_helper <gimple_statement_bind *>::test): Rename to...
3763         (is_a_helper <gbind *>::test): ...this.
3764         (is_a_helper <gassign *>::test): New.
3765         (is_a_helper <gimple_statement_call *>::test): Rename to...
3766         (is_a_helper <gcall *>::test): ...this.
3767         (is_a_helper <gimple_statement_catch *>::test): Rename to...
3768         (is_a_helper <gcatch *>::test): ...this.
3769         (is_a_helper <gimple_statement_resx *>::test): Rename to...
3770         (is_a_helper <gresx *>::test): ...this.
3771         (is_a_helper <gcond *>::test): New.
3772         (is_a_helper <gdebug *>::test): New.
3773         (is_a_helper <ggoto *>::test): New.
3774         (is_a_helper <glabel *>::test): New.
3775         (is_a_helper <gimple_statement_eh_dispatch *>::test): Rename to...
3776         (is_a_helper <geh_dispatch *>::test): ...this.
3777         (is_a_helper <gimple_statement_eh_else *>::test): Rename to...
3778         (is_a_helper <geh_else *>::test): ...this.
3779         (is_a_helper <gimple_statement_eh_filter *>::test): Rename to...
3780         (is_a_helper <geh_filter *>::test): ...this.
3781         (is_a_helper <gimple_statement_eh_mnt *>::test): Rename to...
3782         (is_a_helper <geh_mnt *>::test): ...this.
3783         (is_a_helper <gimple_statement_omp_atomic_load *>::test): Rename to...
3784         (is_a_helper <gomp_atomic_load *>::test): ...this.
3785         (is_a_helper <gimple_statement_omp_atomic_store *>::test): Rename to...
3786         (is_a_helper <gomp_atomic_store *>::test): ...this.
3787         (is_a_helper <gimple_statement_omp_continue *>::test): Rename to...
3788         (is_a_helper <gomp_continue *>::test): ...this.
3789         (is_a_helper <gimple_statement_omp_critical *>::test): Rename to...
3790         (is_a_helper <gomp_critical *>::test): ...this.
3791         (is_a_helper <gimple_statement_omp_for *>::test): Rename to...
3792         (is_a_helper <gomp_for *>::test): ...this.
3793         (is_a_helper <gimple_statement_omp_parallel *>::test): Rename to...
3794         (is_a_helper <gomp_parallel *>::test): ...this.
3795         (is_a_helper <gimple_statement_omp_target *>::test): Rename to...
3796         (is_a_helper <gomp_target *>::test): ...this.
3797         (is_a_helper <gimple_statement_omp_sections *>::test): Rename to...
3798         (is_a_helper <gomp_sections *>::test): ...this.
3799         (is_a_helper <gimple_statement_omp_single *>::test): Rename to...
3800         (is_a_helper <gomp_single *>::test): ...this.
3801         (is_a_helper <gimple_statement_omp_teams *>::test): Rename to...
3802         (is_a_helper <gomp_teams *>::test): ...this.
3803         (is_a_helper <gimple_statement_omp_task *>::test): Rename to...
3804         (is_a_helper <gomp_task *>::test): ...this.
3805         (is_a_helper <gimple_statement_phi *>::test): Rename to...
3806         (is_a_helper <gphi *>::test): ...this.
3807         (is_a_helper <gimple_statement_transaction *>::test): Rename to...
3808         (is_a_helper <gtransaction *>::test): ...this.
3809         (is_a_helper <greturn *>::test): New.
3810         (is_a_helper <gswitch *>::test): New.
3811         (is_a_helper <gimple_statement_try *>::test): Rename to...
3812         (is_a_helper <gtry *>::test): ...this.
3813         (is_a_helper <const gimple_statement_asm *>::test): Rename to...
3814         (is_a_helper <const gasm *>::test): ...this.
3815         (is_a_helper <const gimple_statement_bind *>::test): Rename to...
3816         (is_a_helper <const gbind *>::test): ...this.
3817         (is_a_helper <const gimple_statement_call *>::test): Rename to...
3818         (is_a_helper <const gcall *>::test): ...this.
3819         (is_a_helper <const gimple_statement_catch *>::test): Rename to...
3820         (is_a_helper <const gcatch *>::test): ...this.
3821         (is_a_helper <const gimple_statement_resx *>::test): Rename to...
3822         (is_a_helper <const gresx *>::test): ...this.
3823         (is_a_helper <const gimple_statement_eh_dispatch *>::test): Rename to...
3824         (is_a_helper <const geh_dispatch *>::test): ...this.
3825         (is_a_helper <const gimple_statement_eh_filter *>::test): Rename to...
3826         (is_a_helper <const geh_filter *>::test): ...this.
3827         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
3828         Rename to...
3829         (is_a_helper <const gomp_atomic_load *>::test): ...this.
3830         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
3831         Rename to...
3832         (is_a_helper <const gomp_atomic_store *>::test): ...this.
3833         (is_a_helper <const gimple_statement_omp_continue *>::test):
3834         Rename to...
3835         (is_a_helper <const gomp_continue *>::test): ...this.
3836         (is_a_helper <const gimple_statement_omp_critical *>::test):
3837         Rename to...
3838         (is_a_helper <const gomp_critical *>::test): ...this.
3839         (is_a_helper <const gimple_statement_omp_for *>::test): Rename to...
3840         (is_a_helper <const gomp_for *>::test): ...this.
3841         (is_a_helper <const gimple_statement_omp_parallel *>::test):
3842         Rename to...
3843         (is_a_helper <const gomp_parallel *>::test): ...this.
3844         (is_a_helper <const gimple_statement_omp_target *>::test): Rename to...
3845         (is_a_helper <const gomp_target *>::test): ...this.
3846         (is_a_helper <const gimple_statement_omp_sections *>::test):
3847         Rename to...
3848         (is_a_helper <const gomp_sections *>::test): ...this.
3849         (is_a_helper <const gimple_statement_omp_single *>::test): Rename to...
3850         (is_a_helper <const gomp_single *>::test): ...this.
3851         (is_a_helper <const gimple_statement_omp_teams *>::test): Rename to...
3852         (is_a_helper <const gomp_teams *>::test): ...this.
3853         (is_a_helper <const gimple_statement_omp_task *>::test): Rename to...
3854         (is_a_helper <const gomp_task *>::test): ...this.
3855         (is_a_helper <const gimple_statement_phi *>::test): Rename to...
3856         (is_a_helper <const gphi *>::test): ...this.
3857         (is_a_helper <const gimple_statement_transaction *>::test): Rename to...
3858         (is_a_helper <const gtransaction *>::test): ...this.
3859         (gimple_build_return): Strengthen return type to greturn *.
3860         (gimple_call_reset_alias_info): Require a gcall *.
3861         (gimple_build_call_vec): Return a gcall *.
3862         (gimple_build_call): Likewise.
3863         (gimple_build_call_valist): Likewise.
3864         (gimple_build_call_internal): Likewise.
3865         (gimple_build_call_internal_vec): Likewise.
3866         (gimple_build_call_from_tree): Likewise.
3867         (gimple_build_assign_stat): Return a gassign *.
3868         (gimple_build_assign_with_ops): Likewise.
3869         (gimple_build_cond): Return a gcond *.
3870         (gimple_build_cond_from_tree): Likewise.
3871         (gimple_cond_set_condition_from_tree): Require a gcond *.
3872         (gimple_build_label): Return a glabel *.
3873         (gimple_build_goto): Return a ggoto *.
3874         (gimple_build_bind): Return a gbind *.
3875         (gimple_build_asm_vec): Return a gasm *.
3876         (gimple_build_catch): Return a gcatch *.
3877         (gimple_build_eh_filter): Return a geh_filter *.
3878         (gimple_build_eh_must_not_throw): Return a geh_mnt *.
3879         (gimple_build_eh_else): Return a geh_else *.
3880         (gimple_build_try): Return a gtry *.
3881         (gimple_build_resx): Return a gresx *.
3882         (gimple_build_switch_nlabels): Return a gswitch *.
3883         (gimple_build_switch): Return a gswitch *.
3884         (gimple_build_eh_dispatch): Return a geh_dispatch *.
3885         (gimple_build_debug_bind_stat): Return a gdebug *.
3886         (gimple_build_debug_source_bind_stat): Return a gdebug *.
3887         (gimple_build_omp_critical): Return a gomp_critical *.
3888         (gimple_build_omp_for): Return a gomp_for *.
3889         (gimple_build_omp_parallel): Return a gomp_parallel *.
3890         (gimple_build_omp_task): Return a gomp_task *.
3891         (gimple_build_omp_continue): Return a gomp_continue *.
3892         (gimple_build_omp_sections): Return a gomp_sections *.
3893         (gimple_build_omp_single): Return a gomp_single *.
3894         (gimple_build_omp_target): Return a gomp_target *.
3895         (gimple_build_omp_teams): Return a gomp_teams *.
3896         (gimple_build_omp_atomic_load): Return a gomp_atomic_load *.
3897         (gimple_build_omp_atomic_store): Return a gomp_atomic_store *.
3898         (gimple_build_transaction): Return a gtransaction *.
3899         (gimple_call_arg_flags): Require a const gcall *.
3900         (gimple_call_return_flags): Likewise.
3901         (gimple_call_copy_skip_args): Require and return a gcall *.
3902         (gimple_asm_clobbers_memory_p): Require a const gasm *.
3903         (gimple_seq_first_stmt_as_a_bind): New.
3904         (gimple_assign_nontemporal_move_p): Require a const gassign *
3905         rather than a const_gimple.
3906         (gimple_call_internal_fn): Update for renaming to gcall.
3907         (gimple_call_fntype): Likewise.
3908         (gimple_call_set_fntype): Require a gcall * rather than a gimple.
3909         (gimple_call_set_fn): Likewise.
3910         (gimple_call_set_internal_fn): Likewise.
3911         (gimple_call_set_chain): Likewise.
3912         (gimple_call_set_tail): Likewise.
3913         (gimple_call_tail_p): Likewise.
3914         (gimple_call_set_return_slot_opt): Likewise.
3915         (gimple_call_return_slot_opt_p): Likewise.
3916         (gimple_call_set_from_thunk): Likewise.
3917         (gimple_call_from_thunk_p): Likewise.
3918         (gimple_call_set_va_arg_pack): Likewise.
3919         (gimple_call_va_arg_pack_p): Likewise.
3920         (gimple_call_set_nothrow): Likewise.
3921         (gimple_call_nothrow_p): Likewise.
3922         (gimple_call_set_alloca_for_var): Likewise.
3923         (gimple_call_alloca_for_var_p): Likewise.
3924         (gimple_call_use_set): Likewise.
3925         (gimple_call_clobber_set): Likewise.
3926         (gimple_call_return_type): Require a const gcall * rather than a
3927         const_gimple.
3928         (gimple_call_chain_ptr): Likewise.
3929         (gimple_call_copy_flags): Require a pair of gcall *.
3930         (gimple_cond_set_code): Require a gcond * rather than a gimple
3931         (gimple_cond_set_lhs): Likewise.
3932         (gimple_cond_set_rhs): Likewise.
3933         (gimple_cond_set_true_label): Likewise.
3934         (gimple_cond_set_false_label): Likewise.
3935         (gimple_cond_make_false): Likewise.
3936         (gimple_cond_make_true): Likewise.
3937         (gimple_cond_lhs_ptr): Require a const gcond * rather than a
3938         const_gimple.
3939         (gimple_cond_rhs_ptr): Likewise.
3940         (gimple_cond_true_label): Likewise.
3941         (gimple_cond_false_label): Likewise.
3942         (gimple_cond_true_p): Likewise.
3943         (gimple_cond_false_p): Likewise.
3944         (gimple_cond_set_condition): Likewise.
3945         (gimple_label_label): Require a const glabel *.
3946         (gimple_label_set_label): Require a glabel *.
3947         (gimple_goto_set_dest): Require a ggoto *.
3948         (gimple_bind_vars): Require a const gbind *.
3949         (gimple_bind_block): Likewise.
3950         (gimple_bind_set_vars): Require a gbind *.
3951         (gimple_bind_append_vars): Likewise.
3952         (gimple_bind_body_ptr): Likewise.
3953         (gimple_bind_body): Likewise.
3954         (gimple_bind_set_body): Likewise.
3955         (gimple_bind_add_stmt): Likewise.
3956         (gimple_bind_add_seq): Likewise.
3957         (gimple_bind_set_block): Likewise.
3958         (gimple_asm_ninputs): Require a const gasm *.
3959         (gimple_asm_noutputs): Likewise.
3960         (gimple_asm_nclobbers): Likewise.
3961         (gimple_asm_nlabels): Likewise.
3962         (gimple_asm_input_op): Likewise.
3963         (gimple_asm_input_op_ptr): Likewise.
3964         (gimple_asm_output_op): Likewise.
3965         (gimple_asm_output_op_ptr): Likewise.
3966         (gimple_asm_clobber_op): Likewise.
3967         (gimple_asm_label_op): Likewise.
3968         (gimple_asm_string): Likewise.
3969         (gimple_asm_volatile_p): Likewise.
3970         (gimple_asm_input_p): Likewise.
3971         (gimple_asm_set_input_op): Require a gasm *.
3972         (gimple_asm_set_output_op): Likewise.
3973         (gimple_asm_set_clobber_op): Likewise.
3974         (gimple_asm_set_label_op): Likewise.
3975         (gimple_asm_set_volatile): Likewise.
3976         (gimple_asm_set_input): Likewise.
3977         (gimple_catch_types): Require a const gcatch *.
3978         (gimple_catch_types_ptr): Require a gcatch *.
3979         (gimple_catch_handler_ptr): Likewise.
3980         (gimple_catch_handler): Likewise.
3981         (gimple_catch_set_types): Likewise.
3982         (gimple_catch_set_handler): Likewise.
3983         (gimple_eh_filter_types): Update for renaming of subclass to
3984         geh_filter.
3985         (gimple_eh_filter_types_ptr): Likewise.
3986         (gimple_eh_filter_failure_ptr): Likewise.
3987         (gimple_eh_filter_set_types): Require a geh_filter *.
3988         (gimple_eh_filter_set_failure): Likewise.
3989         (gimple_eh_must_not_throw_fndecl): Require a geh_mnt *.
3990         (gimple_eh_must_not_throw_set_fndecl): Likewise.
3991         (gimple_eh_else_n_body_ptr): Require a geh_else *.
3992         (gimple_eh_else_n_body): Likewise.
3993         (gimple_eh_else_e_body_ptr): Likewise.
3994         (gimple_eh_else_e_body): Likewise.
3995         (gimple_eh_else_set_n_body): Likewise.
3996         (gimple_eh_else_set_e_body): Likewise.
3997         (gimple_try_set_kind): Require a gtry *.
3998         (gimple_try_set_catch_is_cleanup): Likewise.
3999         (gimple_try_set_eval): Likewise.
4000         (gimple_try_set_cleanup): Likewise.
4001         (gimple_try_eval_ptr): Update for renaming of subclass to gtry.
4002         (gimple_try_cleanup_ptr): Likewise.
4003         (gimple_phi_capacity): Update for renaming of subclass to gphi.
4004         (gimple_phi_num_args): Likewise.
4005         (gimple_phi_result): Likewise.
4006         (gimple_phi_result_ptr): Likewise.
4007         (gimple_phi_arg): Likewise.
4008         (gimple_phi_set_result): Require a gphi *.
4009         (gimple_phi_set_arg): Likewise.
4010         (gimple_phi_arg_def_ptr): Likewise.
4011         (gimple_phi_arg_edge): Likewise.
4012         (gimple_phi_arg_location): Likewise.
4013         (gimple_phi_arg_location_from_edge): Likewise.
4014         (gimple_phi_arg_set_location): Likewise.
4015         (gimple_phi_arg_has_location): Likewise.
4016         (gimple_resx_region): Require a const gresx *.
4017         (gimple_resx_set_region): Require a gresx *.
4018         (gimple_eh_dispatch_region): Require a const geh_dispatch *.
4019         (gimple_eh_dispatch_set_region): Require a geh_dispatch *.
4020         (gimple_switch_num_labels): Require a const gswitch *.
4021         (gimple_switch_set_num_labels): Likewise.
4022         (gimple_switch_index): Likewise.
4023         (gimple_switch_index_ptr): Likewise.
4024         (gimple_switch_label): Likewise.
4025         (gimple_switch_default_label): Likewise.
4026         (gimple_switch_set_index): Require a gswitch *.
4027         (gimple_switch_set_label): Likewise.
4028         (gimple_switch_set_default_label): Likewise.
4029         (gimple_omp_critical_name): Require a const gomp_critical *.
4030         (gimple_omp_critical_name_ptr): Require a gomp_critical *.
4031         (gimple_omp_critical_set_name): Likewise.
4032         (gimple_omp_for_set_kind): Require a gomp_for *.
4033         (gimple_omp_for_set_combined_p): Likewise.
4034         (gimple_omp_for_set_combined_into_p): Likewise.
4035         (gimple_omp_for_clauses): Update for renaming of subclass to
4036         gomp_for.
4037         (gimple_omp_for_clauses_ptr): Likewise.
4038         (gimple_omp_for_set_clauses): Likewise.
4039         (gimple_omp_for_collapse): Likewise.
4040         (gimple_omp_for_index): Likewise.
4041         (gimple_omp_for_index_ptr): Likewise.
4042         (gimple_omp_for_set_index): Likewise.
4043         (gimple_omp_for_initial): Likewise.
4044         (gimple_omp_for_initial_ptr): Likewise.
4045         (gimple_omp_for_set_initial): Likewise.
4046         (gimple_omp_for_final): Likewise.
4047         (gimple_omp_for_final_ptr): Likewise.
4048         (gimple_omp_for_set_final): Likewise.
4049         (gimple_omp_for_incr): Likewise.
4050         (gimple_omp_for_incr_ptr): Likewise.
4051         (gimple_omp_for_set_incr): Likewise.
4052         (gimple_omp_for_pre_body): Likewise.
4053         (gimple_omp_for_set_pre_body): Likewise.
4054         (gimple_omp_parallel_clauses): Update for renaming of subclass to
4055         gomp_parallel.
4056         (gimple_omp_parallel_clauses_ptr): Require a gomp_parallel *.
4057         (gimple_omp_parallel_set_clauses): Likewise.
4058         (gimple_omp_parallel_child_fn_ptr): Likewise.
4059         (gimple_omp_parallel_set_child_fn): Likewise.
4060         (gimple_omp_parallel_data_arg_ptr): Likewise.
4061         (gimple_omp_parallel_set_data_arg): Likewise.
4062         (gimple_omp_parallel_child_fn): Require a const gomp_parallel *.
4063         (gimple_omp_parallel_data_arg): Likewise.
4064         (gimple_omp_task_clauses): Update for renaming of subclass to
4065         gomp_task.
4066         (gimple_omp_task_clauses_ptr): Likewise.
4067         (gimple_omp_task_set_clauses): Likewise.
4068         (gimple_omp_task_child_fn): Likewise.
4069         (gimple_omp_task_child_fn_ptr): Likewise.
4070         (gimple_omp_task_set_child_fn): Likewise.
4071         (gimple_omp_task_data_arg): Likewise.
4072         (gimple_omp_task_data_arg_ptr): Likewise.
4073         (gimple_omp_task_set_data_arg): Likewise.
4074         (gimple_omp_taskreg_clauses): Whitespace fixes.
4075         (gimple_omp_taskreg_clauses_ptr): Likewise.
4076         (gimple_omp_taskreg_set_clauses): Likewise.
4077         (gimple_omp_taskreg_child_fn): Likewise.
4078         (gimple_omp_taskreg_child_fn_ptr): Likewise.
4079         (gimple_omp_taskreg_set_child_fn): Likewise.
4080         (gimple_omp_taskreg_data_arg): Likewise.
4081         (gimple_omp_taskreg_data_arg_ptr): Likewise.
4082         (gimple_omp_taskreg_set_data_arg): Likewise.
4083         (gimple_omp_task_copy_fn): Update for renaming of subclass to
4084         gomp_task.
4085         (gimple_omp_task_copy_fn_ptr): Likewise.
4086         (gimple_omp_task_set_copy_fn): Likewise.
4087         (gimple_omp_task_arg_size): Likewise.
4088         (gimple_omp_task_arg_size_ptr): Likewise.
4089         (gimple_omp_task_set_arg_size): Likewise.
4090         (gimple_omp_task_arg_align): Likewise.
4091         (gimple_omp_task_arg_align_ptr): Likewise.
4092         (gimple_omp_task_set_arg_align): Likewise.
4093         (gimple_omp_single_clauses): Update for renaming of subclass to
4094         gomp_single.
4095         (gimple_omp_single_clauses_ptr): Likewise.
4096         (gimple_omp_single_set_clauses): Likewise.
4097         (gimple_omp_target_clauses): Update for renaming of subclass to
4098         gomp_target.
4099         (gimple_omp_target_clauses_ptr): Likewise.
4100         (gimple_omp_target_set_clauses): Require a gomp_target *.
4101         (gimple_omp_target_set_kind): Likewise.
4102         (gimple_omp_target_child_fn_ptr): Likewise.
4103         (gimple_omp_target_set_child_fn): Likewise.
4104         (gimple_omp_target_data_arg_ptr): Likewise.
4105         (gimple_omp_target_set_data_arg): Likewise.
4106         (gimple_omp_target_child_fn): Require a const gomp_target *.
4107         (gimple_omp_target_data_arg): Likewise.
4108         (gimple_omp_teams_clauses): Update for renaming of subclass to
4109         gomp_teams.
4110         (gimple_omp_teams_clauses_ptr): Likewise.
4111         (gimple_omp_teams_set_clauses): Require a gomp_teams *.
4112         (gimple_omp_sections_clauses): Update for renaming of subclass to
4113         gomp_sections.
4114         (gimple_omp_sections_clauses_ptr): Likewise.
4115         (gimple_omp_sections_set_clauses): Likewise.
4116         (gimple_omp_sections_control): Likewise.
4117         (gimple_omp_sections_control_ptr): Likewise.
4118         (gimple_omp_sections_set_control): Likewise.
4119         (gimple_omp_for_set_cond): Likewise.
4120         (gimple_omp_for_cond): Likewise.
4121         (gimple_omp_atomic_store_set_val): Require a gomp_atomic_store *.
4122         (gimple_omp_atomic_store_val_ptr): Likewise.
4123         (gimple_omp_atomic_load_set_lhs): Likewise.
4124         (gimple_omp_atomic_store_val): Require a const gomp_atomic_store *.
4125         (gimple_omp_atomic_load_lhs): Likewise.
4126         (gimple_omp_atomic_load_rhs): Likewise.
4127         (gimple_omp_atomic_load_lhs_ptr): Require a gomp_atomic_load *.
4128         (gimple_omp_atomic_load_set_rhs): Likewise.
4129         (gimple_omp_atomic_load_rhs_ptr): Likewise.
4130         (gimple_omp_continue_control_def): Require a const gomp_continue *.
4131         (gimple_omp_continue_control_use): Likewise.
4132         (gimple_omp_continue_control_def_ptr): Require a gomp_continue *.
4133         (gimple_omp_continue_set_control_def): Likewise.
4134         (gimple_omp_continue_control_use_ptr): Likewise.
4135         (gimple_omp_continue_set_control_use): Likewise.
4136         (gimple_transaction_body_ptr): Require a gtransaction *.
4137         (gimple_transaction_body): Likewise.
4138         (gimple_transaction_label_ptr): Likewise.
4139         (gimple_transaction_label): Require a const gtransaction *.
4140         (gimple_transaction_subcode): Likewise.
4141         (gimple_transaction_set_body): Require a gtransaction *.
4142         (gimple_transaction_set_label): Likewise.
4143         (gimple_transaction_set_subcode): Likewise.
4144         (gimple_return_retval_ptr): Require a const greturn *.
4145         (gimple_return_retval): Likewise.
4146         (gimple_return_set_retval): Require a greturn *.
4147         (gimple_expr_type): Introduce local "call_stmt" and use in place of
4148         "stmt" for typesafety.
4149
4150         * asan.c: Use gimple subclasses.
4151         * auto-profile.c: Likewise.
4152         * builtins.c: Likewise.
4153         * builtins.h: Likewise.
4154         * cfgexpand.c: Likewise.
4155         * cfgloop.c: Likewise.
4156         * cfgloopmanip.c: Likewise.
4157         * cgraph.c: Likewise.
4158         * cgraph.h: Likewise.
4159         * cgraphbuild.c: Likewise.
4160         * cgraphclones.c: Likewise.
4161         * cgraphunit.c: Likewise.
4162         * expr.h: Likewise.
4163         * gimple-builder.c: Likewise.
4164         * gimple-builder.h: Likewise.
4165         * gimple-fold.c: Likewise.
4166         * gimple-low.c: Likewise.
4167         * gimple-pretty-print.c: Likewise.
4168         * gimple-ssa-isolate-paths.c: Likewise.
4169         * gimple-ssa-strength-reduction.c: Likewise.
4170         * gimple-streamer-in.c: Likewise.
4171         * gimple-streamer-out.c: Likewise.
4172         * gimple-walk.c: Likewise.
4173         * gimplify-me.c: Likewise.
4174         * gimplify.c: Likewise.
4175         * gimplify.h: Likewise.
4176         * graphite-scop-detection.c: Likewise.
4177         * graphite-sese-to-poly.c: Likewise.
4178         * internal-fn.c: Likewise.
4179         * internal-fn.def:: Likewise.
4180         * internal-fn.h: Likewise.
4181         * ipa-icf-gimple.c: Likewise.
4182         * ipa-icf-gimple.h: Likewise.
4183         * ipa-icf.c: Likewise.
4184         * ipa-inline-analysis.c: Likewise.
4185         * ipa-prop.c: Likewise.
4186         * ipa-prop.h: Likewise.
4187         * ipa-pure-const.c: Likewise.
4188         * ipa-split.c: Likewise.
4189         * lto-streamer-in.c: Likewise.
4190         * lto-streamer-out.c: Likewise.
4191         * omp-low.c: Likewise.
4192         * predict.c: Likewise.
4193         * sanopt.c: Likewise.
4194         * sese.c: Likewise.
4195         * ssa-iterators.h: Likewise.
4196         * stmt.c: Likewise.
4197         * trans-mem.c: Likewise.
4198         * tree-call-cdce.c: Likewise.
4199         * tree-cfg.c: Likewise.
4200         * tree-cfg.h: Likewise.
4201         * tree-cfgcleanup.c: Likewise.
4202         * tree-chkp.c: Likewise.
4203         * tree-chkp.h: Likewise.
4204         * tree-complex.c: Likewise.
4205         * tree-data-ref.c: Likewise.
4206         * tree-dfa.c: Likewise.
4207         * tree-eh.c: Likewise.
4208         * tree-eh.h: Likewise.
4209         * tree-emutls.c: Likewise.
4210         * tree-if-conv.c: Likewise.
4211         * tree-inline.c: Likewise.
4212         * tree-inline.h: Likewise.
4213         * tree-into-ssa.c: Likewise.
4214         * tree-into-ssa.h: Likewise.
4215         * tree-loop-distribution.c: Likewise.
4216         * tree-nrv.c: Likewise.
4217         * tree-object-size.c: Likewise.
4218         * tree-outof-ssa.c: Likewise.
4219         * tree-parloops.c: Likewise.
4220         * tree-phinodes.c: Likewise.
4221         * tree-phinodes.h: Likewise.
4222         * tree-predcom.c: Likewise.
4223         * tree-profile.c: Likewise.
4224         * tree-scalar-evolution.c: Likewise.
4225         * tree-scalar-evolution.h
4226         * tree-sra.cn_function):
4227         * tree-ssa-alias.c: Likewise.
4228         * tree-ssa-alias.h: Likewise.
4229         * tree-ssa-ccp.c: Likewise.
4230         * tree-ssa-coalesce.c: Likewise.
4231         * tree-ssa-copy.c: Likewise.
4232         * tree-ssa-copyrename.c: Likewise.
4233         * tree-ssa-dce.c: Likewise.
4234         * tree-ssa-dom.c: Likewise.
4235         * tree-ssa-forwprop.c: Likewise.
4236         * tree-ssa-ifcombine.c: Likewise.
4237         * tree-ssa-live.c: Likewise.
4238         * tree-ssa-loop-im.c: Likewise.
4239         * tree-ssa-loop-ivcanon.c: Likewise.
4240         * tree-ssa-loop-ivopts.c: Likewise.
4241         * tree-ssa-loop-manip.c: Likewise.
4242         * tree-ssa-loop-niter.c: Likewise.
4243         * tree-ssa-loop-prefetch.c: Likewise.
4244         * tree-ssa-loop-unswitch.c: Likewise.
4245         * tree-ssa-math-opts.c: Likewise.
4246         * tree-ssa-operands.c: Likewise.
4247         * tree-ssa-phiopt.c: Likewise.
4248         * tree-ssa-phiprop.c: Likewise.
4249         * tree-ssa-pre.c: Likewise.
4250         * tree-ssa-propagate.c: Likewise.
4251         * tree-ssa-propagate.h: Likewise.
4252         * tree-ssa-reassoc.c: Likewise.
4253         * tree-ssa-sccvn.c: Likewise.
4254         * tree-ssa-sccvn.h: Likewise.
4255         * tree-ssa-sink.c: Likewise.
4256         * tree-ssa-strlen.c
4257         * tree-ssa-structalias.c
4258         * tree-ssa-tail-merge.c: Likewise.
4259         * tree-ssa-ter.c: Likewise.
4260         * tree-ssa-threadedge.c: Likewise.
4261         * tree-ssa-threadedge.h: Likewise.
4262         * tree-ssa-threadupdate.c: Likewise.
4263         * tree-ssa-uncprop.c: Likewise.
4264         * tree-ssa-uninit.c: Likewise.
4265         * tree-ssa.c: Likewise.
4266         * tree-stdarg.c: Likewise.
4267         * tree-switch-conversion.c: Likewise.
4268         * tree-tailcall.c: Likewise.
4269         * tree-vect-data-refs.c: Likewise.
4270         * tree-vect-generic.c: Likewise.
4271         * tree-vect-loop-manip.c: Likewise.
4272         * tree-vect-loop.c: Likewise.
4273         * tree-vect-patterns.c: Likewise.
4274         * tree-vect-slp.c: Likewise.
4275         * tree-vect-stmts.c: Likewise.
4276         * tree-vectorizer.h: Likewise.
4277         * tree-vrp.c: Likewise.
4278         * tree.c: Likewise.
4279         * ubsan.c: Likewise.
4280         * value-prof.c: Likewise.
4281         * value-prof.h: Likewise.
4282         * vtable-verify.c: Likewise.
4283
4284 2014-11-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
4285
4286         * config/rs6000/constraints.md: Avoid signed integer overflows.
4287         * config/rs6000/predicates.md: Likewise.
4288
4289 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
4290
4291         PR target/63424
4292         * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
4293
4294 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
4295
4296         PR middle-end/63762
4297         * ira.c (ira): Update preferred class.
4298
4299 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
4300
4301         * gimple.h (gimple_build_assign_with_ops): Add unary arg overload.
4302         (gimple_assign_set_rhs_with_ops_1): Renamed to ...
4303         (gimple_assign_set_rhs_with_ops): ... this.  Adjust binary arg
4304         inline overload to use it.  Add unary arg overload.
4305         * gimple.c (gimple_build_assign_with_ops): New unary arg overload.
4306         (gimple_assign_set_rhs_from_tree): Use
4307         gimple_assign_set_rhs_with_ops instead of
4308         gimple_assign_set_rhs_with_ops_1.
4309         (gimple_assign_set_rhs_with_ops_1): Renamed to ...
4310         (gimple_assign_set_rhs_with_ops): ... this.
4311         * ipa-split.c (split_function): Remove last NULL argument
4312         from gimple_build_assign_with_ops call.
4313         * tree-ssa-loop-im.c
4314         (move_computations_dom_walker::before_dom_children): Likewise.
4315         * tsan.c (instrument_builtin_call): Likewise.
4316         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
4317         vectorizable_conversion, vectorizable_load): Likewise.
4318         * tree-vect-loop.c (vect_is_simple_reduction_1,
4319         get_initial_def_for_induction): Likewise.
4320         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
4321         * tree-vect-patterns.c (vect_handle_widen_op_by_const,
4322         vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
4323         vect_recog_over_widening_pattern, vect_recog_rotate_pattern,
4324         vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern,
4325         vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
4326         adjust_bool_pattern, vect_recog_bool_pattern): Likewise.
4327         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
4328         neg_replacement): Likewise.
4329         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
4330         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
4331         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4332         * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
4333         expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
4334         simd_clone_adjust): Likewise.
4335         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
4336         * gimple-ssa-strength-reduction.c (introduce_cast_before_cand,
4337         replace_one_candidate): Likewise.
4338         * gimple-builder.c (build_type_cast): Likewise.
4339         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
4340         (forward_propagate_addr_expr_1): Remove last NULL argument
4341         from gimple_assign_set_rhs_with_ops call.
4342         (simplify_vector_constructor): Use gimple_assign_set_rhs_with_ops
4343         instead of gimple_assign_set_rhs_with_ops_1.
4344         * tree-ssa-reassoc.c (maybe_optimize_range_tests): Remove last NULL
4345         argument from gimple_build_assign_with_ops call.
4346         (repropagate_negates): Remove last NULL argument from
4347         gimple_assign_set_rhs_with_ops call.
4348         * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn): Remove
4349         last NULL argument from gimple_build_assign_with_ops call.
4350         (instrument_bool_enum_load): Likewise.  Remove last NULL argument
4351         from gimple_assign_set_rhs_with_ops call.
4352         * tree-ssa-math-opts.c (build_and_insert_cast, convert_mult_to_fma):
4353         Remove last NULL argument from gimple_build_assign_with_ops call.
4354         (bswap_replace): Likewise.  Use gimple_assign_set_rhs_with_ops instead
4355         of gimple_assign_set_rhs_with_ops_1.
4356         (convert_plusminus_to_widen): Use gimple_assign_set_rhs_with_ops
4357         instead of gimple_assign_set_rhs_with_ops_1.
4358         * gimple-fold.c (replace_stmt_with_simplification): Likewise.
4359         (rewrite_to_defined_overflow, gimple_build): Remove last NULL argument
4360         from gimple_build_assign_with_ops call.
4361         * tree-ssa-strlen.c (handle_pointer_plus): Remove last NULL argument
4362         from gimple_assign_set_rhs_with_ops call.
4363         * tree-vrp.c (simplify_truth_ops_using_ranges,
4364         simplify_bit_ops_using_ranges): Remove last NULL argument from
4365         gimple_assign_set_rhs_with_ops call.
4366         (simplify_float_conversion_using_ranges,
4367         simplify_internal_call_using_ranges): Remove last NULL argument from
4368         gimple_build_assign_with_ops call.
4369
4370 2014-11-19  Wilco Dijkstra  <wdijkstr@arm.com>
4371
4372         PR target/61915
4373         * config/aarch64/aarch64.c (generic_regmove_cost): Increase FP move
4374         cost.
4375
4376 2014-11-19  Marek Polacek  <polacek@redhat.com>
4377
4378         PR sanitizer/63690
4379         * ubsan.c (instrument_object_size): Check for MEM_REF.
4380
4381 2014-11-19  Ilya Verbin  <ilya.verbin@intel.com>
4382
4383         PR regression/63868
4384         * cgraph.c (cgraph_node::create): Guard g->have_offload with
4385         ifdef ENABLE_OFFLOADING.
4386         * omp-low.c (create_omp_child_function): Likewise.
4387         (expand_omp_target): Guard node->mark_force_output and offload_funcs
4388         with ifdef ENABLE_OFFLOADING.
4389         * varpool.c (varpool_node::get_create): Guard g->have_offload and
4390         offload_vars with ifdef ENABLE_OFFLOADING.
4391
4392 2014-11-19  Felix Yang  <felix.yang@huawei.com>
4393             Shanyao Chen  <chenshanyao@huawei.com>
4394
4395         PR target/59593
4396         * config/arm/arm.md (define_attr "arch"): Add v6t2.
4397         (define_attr "arch_enabled"): Add test for the above.
4398         (*movhi_insn_arch4): Add new alternative.
4399
4400 2014-11-19  Richard Henderson  <rth@redhat.com>
4401
4402         * c-family/c-common.c (c_common_reswords): Add
4403         __builtin_call_with_static_chain.
4404         * c-family/c-common.h (RID_BUILTIN_CALL_WITH_STATIC_CHAIN): New.
4405         * c/c-parser.c (c_parser_postfix_expression): Handle it.
4406         * doc/extend.texi (__builtin_call_with_static_chain): Document it.
4407
4408         * calls.c (prepare_call_address): Allow decl or type for first arg.
4409         (expand_call): Pass type to prepare_call_address if no decl.
4410         * gimple-fold.c (gimple_fold_call): Eliminate the static chain if
4411         the function doesn't use it; fold it otherwise.
4412         * gimplify.c (gimplify_call_expr): Gimplify the static chain.
4413         * tree-cfg.c (verify_gimple_call): Allow a static chain on indirect
4414         function calls.
4415
4416         * targhooks.c (default_static_chain): Remove check for
4417         DECL_STATIC_CHAIN.
4418         * config/moxie/moxie.c (moxie_static_chain): Likewise.
4419         * config/i386/i386.c (ix86_static_chain): Allow decl or type
4420         as the first argument.
4421         * config/xtensa/xtensa.c (xtensa_static_chain): Change the name
4422         of the unused first parameter.
4423         * doc/tm.texi (TARGET_STATIC_CHAIN): Document the first parameter
4424         may be a type.
4425         * target.def (static_chain): Likewise.
4426
4427 2014-11-19  Renlin Li  <renlin.li@arm.com>
4428
4429     * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_FP_FAST,
4430         __ARM_FEATURE_FMA, __ARM_FP, __ARM_FEATURE_NUMERIC_MAXMIN, __ARM_NEON_FP.
4431
4432 2014-11-19  Marek Polacek  <polacek@redhat.com>
4433
4434         PR sanitizer/63879
4435         * fold-const.c (negate_expr_p) <case NEGATE_EXPR>: Return
4436         !TYPE_OVERFLOW_SANITIZED.
4437         (fold_negate_expr) <case INTEGER_CST>: Fold when overflow
4438         does not trap and when overflow wraps, or when SANITIZE_SI_OVERFLOW
4439         is 0.
4440
4441 2014-11-19  Ilya Tocar  <ilya.tocar@intel.com>
4442
4443         * collect2.c (main): Don't call fatal_error before
4444         diagnostic_initialize.
4445         * lto-wrapper.c (main): Likewise.
4446
4447 2014-11-19  Tom de Vries  <tom@codesourcery.com>
4448
4449         PR tree-optimization/62167
4450         * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
4451         conservatively.
4452         (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
4453         assigns.
4454
4455 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
4456
4457         PR tree-optimization/63915
4458         * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
4459         true instead of false as last argument to gsi_replace.
4460
4461         PR sanitizer/63520
4462         * internal-fn.c (expand_ubsan_result_store): New function.
4463         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
4464         Use it instead of just emit_move_insn.
4465
4466 2014-11-19  Richard Biener  <rguenther@suse.de>
4467
4468         PR tree-optimization/63844
4469         * omp-low.c (fixup_child_record_type): Use a restrict qualified
4470         referece type for the receiver parameter.
4471
4472 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
4473
4474         PR sanitizer/63913
4475         * ubsan.c: Include tree-eh.h.
4476         (instrument_bool_enum_load): Handle loads that can throw.
4477
4478         PR rtl-optimization/63843
4479         * simplify-rtx.c (simplify_binary_operation_1) <case ASHIFTRT>: For
4480         optimization of ashiftrt of subreg of lshiftrt, check that code
4481         is ASHIFTRT.
4482
4483 2014-11-18  Andrew MacLeod  <amacleod@redhat.com>
4484
4485         * attribs.c (decl_attributes): Remove always true condition,
4486         TREE_TYPE(x) will never compare equal to a TYPE_DECL.
4487
4488 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4489
4490         PR target/63937
4491         * target.def (use_by_pieces_infrastructure_p): Take unsigned
4492         HOST_WIDE_INT as the size parameter.
4493         * targhooks.c (default_use_by_pieces_infrastructure_p): Likewise.
4494         * targhooks.h (default_use_by_pieces_infrastructure_p): Likewise.
4495         * config/arc/arc.c (arc_use_by_pieces_infrastructure_p)): Likewise.
4496         * config/mips/mips.c (mips_use_by_pieces_infrastructure_p)): Likewise.
4497         * config/s390/s390.c (s390_use_by_pieces_infrastructure_p)): Likewise.
4498         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p)): Likewise.
4499         * config/aarch64/aarch64.c
4500         (aarch64_use_by_pieces_infrastructure_p)): Likewise.
4501         * doc/tm.texi: Regenerate.
4502
4503 2014-11-18  Jan Hubicka  <hubicka@ucw.cz>
4504
4505         * ipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn.
4506         (ipa_value_from_jfunc, ipa_context_from_jfunc): Skip sanity check.
4507         (ipa_get_indirect_edge_target_1): Use opt_for_fn.
4508         (good_cloning_opportunity_p): Likewise.
4509         (ipa-cp gate): Enable ipa-cp with LTO.
4510         * ipa-profile.c (ipa_propagate_frequency): Use opt_for_fn.
4511         * ipa.c (symbol_table::remove_unreachable_nodes): Always build type
4512         inheritance.
4513         * ipa-inline-transform.c (inline_transform): Check if there are inlines
4514         to apply even at -O0.
4515         * cgraphunit.c (cgraph_node::finalize_function): Use opt_for_fn.
4516         (analyze_functions): Build type inheritance graph.
4517         * ipa-inline.c (can_inline_edge_p): Use opt_for_fn.
4518         (want_early_inline_function_p, want_inline_small_function_p):
4519         Likewise.
4520         (check_callers): Likewise.
4521         (edge_badness): Likewise.
4522         (inline_small_functions): Always be ready for indirect inlining
4523         to happend.
4524         (ipa_inline): Always use want_inline_function_to_all_callers_p.
4525         (early_inline_small_functions): Use opt_for_fn.
4526         * ipa-inline-analysis.c (estimate_function_body_sizes): use opt_for_fn.
4527         (estimate_function_body_sizes): Likewise.
4528         (compute_inline_parameters): Likewise.
4529         (estimate_edge_devirt_benefit): Likewise.
4530         (inline_analyze_function): Likewise.
4531         * ipa-devirt.c (ipa_devirt): Likewise.
4532         (gate): Use in_lto_p.
4533         * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): Use opt_for_fn.
4534         (try_make_edge_direct_virtual_call): Likewise.
4535         (update_indirect_edges_after_inlining): Likewise.
4536         (ipa_free_all_structures_after_ipa_cp): Add in_lto_p check.
4537         * common.opt (findirect-inlining): Turn into optimization.
4538         * ipa-pure-const.c (add_new_function): Use opt_for_fn.
4539         (pure_const_generate_summary): Likewise.
4540         (gate_pure_const): Always enable with in_lto_p.
4541
4542 2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>
4543
4544         * config/mips/mips.md (compression): Add `micromips32' setting.
4545         (enabled, length): Handle it.
4546         (shift_compression): Replace `micromips' with `micromips32' in
4547         the `compression' attribute.
4548         (*add<mode>3, sub<mode>3): Likewise.
4549
4550 2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>
4551
4552         * gcc/config/mips/mips.md (*jump_absolute): Use a branch when in
4553         range, a jump otherwise.
4554
4555 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4556
4557         * config/arm/cortex-a15-neon.md (cortex_a15_vfp_to_from_gp):
4558         Split into...
4559         (cortex_a15_gp_to_vfp): ...This.
4560         (cortex_a15_fp_to_gp): ...And this.
4561         Define and comment bypass from vfp operations to fp->gp moves.
4562
4563 2014-11-18  Martin Liska  <mliska@suse.cz>
4564
4565         * var-tracking.c (vt_find_locations): New fibonacci_node is used.
4566
4567 2014-11-18  Martin Liska  <mliska@suse.cz>
4568
4569         * bt-load.c (add_btr_def): New fibonacci_heap is used.
4570         (migrate_btr_defs): Likewise.
4571
4572 2014-11-18  Martin Liska  <mliska@suse.cz>
4573
4574         * tracer.c (tail_duplicate): New fibonacci_heap class is used.
4575
4576 2014-11-18  Martin Liska  <mliska@suse.cz>
4577
4578         * bb-reorder.c (mark_bb_visited): New fibonacci_heap is used.
4579         (find_traces): Likewise.
4580         (find_traces_1_round): Likewise.
4581
4582 2014-11-18  Martin Liska  <mliska@suse.cz>
4583
4584         * fibonacci_heap.h: New file.
4585         (fibonacci_heap::insert): Created from fibheap_insert.
4586         (fibonacci_heap::empty): Created from fibheap_empty.
4587         (fibonacci_heap::nodes): Created from fibheap_nodes.
4588         (fibonacci_heap::min_key): Created from fibheap_min_key.
4589         (fibonacci_heap::decrease_key): Created from fibheap_replace_key.
4590         (fibonacci_heap::replace_key_data): Created from fibheap_replace_key_data.
4591         (fibonacci_heap::extract_min): Created from fibheap_extract_min.
4592         (fibonacci_heap::min): Created from fibheap_min.
4593         (fibonacci_heap::replace_data): Created from fibheap_replace_data.
4594         (fibonacci_heap::delete_node): Created from fibheap_delete_node.
4595         (fibonacci_heap::union_with): Created from fibheap_union.
4596         * ipa-inline.c (update_edge_key): New heap API is used.
4597         (update_caller_keys): Likewise.
4598         (update_callee_keys): Likewise.
4599         (lookup_recursive_calls): Likewise.
4600         (recursive_inlining): Likewise.
4601         (add_new_edges_to_heap): Likewise.
4602         (heap_edge_removal_hook): Likewise.
4603         (inline_small_functions): Likewise.
4604
4605 2014-11-18  Marek Polacek  <polacek@redhat.com>
4606
4607         PR sanitizer/63866
4608         * asan.c (asan_global_struct): Create a TYPE_DECL for "__asan_global",
4609         put it into TYPE_NAME and TYPE_STUB_DECL.
4610         * ubsan.c (ubsan_type_descriptor_type): New variable.
4611         Function renamed to ...
4612         (ubsan_get_type_descriptor_type): ... this.  Cache
4613         return value in ubsan_type_descriptor_type variable.
4614         Create a TYPE_DECL for "__ubsan_type_descriptor", put it into
4615         TYPE_NAME and TYPE_STUB_DECL.
4616         (ubsan_get_source_location_type): Create a TYPE_DECL for
4617         "__ubsan_source_location", put it into TYPE_NAME and TYPE_STUB_DECL.
4618         (ubsan_type_descriptor, ubsan_create_data): Call
4619         ubsan_get_type_descriptor_type instead of ubsan_type_descriptor_type.
4620         Create a TYPE_DECL for name, put it into TYPE_NAME and TYPE_STUB_DECL.
4621
4622 2014-11-18  Felix Yang  <felix.yang@huawei.com>
4623
4624         * config/aarch64/aarch64.c (doloop_end): New pattern.
4625         * config/aarch64/aarch64.md (TARGET_CAN_USE_DOLOOP_P): Implement.
4626
4627 2014-11-18  Jason Merrill  <jason@redhat.com>
4628
4629         * tree.c (warn_deprecated_use): Show declaration with inform.
4630
4631 2014-11-18  Richard Biener  <rguenther@suse.de>
4632
4633         PR tree-optimization/63914
4634         * tree-ssa-ccp.c (canonicalize_value): Remove float value
4635         canonicalization.
4636         (valid_lattice_transition): Allow (partial) transition
4637         from NaN to non-NaN if !HONOR_NANS.
4638         (set_lattice_value): Check for valid lattice transitions
4639         only when checking is enabled.
4640
4641 2014-11-18  Bernd Schmidt  <bernds@codesourcery.com>
4642
4643         * config/nvptx/nvptx.c: Include <sstream> directly after "config.h".
4644
4645 2014-11-18  Christophe Lyon  <christophe.lyon@linaro.org>
4646
4647         * config/arm/neon-testgen.ml (emit_prologue): Handle new
4648         compile_test_optim argument.
4649         (emit_automatics): Rename to emit_variables. Support variable
4650         indentation of its output.
4651         (compile_test_optim): New function.
4652         (test_intrinsic): Call compile_test_optim.
4653         * config/arm/neon.ml (features): Add Compiler_optim.
4654         (ops): Add Compiler_optim feature to Vbic and Vorn.
4655         (type_in_crypto_only): Replace 'or' by '||'.
4656         (reinterp): Likewise.
4657         (reinterpq): Likewise.
4658
4659 2014-11-18  Alan Lawrence  <alan.lawrence@arm.com>
4660
4661         * config/aarch64/arm_neon.h (vld1_dup_f32, vld1_dup_f64, vld1_dup_p8,
4662         vld1_dup_p16, vld1_dup_s8, vld1_dup_s16, vld1_dup_s32, vld1_dup_s64,
4663         vld1_dup_u8, vld1_dup_u16, vld1_dup_u32, vld1_dup_u64, vld1q_dup_f32,
4664         vld1q_dup_f64, vld1q_dup_p8, vld1q_dup_p16, vld1q_dup_s8, vld1q_dup_s16,
4665         vld1q_dup_s32, vld1q_dup_s64, vld1q_dup_u8, vld1q_dup_u16,
4666         vld1q_dup_u32, vld1q_dup_u64): Replace inline asm with vdup_n_ and
4667         pointer dereference.
4668
4669 2014-11-18  Marc Glisse  <marc.glisse@inria.fr>
4670
4671         * tree.c (element_mode, integer_truep): New functions.
4672         * tree.h (element_mode, integer_truep): Declare them.
4673         * fold-const.c (negate_expr_p, fold_negate_expr, combine_comparisons,
4674         fold_cond_expr_with_comparison, fold_real_zero_addition_p,
4675         fold_comparison, fold_ternary_loc, tree_call_nonnegative_warnv_p,
4676         fold_strip_sign_ops): Use element_mode.
4677         (fold_binary_loc): Use element_mode and element_precision.
4678         * match.pd: Use integer_truep, element_mode, element_precision,
4679         VECTOR_TYPE_P and build_one_cst. Extend some transformations to
4680         vectors. Simplify A/-A.
4681
4682 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4683
4684         * config/arm/arm.md (unaligned_loaddi): Use std::swap instead of
4685         manual swapping implementation.
4686         (movcond_addsi): Likewise.
4687         * config/arm/arm.c (arm_canonicalize_comparison): Likewise.
4688         (arm_select_dominance_cc_mode): Likewise.
4689         (arm_reload_out_hi): Likewise.
4690         (gen_operands_ldrd_strd): Likewise.
4691         (output_move_double): Likewise.
4692         (arm_print_operand_address): Likewise.
4693         (thumb_output_move_mem_multiple): Likewise.
4694         (SWAP_RTX): Delete.
4695
4696 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4697
4698         * config/arm/arm-builtins.c (CONVERT_QUALIFIERS): Delete.
4699         (COPYSIGNF_QUALIFIERS): Likewise.
4700         (CREATE_QUALIFIERS): Likewise.
4701         (DUP_QUALIFIERS): Likewise.
4702         (FLOAT_WIDEN_QUALIFIERS): Likewise.
4703         (FLOAT_NARROW_QUALIFIERS): Likewise.
4704         (REINTERP_QUALIFIERS): Likewise.
4705         (RINT_QUALIFIERS): Likewise.
4706         (SPLIT_QUALIFIERS): Likewise.
4707         (FIXCONV_QUALIFIERS): Likewise.
4708         (SCALARMUL_QUALIFIERS): Likewise.
4709         (SCALARMULL_QUALIFIERS): Likewise.
4710         (SCALARMULH_QUALIFIERS): Likewise.
4711         (SELECT_QUALIFIERS): Likewise.
4712         (VTBX_QUALIFIERS): Likewise.
4713         (SHIFTIMM_QUALIFIERS): Likewise.
4714         (SCALARMAC_QUALIFIERS): Likewise.
4715         (LANEMUL_QUALIFIERS): Likewise.
4716         (LANEMULH_QUALIFIERS): Likewise.
4717         (LANEMULL_QUALIFIERS): Likewise.
4718         (SHIFTACC_QUALIFIERS): Likewise.
4719         (SHIFTINSERT_QUALIFIERS): Likewise.
4720         (VTBL_QUALIFIERS): Likewise.
4721         (LOADSTRUCT_QUALIFIERS): Likewise.
4722         (LOADSTRUCTLANE_QUALIFIERS): Likewise.
4723         (STORESTRUCT_QUALIFIERS): Likewise.
4724         (STORESTRUCTLANE_QUALIFIERS): Likewise.
4725         (neon_builtin_type_mode): Delete.
4726         (v8qi_UP): Map to V8QImode.
4727         (v8qi_UP): Map to V8QImode.
4728         (v4hi_UP): Map to V4HImode.
4729         (v4hf_UP): Map to V4HFmode.
4730         (v2si_UP): Map to V2SImode.
4731         (v2sf_UP): Map to V2SFmode.
4732         (di_UP): Map to DImode.
4733         (v16qi_UP): Map to V16QImode.
4734         (v8hi_UP): Map to V8HImode.
4735         (v4si_UP): Map to V4SImode.
4736         (v4sf_UP): Map to V4SFmode.
4737         (v2di_UP): Map to V2DImode.
4738         (ti_UP): Map to TImode.
4739         (ei_UP): Map to EImode.
4740         (oi_UP): Map to OImode.
4741         (neon_itype): Delete.
4742         (neon_builtin_datum): Remove itype, make mode a machine_mode.
4743         (VAR1): Update accordingly.
4744         (arm_init_neon_builtins): Use machine_mode directly.
4745         (neon_dereference_pointer): Likewise.
4746         (arm_expand_neon_args): Use qualifiers to decide operand types.
4747         (arm_expand_neon_builtin): Likewise.
4748         * config/arm/arm_neon_builtins.def: Remap operation type for
4749         many builtins.
4750
4751 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4752
4753         * config/arm/arm-builtins.c (arm_scalar_builtin_types): New.
4754         (enum arm_simd_type): Likewise.
4755         (struct arm_simd_type_info): Likewise
4756         (arm_mangle_builtin_scalar_type): Likewise.
4757         (arm_mangle_builtin_vector_type): Likewise.
4758         (arm_mangle_builtin_type): Likewise.
4759         (arm_simd_builtin_std_type): Likewise.
4760         (arm_lookup_simd_builtin_type): Likewise.
4761         (arm_simd_builtin_type): Likewise.
4762         (arm_init_simd_builtin_types): Likewise.
4763         (arm_init_simd_builtin_scalar_types): Likewise.
4764         (arm_init_neon_builtins): Rewrite using qualifiers.
4765         * config/arm/arm-protos.h (arm_mangle_builtin_type): New.
4766         * config/arm/arm-simd-builtin-types.def: New file.
4767         * config/arm/t-arm (arm-builtins.o): Depend on it.
4768         * config/arm/arm.c (arm_mangle_type): Call arm_mangle_builtin_type.
4769         * config/arm/arm_neon.h (int8x8_t): Use new internal type.
4770         (int16x4_t): Likewise.
4771         (int32x2_t): Likewise.
4772         (float16x4_t): Likewise.
4773         (float32x2_t): Likewise.
4774         (poly8x8_t): Likewise.
4775         (poly16x4_t): Likewise.
4776         (uint8x8_t): Likewise.
4777         (uint16x4_t): Likewise.
4778         (uint32x2_t): Likewise.
4779         (int8x16_t): Likewise.
4780         (int16x8_t): Likewise.
4781         (int32x4_t): Likewise.
4782         (int64x2_t): Likewise.
4783         (float32x4_t): Likewise.
4784         (poly8x16_t): Likewise.
4785         (poly16x8_t): Likewise.
4786         (uint8x16_t): Likewise.
4787         (uint16x8_t): Likewise.
4788         (uint32x4_t): Likewise.
4789         (uint64x2_t): Likewise.
4790
4791 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4792
4793         * gcc/config/arm/arm-builtins.c (arm_type_qualifiers): New.
4794         (neon_itype): Add new types corresponding to the types used in
4795         qualifiers names.
4796         (arm_unop_qualifiers): New.
4797         (arm_bswap_qualifiers): Likewise.
4798         (arm_binop_qualifiers): Likewise.
4799         (arm_ternop_qualifiers): Likewise.
4800         (arm_getlane_qualifiers): Likewise.
4801         (arm_lanemac_qualifiers): Likewise.
4802         (arm_setlane_qualifiers): Likewise.
4803         (arm_combine_qualifiers): Likewise.
4804         (arm_load1_qualifiers): Likewise.
4805         (arm_load1_lane_qualifiers): Likewise.
4806         (arm_store1_qualifiers): Likewise.
4807         (arm_storestruct_lane_qualifiers): Likewise.
4808         (UNOP_QUALIFIERS): Likewise.
4809         (DUP_QUALIFIERS): Likewise.
4810         (SPLIT_QUALIFIERS): Likewise.
4811         (CONVERT_QUALIFIERS): Likewise.
4812         (FLOAT_WIDEN_QUALIFIERS): Likewise.
4813         (FLOAT_NARROW_QUALIFIERS): Likewise.
4814         (RINT_QUALIFIERS): Likewise.
4815         (COPYSIGNF_QUALIFIERS): Likewise.
4816         (CREATE_QUALIFIERS): Likewise.
4817         (REINTERP_QUALIFIERS): Likewise.
4818         (BSWAP_QUALIFIERS): Likewise.
4819         (BINOP_QUALIFIERS): Likewise.
4820         (FIXCONV_QUALIFIERS): Likewise.
4821         (SCALARMUL_QUALIFIERS): Likewise.
4822         (SCALARMULL_QUALIFIERS): Likewise.
4823         (SCALARMULH_QUALIFIERS): Likewise.
4824         (TERNOP_QUALIFIERS): Likewise.
4825         (SELECT_QUALIFIERS): Likewise.
4826         (VTBX_QUALIFIERS): Likewise.
4827         (GETLANE_QUALIFIERS): Likewise.
4828         (SHIFTIMM_QUALIFIERS): Likewise.
4829         (LANEMAC_QUALIFIERS): Likewise.
4830         (SCALARMAC_QUALIFIERS): Likewise.
4831         (SETLANE_QUALIFIERS): Likewise.
4832         (SHIFTINSERT_QUALIFIERS): Likewise.
4833         (SHIFTACC_QUALIFIERS): Likewise.
4834         (LANEMUL_QUALIFIERS): Likewise.
4835         (LANEMULL_QUALIFIERS): Likewise.
4836         (LANEMULH_QUALIFIERS): Likewise.
4837         (COMBINE_QUALIFIERS): Likewise.
4838         (VTBL_QUALIFIERS): Likewise.
4839         (LOAD1_QUALIFIERS): Likewise.
4840         (LOADSTRUCT_QUALIFIERS): Likewise.
4841         (LOAD1LANE_QUALIFIERS): Likewise.
4842         (LOADSTRUCTLANE_QUALIFIERS): Likewise.
4843         (STORE1_QUALIFIERS): Likewise.
4844         (STORESTRUCT_QUALIFIERS): Likewise.
4845         (STORE1LANE_QUALIFIERS): Likewise.
4846         (STORESTRUCTLANE_QUALIFIERS): Likewise.
4847         (neon_builtin_datum): Keep track of qualifiers.
4848         (VAR1): Likewise.
4849
4850 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4851
4852         * config/arm/arm-builtins.c (VAR1): Add a comma.
4853         (VAR2): Rewrite in terms of VAR1.
4854         (VAR3-10): Likewise.
4855         (arm_builtins): Remove leading comma before ARM_BUILTIN_MAX.
4856         * config/arm/arm_neon_builtins.def: Remove trailing commas.
4857
4858 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4859
4860         * config.gcc (extra_objs): Add arm-builtins.o for arm*-*-*.
4861         (target_gtfiles): Add config/arm/arm-builtins.c for arm*-*-*.
4862         * config/arm/arm-builtins.c: New.
4863         * config/arm/t-arm (arm_builtins.o): New.
4864         * config/arm/arm-protos.h (arm_expand_builtin): New.
4865         (arm_builtin_decl): Likewise.
4866         (arm_init_builtins): Likewise.
4867         (arm_atomic_assign_expand_fenv): Likewise.
4868         * config/arm/arm.c (arm_atomic_assign_expand_fenv): Remove prototype.
4869         (arm_init_builtins): Likewise.
4870         (arm_init_iwmmxt_builtins): Likewise
4871         (safe_vector_operand): Likewise
4872         (arm_expand_binop_builtin): Likewise
4873         (arm_expand_unop_builtin): Likewise
4874         (arm_expand_builtin): Likewise
4875         (arm_builtin_decl): Likewise
4876         (insn_flags): Remove static.
4877         (tune_flags): Likewise.
4878         (enum arm_builtins): Move to config/arm/arm-builtins.c.
4879         (arm_init_neon_builtins): Likewise.
4880         (struct builtin_description): Likewise.
4881         (arm_init_iwmmxt_builtins): Likewise.
4882         (arm_init_fp16_builtins): Likewise.
4883         (arm_init_crc32_builtins): Likewise.
4884         (arm_init_builtins): Likewise.
4885         (arm_builtin_decl): Likewise.
4886         (safe_vector_operand): Likewise.
4887         (arm_expand_ternop_builtin): Likewise.
4888         (arm_expand_binop_builtin): Likewise.
4889         (arm_expand_unop_builtin): Likewise.
4890         (neon_dereference_pointer): Likewise.
4891         (arm_expand_neon_args): Likewise.
4892         (arm_expand_neon_builtin): Likewise.
4893         (neon_split_vcombine): Likewise.
4894         (arm_expand_builtin): Likewise.
4895         (arm_builtin_vectorized_function): Likewise.
4896         (arm_atomic_assign_expand_fenv): Likewise.
4897
4898 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4899
4900         * config/arm/t-arm (arm.o): Include arm-protos.h in the recipe.
4901         * config/arm/arm.c (FL_CO_PROC): Move to arm-protos.h.
4902         (FL_ARCH3M): Likewise.
4903         (FL_MODE26): Likewise.
4904         (FL_MODE32): Likewise.
4905         (FL_ARCH4): Likewise.
4906         (FL_ARCH5): Likewise.
4907         (FL_THUMB): Likewise.
4908         (FL_LDSCHED): Likewise.
4909         (FL_STRONG): Likewise.
4910         (FL_ARCH5E): Likewise.
4911         (FL_XSCALE): Likewise.
4912         (FL_ARCH6): Likewise.
4913         (FL_VFPV2): Likewise.
4914         (FL_WBUF): Likewise.
4915         (FL_ARCH6K): Likewise.
4916         (FL_THUMB2): Likewise.
4917         (FL_NOTM): Likewise.
4918         (FL_THUMB_DIV): Likewise.
4919         (FL_VFPV3): Likewise.
4920         (FL_NEON): Likewise.
4921         (FL_ARCH7EM): Likewise.
4922         (FL_ARCH7): Likewise.
4923         (FL_ARM_DIV): Likewise.
4924         (FL_ARCH8): Likewise.
4925         (FL_CRC32): Likewise.
4926         (FL_SMALLMUL): Likewise.
4927         (FL_IWMMXT): Likewise.
4928         (FL_IWMMXT2): Likewise.
4929         (FL_TUNE): Likewise.
4930         (FL_FOR_ARCH2): Likewise.
4931         (FL_FOR_ARCH3): Likewise.
4932         (FL_FOR_ARCH3M): Likewise.
4933         (FL_FOR_ARCH4): Likewise.
4934         (FL_FOR_ARCH4T): Likewise.
4935         (FL_FOR_ARCH5): Likewise.
4936         (FL_FOR_ARCH5T): Likewise.
4937         (FL_FOR_ARCH5E): Likewise.
4938         (FL_FOR_ARCH5TE): Likewise.
4939         (FL_FOR_ARCH5TEJ): Likewise.
4940         (FL_FOR_ARCH6): Likewise.
4941         (FL_FOR_ARCH6J): Likewise.
4942         (FL_FOR_ARCH6K): Likewise.
4943         (FL_FOR_ARCH6Z): Likewise.
4944         (FL_FOR_ARCH6ZK): Likewise.
4945         (FL_FOR_ARCH6T2): Likewise.
4946         (FL_FOR_ARCH6M): Likewise.
4947         (FL_FOR_ARCH7): Likewise.
4948         (FL_FOR_ARCH7A): Likewise.
4949         (FL_FOR_ARCH7VE): Likewise.
4950         (FL_FOR_ARCH7R): Likewise.
4951         (FL_FOR_ARCH7M): Likewise.
4952         (FL_FOR_ARCH7EM): Likewise.
4953         (FL_FOR_ARCH8A): Likewise.
4954         * config/arm/arm-protos.h: Take definitions moved from arm.c.
4955
4956 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4957
4958         * config/arm/arm.c (arm_expand_neon_builtin): Remove "Magic Word"
4959         parameter, rearrange switch statement accordingly.
4960         (arm_evpc_neon_vrev): Remove "Magic Word".
4961         * config/arm/unspecs.md (unspec): Split many UNSPECs to
4962         rounding, or signed/unsigned variants.
4963         * config/arm/neon.md (vcond<mode><mode>): Remove "Magic Word" code.
4964         (vcondu<mode><mode>): Likewise.
4965         (neon_vadd): Remove "Magic Word" operand.
4966         (neon_vaddl): Remove "Magic Word" operand, convert to use
4967         signed/unsigned iterator.
4968         (neon_vaddw): Likewise.
4969         (neon_vhadd): Likewise, also iterate over "rounding" forms.
4970         (neon_vqadd): Remove "Magic Word" operand, convert to use
4971         signed/unsigned iterator.
4972         (neon_v<r>addhn): Remove "Magic Word" operand, convert to iterate
4973         over "rounding" forms.
4974         (neon_vmul): Remove "Magic Word" operand, iterate over
4975         polynomial/float instruction forms.
4976         (neon_vmla): Remove "Magic Word" operand.
4977         (neon_vfma): Likewise.
4978         (neon_vfms): Likewise.
4979         (neon_vmls): Likewise.
4980         (neon_vmlal): Remove "Magic Word" operand, iterate over
4981         signed/unsigned forms.
4982         (neon_vmlsl): Likewise.
4983         (neon_vqdmulh): Remove "Magic Word" operand, iterate over "rounding"
4984         forms.
4985         (neon_vqdmlal): Remove "Magic Word" operand, iterate over
4986         signed/unsigned forms.
4987         (neon_vqdmlsl): Likewise.
4988         (neon_vmull): Likewise.
4989         (neon_vqdmull): Remove "Magic Word" operand.
4990         (neon_vsub): Remove "Magic Word" operand.
4991         (neon_vsubl): Remove "Magic Word" operand, convert to use
4992         signed/unsigned iterator.
4993         (neon_vsubw): Likewise.
4994         (neon_vhsub): Likewise.
4995         (neon_vqsub): Likewise.
4996         (neon_v<r>subhn): Remove "Magic Word" operand, convert to iterate
4997         over "rounding" forms.
4998         (neon_vceq): Remove "Magic Word" operand.
4999         (neon_vcge): Likewise.
5000         (neon_vcgeu): Likewise.
5001         (neon_vcgt): Likewise.
5002         (neon_vcgtu): Likewise.
5003         (neon_vcle): Likewise.
5004         (neon_vclt): Likewise.
5005         (neon_vcage): Likewise.
5006         (neon_vcagt): Likewise.
5007         (neon_vabd): Remove "Magic Word" operand, iterate over
5008         signed/unsigned forms, and split out...
5009         (neon_vabdf): ...this as new.
5010         (neon_vabdl): Remove "Magic Word" operand, iterate over
5011         signed/unsigned forms.
5012         (neon_vaba): Likewise.
5013         (neon_vmax): Remove "Magic Word" operand, iterate over
5014         signed/unsigned and max/min forms, and split out...
5015         (neon_v<maxmin>f): ...this as new.
5016         (neon_vmin): Delete.
5017         (neon_vpadd): Remove "Magic Word" operand.
5018         (neon_vpaddl): Remove "Magic Word" operand, iterate over
5019         signed/unsigned variants.
5020         (neon_vpadal): Likewise.
5021         (neon_vpmax): Remove "Magic Word" operand, iterate over
5022         signed/unsigned and max/min forms, and split out...
5023         (neon_vp<maxmin>f): ...this as new.
5024         (neon_vpmin): Delete.
5025         (neon_vrecps): Remove "Magic Word" operand.
5026         (neon_vrsqrts): Likewise.
5027         (neon_vabs): Likewise.
5028         (neon_vqabs): Likewise.
5029         (neon_vneg): Likewise.
5030         (neon_vqneg): Likewise.
5031         (neon_vcls): Likewise.
5032         (neon_vcnt): Likewise.
5033         (neon_vrecpe): Likewise.
5034         (neon_vrsqrte): Likewise.
5035         (neon_vmvn): Likewise.
5036         (neon_vget_lane): Likewise.
5037         (neon_vget_laneu): New.
5038         (neon_vget_lanedi): Remove "Magic Word" operand.
5039         (neon_vget_lanev2di): Likewise.
5040         (neon_vcvt): Remove "Magic Word" operand, iterate over
5041         signed/unsigned variants.
5042         (neon_vcvt_n): Likewise.
5043         (neon_vmovn): Remove "Magic Word" operand.
5044         (neon_vqmovn): Remove "Magic Word" operand, iterate over
5045         signed/unsigned variants.
5046         (neon_vmovun): Remove "Magic Word" operand.
5047         (neon_vmovl): Remove "Magic Word" operand, iterate over
5048         signed/unsigned variants.
5049         (neon_vmul_lane): Remove "Magic Word" operand.
5050         (neon_vmull_lane): Remove "Magic Word" operand, iterate over
5051         signed/unsigned variants.
5052         (neon_vqdmull_lane): Remove "Magic Word" operand.
5053         (neon_vqdmulh_lane): Remove "Magic Word" operand, iterate over
5054         rounding variants.
5055         (neon_vmla_lane): Remove "Magic Word" operand.
5056         (neon_vmlal_lane): Remove "Magic Word" operand, iterate over
5057         signed/unsigned variants.
5058         (neon_vqdmlal_lane): Remove "Magic Word" operand.
5059         (neon_vmls_lane): Likewise.
5060         (neon_vmlsl_lane): Remove "Magic Word" operand, iterate over
5061         signed/unsigned variants.
5062         (neon_vqdmlsl_lane): Remove "Magic Word" operand.
5063         (neon_vmul_n): Remove "Magic Word" operand.
5064         (neon_vmull_n): Rename to...
5065         (neon_vmulls_n): ...this, remove "Magic Word" operand.
5066         (neon_vmullu_n): New.
5067         (neon_vqdmull_n): Remove "Magic Word" operand.
5068         (neon_vqdmulh_n): Likewise.
5069         (neon_vqrdmulh_n): New.
5070         (neon_vmla_n): Remove "Magic Word" operand.
5071         (neon_vmls_n): Likewise.
5072         (neon_vmlal_n): Rename to...
5073         (neon_vmlals_n): ...this, remove "Magic Word" operand.
5074         (neon_vmlalu_n): New.
5075         (neon_vqdmlal_n): Remove "Magic Word" operand.
5076         (neon_vmlsl_n): Rename to...
5077         (neon_vmlsls_n): ...this, remove "Magic Word" operand.
5078         (neon_vmlslu_n): New.
5079         (neon_vqdmlsl_n): Remove "Magic Word" operand.
5080         (neon_vrev64): Remove "Magic Word" operand.
5081         (neon_vrev32): Likewise.
5082         (neon_vrev16): Likewise.
5083         (neon_vshl): Remove "Magic Word" operand, iterate over
5084         signed/unsigned and "rounding" forms.
5085         (neon_vqshl): Likewise.
5086         (neon_vshr_n): Likewise.
5087         (neon_vshrn_n): Remove "Magic Word" operand, iterate over
5088         "rounding" forms.
5089         (neon_vqshrn_n): Remove "Magic Word" operand, iterate over
5090         signed/unsigned and "rounding" forms.
5091         (neon_vqshrun_n): Remove "Magic Word" operand, iterate over
5092         "rounding" forms.
5093         (neon_vshl_n): Remove "Magic Word" operand.
5094         (neon_vqshl_n): Remove "Magic Word" operand, iterate over
5095         signed/unsigned variants.
5096         (neon_vqshlu_n): Remove "Magic Word" operand.
5097         (neon_vshll_n): Remove "Magic Word" operand, iterate over
5098         signed/unsigned variants.
5099         (neon_vsra_n): Remove "Magic Word" operand, iterate over
5100         signed/unsigned and "rounding" forms.
5101         * config/arm/iterators.md (VPF): New.
5102         (VADDL): Likewise.
5103         (VADDW): Likewise.
5104         (VHADD): Likewise.
5105         (VQADD): Likewise.
5106         (VADDHN): Likewise.
5107         (VMLAL): Likewise.
5108         (VMLAL_LANE): Likewise.
5109         (VLMSL): Likewise.
5110         (VMLSL_LANE): Likewise.
5111         (VQDMULH): Likewise,
5112         (VQDMULH_LANE): Likewise.
5113         (VMULL): Likewise.
5114         (VMULL_LANE): Likewise.
5115         (VSUBL): Likewise.
5116         (VSUBW): Likewise.
5117         (VHSUB): Likewise.
5118         (VQSUB): Likewise.
5119         (VSUBHN): Likewise.
5120         (VABD): Likewise.
5121         (VABDL): Likewise.
5122         (VMAXMIN): Likewise.
5123         (VMAXMINF): Likewise.
5124         (VPADDL): Likewise.
5125         (VPADAL): Likewise.
5126         (VPMAXMIN): Likewise.
5127         (VPMAXMINF): Likewise.
5128         (VCVT_US): Likewise.
5129         (VCVT_US_N): Likewise.
5130         (VQMOVN): Likewise.
5131         (VMOVL): Likewise.
5132         (VSHL): Likewise.
5133         (VQSHL): Likewise.
5134         (VSHR_N): Likewise.
5135         (VSHRN_N): Likewise.
5136         (VQSHRN_N): Likewise.
5137         (VQSHRUN_N): Likewise.
5138         (VQSHL_N): Likewise.
5139         (VSHLL_N): Likewise.
5140         (VSRA_N): Likewise.
5141         (pf): Likewise.
5142         (sup): Likewise.
5143         (r): Liekwise.
5144         (maxmin): Likewise.
5145         (shift_op): Likewise.
5146         * config/arm/arm_neon_builtins.def (vaddl): Split to...
5147         (vaddls): ...this and...
5148         (vaddlu): ...this.
5149         (vaddw): Split to...
5150         (vaddws): ...this and...
5151         (vaddwu): ...this.
5152         (vhadd): Split to...
5153         (vhadds): ...this and...
5154         (vhaddu): ...this and...
5155         (vrhadds): ...this and...
5156         (vrhaddu): ...this.
5157         (vqadd): Split to...
5158         (vqadds): ...this and...
5159         (vqaddu): ...this.
5160         (vaddhn): Split to itself and...
5161         (vraddhn): ...this.
5162         (vmul): Split to...
5163         (vmulf): ...this and...
5164         (vmulp): ...this.
5165         (vmlal): Split to...
5166         (vmlals): ...this and...
5167         (vmlalu): ...this.
5168         (vmlsl): Split to...
5169         (vmlsls): ...this and...
5170         (vmlslu): ...this.
5171         (vqdmulh): Split to itself and...
5172         (vqrdmulh): ...this.
5173         (vmull): Split to...
5174         (vmullp): ...this and...
5175         (vmulls): ...this and...
5176         (vmullu): ...this.
5177         (vmull_n): Split to...
5178         (vmulls_n): ...this and...
5179         (vmullu_n): ...this.
5180         (vmull_lane): Split to...
5181         (vmulls_lane): ...this and...
5182         (vmullu_lane): ...this.
5183         (vqdmulh_n): Split to itself and...
5184         (vqrdmulh_n): ...this.
5185         (vqdmulh_lane): Split to itself and...
5186         (vqrdmulh_lane): ...this.
5187         (vshl): Split to...
5188         (vshls): ...this and...
5189         (vshlu): ...this and...
5190         (vrshls): ...this and...
5191         (vrshlu): ...this.
5192         (vqshl): Split to...
5193         (vqshls): ...this and...
5194         (vqrshlu): ...this and...
5195         (vqrshls): ...this and...
5196         (vqrshlu): ...this.
5197         (vshr_n): Split to...
5198         (vshrs_n): ...this and...
5199         (vshru_n): ...this and...
5200         (vrshrs_n): ...this and...
5201         (vrshru_n): ...this.
5202         (vshrn_n): Split to itself and...
5203         (vrshrn_n): ...this.
5204         (vqshrn_n): Split to...
5205         (vqshrns_n): ...this and...
5206         (vqshrnu_n): ...this and...
5207         (vqrshrns_n): ...this and...
5208         (vqrshrnu_n): ...this.
5209         (vqshrun_n): Split to itself and...
5210         (vqrshrun_n): ...this.
5211         (vqshl_n): Split to...
5212         (vqshl_s_n): ...this and...
5213         (vqshl_u_n): ...this.
5214         (vshll_n): Split to...
5215         (vshlls_n): ...this and...
5216         (vshllu_n): ...this.
5217         (vsra_n): Split to...
5218         (vsras_n): ...this and...
5219         (vsrau_n): ...this and.
5220         (vrsras_n): ...this and...
5221         (vrsrau_n): ...this and.
5222         (vsubl): Split to...
5223         (vsubls): ...this and...
5224         (vsublu): ...this.
5225         (vsubw): Split to...
5226         (vsubws): ...this and...
5227         (vsubwu): ...this.
5228         (vqsub): Split to...
5229         (vqsubs): ...this and...
5230         (vqsubu): ...this.
5231         (vhsub): Split to...
5232         (vhsubs): ...this and...
5233         (vhsubu): ...this.
5234         (vsubhn): Split to itself and...
5235         (vrsubhn): ...this.
5236         (vabd): Split to...
5237         (vabds): ...this and...
5238         (vabdu): ...this and...
5239         (vabdf): ...this.
5240         (vabdl): Split to...
5241         (vabdls): ...this and...
5242         (vabdlu): ...this.
5243         (vaba): Split to...
5244         (vabas): ...this and...
5245         (vabau): ...this and...
5246         (vabal): Split to...
5247         (vabals): ...this and...
5248         (vabalu): ...this.
5249         (vmax): Split to...
5250         (vmaxs): ...this and...
5251         (vmaxu): ...this and...
5252         (vmaxf): ...this.
5253         (vmin): Split to...
5254         (vmins): ...this and...
5255         (vminu): ...this and...
5256         (vminf): ...this.
5257         (vpmax): Split to...
5258         (vpmaxs): ...this and...
5259         (vpmaxu): ...this and...
5260         (vpmaxf): ...this.
5261         (vpmin): Split to...
5262         (vpmins): ...this and...
5263         (vpminu): ...this and...
5264         (vpminf): ...this.
5265         (vpaddl): Split to...
5266         (vpaddls): ...this and...
5267         (vpaddlu): ...this.
5268         (vpadal): Split to...
5269         (vpadals): ...this and...
5270         (vpadalu): ...this.
5271         (vget_laneu): New.
5272         (vqmovn): Split to...
5273         (vqmovns): ...this and...
5274         (vqmovnu): ...this.
5275         (vmovl): Split to...
5276         (vmovls): ...this and...
5277         (vmovlu): ...this.
5278         (vmlal_lane): Split to...
5279         (vmlals_lane): ...this and...
5280         (vmlalu_lane): ...this.
5281         (vmlsl_lane): Split to...
5282         (vmlsls_lane): ...this and...
5283         (vmlslu_lane): ...this.
5284         (vmlal_n): Split to...
5285         (vmlals_n): ...this and...
5286         (vmlalu_n): ...this.
5287         (vmlsl_n): Split to...
5288         (vmlsls_n): ...this and...
5289         (vmlslu_n): ...this.
5290         (vext): Make type "SHIFTINSERT".
5291         (vcvt): Split to...
5292         (vcvts): ...this and...
5293         (vcvtu): ...this.
5294         (vcvt_n): Split to...
5295         (vcvts_n): ...this and...
5296         (vcvtu_n): ...this.
5297         * config/arm/arm_neon.h (vaddl_s8): Remove "Magic Word".
5298         (vaddl_s16): Likewise.
5299         (vaddl_s32): Likewise.
5300         (vaddl_u8): Likewise.
5301         (vaddl_u16): Likewise.
5302         (vaddl_u32): Likewise.
5303         (vaddw_s8): Likewise.
5304         (vaddw_s16): Likewise.
5305         (vaddw_s32): Likewise.
5306         (vaddw_u8): Likewise.
5307         (vaddw_u16): Likewise.
5308         (vaddw_u32): Likewise.
5309         (vhadd_s8): Likewise.
5310         (vhadd_s16): Likewise.
5311         (vhadd_s32): Likewise.
5312         (vhadd_u8): Likewise.
5313         (vhadd_u16): Likewise.
5314         (vhadd_u32): Likewise.
5315         (vhaddq_s8): Likewise.
5316         (vhaddq_s16): Likewise.
5317         (vhaddq_s32): Likewise.
5318         (vhaddq_u8): Likewise.
5319         (vhaddq_u16): Likewise.
5320         (vrhadd_s8): Likewise.
5321         (vrhadd_s16): Likewise.
5322         (vrhadd_s32): Likewise.
5323         (vrhadd_u8): Likewise.
5324         (vrhadd_u16): Likewise.
5325         (vrhadd_u32): Likewise.
5326         (vrhaddq_s8): Likewise.
5327         (vrhaddq_s16): Likewise.
5328         (vrhaddq_s32): Likewise.
5329         (vrhaddq_u8): Likewise.
5330         (vrhaddq_u16): Likewise.
5331         (vrhaddq_u32): Likewise.
5332         (vqadd_s8): Likewise.
5333         (vqadd_s16): Likewise.
5334         (vqadd_s32): Likewise.
5335         (vqadd_s64): Likewise.
5336         (vqadd_u8): Likewise.
5337         (vqadd_u16): Likewise.
5338         (vqadd_u32): Likewise.
5339         (vqadd_u64): Likewise.
5340         (vqaddq_s8): Likewise.
5341         (vqaddq_s16): Likewise.
5342         (vqaddq_s32): Likewise.
5343         (vqaddq_s64): Likewise.
5344         (vqaddq_u8): Likewise.
5345         (vqaddq_u16): Likewise.
5346         (vqaddq_u32): Likewise.
5347         (vqaddq_u64): Likewise.
5348         (vaddhn_s16): Likewise.
5349         (vaddhn_s32): Likewise.
5350         (vaddhn_s64): Likewise.
5351         (vaddhn_u16): Likewise.
5352         (vaddhn_u32): Likewise.
5353         (vaddhn_u64): Likewise.
5354         (vraddhn_s16): Likewise.
5355         (vraddhn_s32): Likewise.
5356         (vraddhn_s64): Likewise.
5357         (vraddhn_u16): Likewise.
5358         (vraddhn_u32): Likewise.
5359         (vraddhn_u64): Likewise.
5360         (vmul_p8): Likewise.
5361         (vmulq_p8): Likewise.
5362         (vqdmulh_s16): Likewise.
5363         (vqdmulh_s32): Likewise.
5364         (vqdmulhq_s16): Likewise.
5365         (vqdmulhq_s32): Likewise.
5366         (vqrdmulh_s16): Likewise.
5367         (vqrdmulh_s32): Likewise.
5368         (vqrdmulhq_s16): Likewise.
5369         (vqrdmulhq_s32): Likewise.
5370         (vmull_s8): Likewise.
5371         (vmull_s16): Likewise.
5372         (vmull_s32): Likewise.
5373         (vmull_u8): Likewise.
5374         (vmull_u16): Likewise.
5375         (vmull_u32): Likewise.
5376         (vmull_p8): Likewise.
5377         (vqdmull_s16): Likewise.
5378         (vqdmull_s32): Likewise.
5379         (vmla_s8): Likewise.
5380         (vmla_s16): Likewise.
5381         (vmla_s32): Likewise.
5382         (vmla_f32): Likewise.
5383         (vmla_u8): Likewise.
5384         (vmla_u16): Likewise.
5385         (vmla_u32): Likewise.
5386         (vmlaq_s8): Likewise.
5387         (vmlaq_s16): Likewise.
5388         (vmlaq_s32): Likewise.
5389         (vmlaq_f32): Likewise.
5390         (vmlaq_u8): Likewise.
5391         (vmlaq_u16): Likewise.
5392         (vmlaq_u32): Likewise.
5393         (vmlal_s8): Likewise.
5394         (vmlal_s16): Likewise.
5395         (vmlal_s32): Likewise.
5396         (vmlal_u8): Likewise.
5397         (vmlal_u16): Likewise.
5398         (vmlal_u32): Likewise.
5399         (vqdmlal_s16): Likewise.
5400         (vqdmlal_s32): Likewise.
5401         (vmls_s8): Likewise.
5402         (vmls_s16): Likewise.
5403         (vmls_s32): Likewise.
5404         (vmls_f32): Likewise.
5405         (vmls_u8): Likewise.
5406         (vmls_u16): Likewise.
5407         (vmls_u32): Likewise.
5408         (vmlsq_s8): Likewise.
5409         (vmlsq_s16): Likewise.
5410         (vmlsq_s32): Likewise.
5411         (vmlsq_f32): Likewise.
5412         (vmlsq_u8): Likewise.
5413         (vmlsq_u16): Likewise.
5414         (vmlsq_u32): Likewise.
5415         (vmlsl_s8): Likewise.
5416         (vmlsl_s16): Likewise.
5417         (vmlsl_s32): Likewise.
5418         (vmlsl_u8): Likewise.
5419         (vmlsl_u16): Likewise.
5420         (vmlsl_u32): Likewise.
5421         (vqdmlsl_s16): Likewise.
5422         (vqdmlsl_s32): Likewise.
5423         (vfma_f32): Likewise.
5424         (vfmaq_f32): Likewise.
5425         (vfms_f32): Likewise.
5426         (vfmsq_f32): Likewise.
5427         (vsubl_s8): Likewise.
5428         (vsubl_s16): Likewise.
5429         (vsubl_s32): Likewise.
5430         (vsubl_u8): Likewise.
5431         (vsubl_u16): Likewise.
5432         (vsubl_u32): Likewise.
5433         (vsubw_s8): Likewise.
5434         (vsubw_s16): Likewise.
5435         (vsubw_s32): Likewise.
5436         (vsubw_u8): Likewise.
5437         (vsubw_u16): Likewise.
5438         (vsubw_u32): Likewise.
5439         (vhsub_s8): Likewise.
5440         (vhsub_s16): Likewise.
5441         (vhsub_s32): Likewise.
5442         (vhsub_u8): Likewise.
5443         (vhsub_u16): Likewise.
5444         (vhsub_u32): Likewise.
5445         (vhsubq_s8): Likewise.
5446         (vhsubq_s16): Likewise.
5447         (vhsubq_s32): Likewise.
5448         (vhsubq_u8): Likewise.
5449         (vhsubq_u16): Likewise.
5450         (vhsubq_u32): Likewise.
5451         (vqsub_s8): Likewise.
5452         (vqsub_s16): Likewise.
5453         (vqsub_s32): Likewise.
5454         (vqsub_s64): Likewise.
5455         (vqsub_u8): Likewise.
5456         (vqsub_u16): Likewise.
5457         (vqsub_u32): Likewise.
5458         (vqsub_u64): Likewise.
5459         (vqsubq_s8): Likewise.
5460         (vqsubq_s16): Likewise.
5461         (vqsubq_s32): Likewise.
5462         (vqsubq_s64): Likewise.
5463         (vqsubq_u8): Likewise.
5464         (vqsubq_u16): Likewise.
5465         (vqsubq_u32): Likewise.
5466         (vqsubq_u64): Likewise.
5467         (vsubhn_s16): Likewise.
5468         (vsubhn_s32): Likewise.
5469         (vsubhn_s64): Likewise.
5470         (vsubhn_u16): Likewise.
5471         (vsubhn_u32): Likewise.
5472         (vsubhn_u64): Likewise.
5473         (vrsubhn_s16): Likewise.
5474         (vrsubhn_s32): Likewise.
5475         (vrsubhn_s64): Likewise.
5476         (vrsubhn_u16): Likewise.
5477         (vrsubhn_u32): Likewise.
5478         (vrsubhn_u64): Likewise.
5479         (vceq_s8): Likewise.
5480         (vceq_s16): Likewise.
5481         (vceq_s32): Likewise.
5482         (vceq_f32): Likewise.
5483         (vceq_u8): Likewise.
5484         (vceq_u16): Likewise.
5485         (vceq_u32): Likewise.
5486         (vceq_p8): Likewise.
5487         (vceqq_s8): Likewise.
5488         (vceqq_s16): Likewise.
5489         (vceqq_s32): Likewise.
5490         (vceqq_f32): Likewise.
5491         (vceqq_u8): Likewise.
5492         (vceqq_u16): Likewise.
5493         (vceqq_u32): Likewise.
5494         (vceqq_p8): Likewise.
5495         (vcge_s8): Likewise.
5496         (vcge_s16): Likewise.
5497         (vcge_s32): Likewise.
5498         (vcge_f32): Likewise.
5499         (vcge_u8): Likewise.
5500         (vcge_u16): Likewise.
5501         (vcge_u32): Likewise.
5502         (vcgeq_s8): Likewise.
5503         (vcgeq_s16): Likewise.
5504         (vcgeq_s32): Likewise.
5505         (vcgeq_f32): Likewise.
5506         (vcgeq_u8): Likewise.
5507         (vcgeq_u16): Likewise.
5508         (vcgeq_u32): Likewise.
5509         (vcle_s8): Likewise.
5510         (vcle_s16): Likewise.
5511         (vcle_s32): Likewise.
5512         (vcle_f32): Likewise.
5513         (vcle_u8): Likewise.
5514         (vcle_u16): Likewise.
5515         (vcle_u32): Likewise.
5516         (vcleq_s8): Likewise.
5517         (vcleq_s16): Likewise.
5518         (vcleq_s32): Likewise.
5519         (vcleq_f32): Likewise.
5520         (vcleq_u8): Likewise.
5521         (vcleq_u16): Likewise.
5522         (vcleq_u32): Likewise.
5523         (vcgt_s8): Likewise.
5524         (vcgt_s16): Likewise.
5525         (vcgt_s32): Likewise.
5526         (vcgt_f32): Likewise.
5527         (vcgt_u8): Likewise.
5528         (vcgt_u16): Likewise.
5529         (vcgt_u32): Likewise.
5530         (vcgtq_s8): Likewise.
5531         (vcgtq_s16): Likewise.
5532         (vcgtq_s32): Likewise.
5533         (vcgtq_f32): Likewise.
5534         (vcgtq_u8): Likewise.
5535         (vcgtq_u16): Likewise.
5536         (vcgtq_u32): Likewise.
5537         (vclt_s8): Likewise.
5538         (vclt_s16): Likewise.
5539         (vclt_s32): Likewise.
5540         (vclt_f32): Likewise.
5541         (vclt_u8): Likewise.
5542         (vclt_u16): Likewise.
5543         (vclt_u32): Likewise.
5544         (vcltq_s8): Likewise.
5545         (vcltq_s16): Likewise.
5546         (vcltq_s32): Likewise.
5547         (vcltq_f32): Likewise.
5548         (vcltq_u8): Likewise.
5549         (vcltq_u16): Likewise.
5550         (vcltq_u32): Likewise.
5551         (vcage_f32): Likewise.
5552         (vcageq_f32): Likewise.
5553         (vcale_f32): Likewise.
5554         (vcaleq_f32): Likewise.
5555         (vcagt_f32): Likewise.
5556         (vcagtq_f32): Likewise.
5557         (vcalt_f32): Likewise.
5558         (vcaltq_f32): Likewise.
5559         (vtst_s8): Likewise.
5560         (vtst_s16): Likewise.
5561         (vtst_s32): Likewise.
5562         (vtst_u8): Likewise.
5563         (vtst_u16): Likewise.
5564         (vtst_u32): Likewise.
5565         (vtst_p8): Likewise.
5566         (vtstq_s8): Likewise.
5567         (vtstq_s16): Likewise.
5568         (vtstq_s32): Likewise.
5569         (vtstq_u8): Likewise.
5570         (vtstq_u16): Likewise.
5571         (vtstq_u32): Likewise.
5572         (vtstq_p8): Likewise.
5573         (vabd_s8): Likewise.
5574         (vabd_s16): Likewise.
5575         (vabd_s32): Likewise.
5576         (vabd_f32): Likewise.
5577         (vabd_u8): Likewise.
5578         (vabd_u16): Likewise.
5579         (vabd_u32): Likewise.
5580         (vabdq_s8): Likewise.
5581         (vabdq_s16): Likewise.
5582         (vabdq_s32): Likewise.
5583         (vabdq_f32): Likewise.
5584         (vabdq_u8): Likewise.
5585         (vabdq_u16): Likewise.
5586         (vabdq_u32): Likewise.
5587         (vabdl_s8): Likewise.
5588         (vabdl_s16): Likewise.
5589         (vabdl_s32): Likewise.
5590         (vabdl_u8): Likewise.
5591         (vabdl_u16): Likewise.
5592         (vabdl_u32): Likewise.
5593         (vaba_s8): Likewise.
5594         (vaba_s16): Likewise.
5595         (vaba_s32): Likewise.
5596         (vaba_u8): Likewise.
5597         (vaba_u16): Likewise.
5598         (vaba_u32): Likewise.
5599         (vabaq_s8): Likewise.
5600         (vabaq_s16): Likewise.
5601         (vabaq_s32): Likewise.
5602         (vabaq_u8): Likewise.
5603         (vabaq_u16): Likewise.
5604         (vabaq_u32): Likewise.
5605         (vabal_s8): Likewise.
5606         (vabal_s16): Likewise.
5607         (vabal_s32): Likewise.
5608         (vabal_u8): Likewise.
5609         (vabal_u16): Likewise.
5610         (vabal_u32): Likewise.
5611         (vmax_s8): Likewise.
5612         (vmax_s16): Likewise.
5613         (vmax_s32): Likewise.
5614         (vmax_f32): Likewise.
5615         (vmax_u8): Likewise.
5616         (vmax_u16): Likewise.
5617         (vmax_u32): Likewise.
5618         (vmaxq_s8): Likewise.
5619         (vmaxq_s16): Likewise.
5620         (vmaxq_s32): Likewise.
5621         (vmaxq_f32): Likewise.
5622         (vmaxq_u8): Likewise.
5623         (vmaxq_u16): Likewise.
5624         (vmaxq_u32): Likewise.
5625         (vmin_s8): Likewise.
5626         (vmin_s16): Likewise.
5627         (vmin_s32): Likewise.
5628         (vmin_f32): Likewise.
5629         (vmin_u8): Likewise.
5630         (vmin_u16): Likewise.
5631         (vmin_u32): Likewise.
5632         (vminq_s8): Likewise.
5633         (vminq_s16): Likewise.
5634         (vminq_s32): Likewise.
5635         (vminq_f32): Likewise.
5636         (vminq_u8): Likewise.
5637         (vminq_u16): Likewise.
5638         (vminq_u32): Likewise.
5639         (vpadd_s8): Likewise.
5640         (vpadd_s16): Likewise.
5641         (vpadd_s32): Likewise.
5642         (vpadd_f32): Likewise.
5643         (vpadd_u8): Likewise.
5644         (vpadd_u16): Likewise.
5645         (vpadd_u32): Likewise.
5646         (vpaddl_s8): Likewise.
5647         (vpaddl_s16): Likewise.
5648         (vpaddl_s32): Likewise.
5649         (vpaddl_u8): Likewise.
5650         (vpaddl_u16): Likewise.
5651         (vpaddl_u32): Likewise.
5652         (vpaddlq_s8): Likewise.
5653         (vpaddlq_s16): Likewise.
5654         (vpaddlq_s32): Likewise.
5655         (vpaddlq_u8): Likewise.
5656         (vpaddlq_u16): Likewise.
5657         (vpaddlq_u32): Likewise.
5658         (vpadal_s8): Likewise.
5659         (vpadal_s16): Likewise.
5660         (vpadal_s32): Likewise.
5661         (vpadal_u8): Likewise.
5662         (vpadal_u16): Likewise.
5663         (vpadal_u32): Likewise.
5664         (vpadalq_s8): Likewise.
5665         (vpadalq_s16): Likewise.
5666         (vpadalq_s32): Likewise.
5667         (vpadalq_u8): Likewise.
5668         (vpadalq_u16): Likewise.
5669         (vpadalq_u32): Likewise.
5670         (vpmax_s8): Likewise.
5671         (vpmax_s16): Likewise.
5672         (vpmax_s32): Likewise.
5673         (vpmax_f32): Likewise.
5674         (vpmax_u8): Likewise.
5675         (vpmax_u16): Likewise.
5676         (vpmax_u32): Likewise.
5677         (vpmin_s8): Likewise.
5678         (vpmin_s16): Likewise.
5679         (vpmin_s32): Likewise.
5680         (vpmin_f32): Likewise.
5681         (vpmin_u8): Likewise.
5682         (vpmin_u16): Likewise.
5683         (vpmin_u32): Likewise.
5684         (vrecps_f32): Likewise.
5685         (vrecpsq_f32): Likewise.
5686         (vrsqrts_f32): Likewise.
5687         (vrsqrtsq_f32): Likewise.
5688         (vshl_s8): Likewise.
5689         (vshl_s16): Likewise.
5690         (vshl_s32): Likewise.
5691         (vshl_s64): Likewise.
5692         (vshl_u8): Likewise.
5693         (vshl_u16): Likewise.
5694         (vshl_u32): Likewise.
5695         (vshl_u64): Likewise.
5696         (vshlq_s8): Likewise.
5697         (vshlq_s16): Likewise.
5698         (vshlq_s32): Likewise.
5699         (vshlq_s64): Likewise.
5700         (vshlq_u8): Likewise.
5701         (vshlq_u16): Likewise.
5702         (vshlq_u32): Likewise.
5703         (vshlq_u64): Likewise.
5704         (vrshl_s8): Likewise.
5705         (vrshl_s16): Likewise.
5706         (vrshl_s32): Likewise.
5707         (vrshl_s64): Likewise.
5708         (vrshl_u8): Likewise.
5709         (vrshl_u16): Likewise.
5710         (vrshl_u32): Likewise.
5711         (vrshl_u64): Likewise.
5712         (vrshlq_s8): Likewise.
5713         (vrshlq_s16): Likewise.
5714         (vrshlq_s32): Likewise.
5715         (vrshlq_s64): Likewise.
5716         (vrshlq_u8): Likewise.
5717         (vrshlq_u16): Likewise.
5718         (vrshlq_u32): Likewise.
5719         (vrshlq_u64): Likewise.
5720         (vqshl_s8): Likewise.
5721         (vqshl_s16): Likewise.
5722         (vqshl_s32): Likewise.
5723         (vqshl_s64): Likewise.
5724         (vqshl_u8): Likewise.
5725         (vqshl_u16): Likewise.
5726         (vqshl_u32): Likewise.
5727         (vqshl_u64): Likewise.
5728         (vqshlq_s8): Likewise.
5729         (vqshlq_s16): Likewise.
5730         (vqshlq_s32): Likewise.
5731         (vqshlq_s64): Likewise.
5732         (vqshlq_u8): Likewise.
5733         (vqshlq_u16): Likewise.
5734         (vqshlq_u32): Likewise.
5735         (vqshlq_u64): Likewise.
5736         (vqrshl_s8): Likewise.
5737         (vqrshl_s16): Likewise.
5738         (vqrshl_s32): Likewise.
5739         (vqrshl_s64): Likewise.
5740         (vqrshl_u8): Likewise.
5741         (vqrshl_u16): Likewise.
5742         (vqrshl_u32): Likewise.
5743         (vqrshl_u64): Likewise.
5744         (vqrshlq_s8): Likewise.
5745         (vqrshlq_s16): Likewise.
5746         (vqrshlq_s32): Likewise.
5747         (vqrshlq_s64): Likewise.
5748         (vqrshlq_u8): Likewise.
5749         (vqrshlq_u16): Likewise.
5750         (vqrshlq_u32): Likewise.
5751         (vqrshlq_u64): Likewise.
5752         (vshr_n_s8): Likewise.
5753         (vshr_n_s16): Likewise.
5754         (vshr_n_s32): Likewise.
5755         (vshr_n_s64): Likewise.
5756         (vshr_n_u8): Likewise.
5757         (vshr_n_u16): Likewise.
5758         (vshr_n_u32): Likewise.
5759         (vshr_n_u64): Likewise.
5760         (vshrq_n_s8): Likewise.
5761         (vshrq_n_s16): Likewise.
5762         (vshrq_n_s32): Likewise.
5763         (vshrq_n_s64): Likewise.
5764         (vshrq_n_u8): Likewise.
5765         (vshrq_n_u16): Likewise.
5766         (vshrq_n_u32): Likewise.
5767         (vshrq_n_u64): Likewise.
5768         (vrshr_n_s8): Likewise.
5769         (vrshr_n_s16): Likewise.
5770         (vrshr_n_s32): Likewise.
5771         (vrshr_n_s64): Likewise.
5772         (vrshr_n_u8): Likewise.
5773         (vrshr_n_u16): Likewise.
5774         (vrshr_n_u32): Likewise.
5775         (vrshr_n_u64): Likewise.
5776         (vrshrq_n_s8): Likewise.
5777         (vrshrq_n_s16): Likewise.
5778         (vrshrq_n_s32): Likewise.
5779         (vrshrq_n_s64): Likewise.
5780         (vrshrq_n_u8): Likewise.
5781         (vrshrq_n_u16): Likewise.
5782         (vrshrq_n_u32): Likewise.
5783         (vrshrq_n_u64): Likewise.
5784         (vshrn_n_s16): Likewise.
5785         (vshrn_n_s32): Likewise.
5786         (vshrn_n_s64): Likewise.
5787         (vshrn_n_u16): Likewise.
5788         (vshrn_n_u32): Likewise.
5789         (vshrn_n_u64): Likewise.
5790         (vrshrn_n_s16): Likewise.
5791         (vrshrn_n_s32): Likewise.
5792         (vrshrn_n_s64): Likewise.
5793         (vrshrn_n_u16): Likewise.
5794         (vrshrn_n_u32): Likewise.
5795         (vrshrn_n_u64): Likewise.
5796         (vqshrn_n_s16): Likewise.
5797         (vqshrn_n_s32): Likewise.
5798         (vqshrn_n_s64): Likewise.
5799         (vqshrn_n_u16): Likewise.
5800         (vqshrn_n_u32): Likewise.
5801         (vqshrn_n_u64): Likewise.
5802         (vqrshrn_n_s16): Likewise.
5803         (vqrshrn_n_s32): Likewise.
5804         (vqrshrn_n_s64): Likewise.
5805         (vqrshrn_n_u16): Likewise.
5806         (vqrshrn_n_u32): Likewise.
5807         (vqrshrn_n_u64): Likewise.
5808         (vqshrun_n_s16): Likewise.
5809         (vqshrun_n_s32): Likewise.
5810         (vqshrun_n_s64): Likewise.
5811         (vqrshrun_n_s16): Likewise.
5812         (vqrshrun_n_s32): Likewise.
5813         (vqrshrun_n_s64): Likewise.
5814         (vshl_n_s8): Likewise.
5815         (vshl_n_s16): Likewise.
5816         (vshl_n_s32): Likewise.
5817         (vshl_n_s64): Likewise.
5818         (vshl_n_u8): Likewise.
5819         (vshl_n_u16): Likewise.
5820         (vshl_n_u32): Likewise.
5821         (vshl_n_u64): Likewise.
5822         (vshlq_n_s8): Likewise.
5823         (vshlq_n_s16): Likewise.
5824         (vshlq_n_s32): Likewise.
5825         (vshlq_n_s64): Likewise.
5826         (vshlq_n_u8): Likewise.
5827         (vshlq_n_u16): Likewise.
5828         (vshlq_n_u32): Likewise.
5829         (vshlq_n_u64): Likewise.
5830         (vqshl_n_s8): Likewise.
5831         (vqshl_n_s16): Likewise.
5832         (vqshl_n_s32): Likewise.
5833         (vqshl_n_s64): Likewise.
5834         (vqshl_n_u8): Likewise.
5835         (vqshl_n_u16): Likewise.
5836         (vqshl_n_u32): Likewise.
5837         (vqshl_n_u64): Likewise.
5838         (vqshlq_n_s8): Likewise.
5839         (vqshlq_n_s16): Likewise.
5840         (vqshlq_n_s32): Likewise.
5841         (vqshlq_n_s64): Likewise.
5842         (vqshlq_n_u8): Likewise.
5843         (vqshlq_n_u16): Likewise.
5844         (vqshlq_n_u32): Likewise.
5845         (vqshlq_n_u64): Likewise.
5846         (vqshlu_n_s8): Likewise.
5847         (vqshlu_n_s16): Likewise.
5848         (vqshlu_n_s32): Likewise.
5849         (vqshlu_n_s64): Likewise.
5850         (vqshluq_n_s8): Likewise.
5851         (vqshluq_n_s16): Likewise.
5852         (vqshluq_n_s32): Likewise.
5853         (vqshluq_n_s64): Likewise.
5854         (vshll_n_s8): Likewise.
5855         (vshll_n_s16): Likewise.
5856         (vshll_n_s32): Likewise.
5857         (vshll_n_u8): Likewise.
5858         (vshll_n_u16): Likewise.
5859         (vshll_n_u32): Likewise.
5860         (vsra_n_s8): Likewise.
5861         (vsra_n_s16): Likewise.
5862         (vsra_n_s32): Likewise.
5863         (vsra_n_s64): Likewise.
5864         (vsra_n_u8): Likewise.
5865         (vsra_n_u16): Likewise.
5866         (vsra_n_u32): Likewise.
5867         (vsra_n_u64): Likewise.
5868         (vsraq_n_s8): Likewise.
5869         (vsraq_n_s16): Likewise.
5870         (vsraq_n_s32): Likewise.
5871         (vsraq_n_s64): Likewise.
5872         (vsraq_n_u8): Likewise.
5873         (vsraq_n_u16): Likewise.
5874         (vsraq_n_u32): Likewise.
5875         (vsraq_n_u64): Likewise.
5876         (vrsra_n_s8): Likewise.
5877         (vrsra_n_s16): Likewise.
5878         (vrsra_n_s32): Likewise.
5879         (vrsra_n_s64): Likewise.
5880         (vrsra_n_u8): Likewise.
5881         (vrsra_n_u16): Likewise.
5882         (vrsra_n_u32): Likewise.
5883         (vrsra_n_u64): Likewise.
5884         (vrsraq_n_s8): Likewise.
5885         (vrsraq_n_s16): Likewise.
5886         (vrsraq_n_s32): Likewise.
5887         (vrsraq_n_s64): Likewise.
5888         (vrsraq_n_u8): Likewise.
5889         (vrsraq_n_u16): Likewise.
5890         (vrsraq_n_u32): Likewise.
5891         (vrsraq_n_u64): Likewise.
5892         (vabs_s8): Likewise.
5893         (vabs_s16): Likewise.
5894         (vabs_s32): Likewise.
5895         (vabs_f32): Likewise.
5896         (vabsq_s8): Likewise.
5897         (vabsq_s16): Likewise.
5898         (vabsq_s32): Likewise.
5899         (vabsq_f32): Likewise.
5900         (vqabs_s8): Likewise.
5901         (vqabs_s16): Likewise.
5902         (vqabs_s32): Likewise.
5903         (vqabsq_s8): Likewise.
5904         (vqabsq_s16): Likewise.
5905         (vqabsq_s32): Likewise.
5906         (vneg_s8): Likewise.
5907         (vneg_s16): Likewise.
5908         (vneg_s32): Likewise.
5909         (vneg_f32): Likewise.
5910         (vnegq_s8): Likewise.
5911         (vnegq_s16): Likewise.
5912         (vnegq_s32): Likewise.
5913         (vnegq_f32): Likewise.
5914         (vqneg_s8): Likewise.
5915         (vqneg_s16): Likewise.
5916         (vqneg_s32): Likewise.
5917         (vqnegq_s8): Likewise.
5918         (vqnegq_s16): Likewise.
5919         (vqnegq_s32): Likewise.
5920         (vmvn_s8): Likewise.
5921         (vmvn_s16): Likewise.
5922         (vmvn_s32): Likewise.
5923         (vmvn_u8): Likewise.
5924         (vmvn_u16): Likewise.
5925         (vmvn_u32): Likewise.
5926         (vmvn_p8): Likewise.
5927         (vmvnq_s8): Likewise.
5928         (vmvnq_s16): Likewise.
5929         (vmvnq_s32): Likewise.
5930         (vmvnq_u8): Likewise.
5931         (vmvnq_u16): Likewise.
5932         (vmvnq_u32): Likewise.
5933         (vmvnq_p8): Likewise.
5934         (vcls_s8): Likewise.
5935         (vcls_s16): Likewise.
5936         (vcls_s32): Likewise.
5937         (vclsq_s8): Likewise.
5938         (vclsq_s16): Likewise.
5939         (vclsq_s32): Likewise.
5940         (vclz_s8): Likewise.
5941         (vclz_s16): Likewise.
5942         (vclz_s32): Likewise.
5943         (vclz_u8): Likewise.
5944         (vclz_u16): Likewise.
5945         (vclz_u32): Likewise.
5946         (vclzq_s8): Likewise.
5947         (vclzq_s16): Likewise.
5948         (vclzq_s32): Likewise.
5949         (vclzq_u8): Likewise.
5950         (vclzq_u16): Likewise.
5951         (vclzq_u32): Likewise.
5952         (vcnt_s8): Likewise.
5953         (vcnt_u8): Likewise.
5954         (vcnt_p8): Likewise.
5955         (vcntq_s8): Likewise.
5956         (vcntq_u8): Likewise.
5957         (vcntq_p8): Likewise.
5958         (vrecpe_f32): Likewise.
5959         (vrecpe_u32): Likewise.
5960         (vrecpeq_f32): Likewise.
5961         (vrecpeq_u32): Likewise.
5962         (vrsqrte_f32): Likewise.
5963         (vrsqrte_u32): Likewise.
5964         (vrsqrteq_f32): Likewise.
5965         (vrsqrteq_u32): Likewise.
5966         (vget_lane_s8): Likewise.
5967         (vget_lane_s16): Likewise.
5968         (vget_lane_s32): Likewise.
5969         (vget_lane_f32): Likewise.
5970         (vget_lane_u8): Likewise.
5971         (vget_lane_u16): Likewise.
5972         (vget_lane_u32): Likewise.
5973         (vget_lane_p8): Likewise.
5974         (vget_lane_p16): Likewise.
5975         (vget_lane_s64): Likewise.
5976         (vget_lane_u64): Likewise.
5977         (vgetq_lane_s8): Likewise.
5978         (vgetq_lane_s16): Likewise.
5979         (vgetq_lane_s32): Likewise.
5980         (vgetq_lane_f32): Likewise.
5981         (vgetq_lane_u8): Likewise.
5982         (vgetq_lane_u16): Likewise.
5983         (vgetq_lane_u32): Likewise.
5984         (vgetq_lane_p8): Likewise.
5985         (vgetq_lane_p16): Likewise.
5986         (vgetq_lane_s64): Likewise.
5987         (vgetq_lane_u64): Likewise.
5988         (vcvt_s32_f32): Likewise.
5989         (vcvt_f32_s32): Likewise.
5990         (vcvt_f32_u32): Likewise.
5991         (vcvt_u32_f32): Likewise.
5992         (vcvtq_s32_f32): Likewise.
5993         (vcvtq_f32_s32): Likewise.
5994         (vcvtq_f32_u32): Likewise.
5995         (vcvtq_u32_f32): Likewise.
5996         (vcvt_n_s32_f32): Likewise.
5997         (vcvt_n_f32_s32): Likewise.
5998         (vcvt_n_f32_u32): Likewise.
5999         (vcvt_n_u32_f32): Likewise.
6000         (vcvtq_n_s32_f32): Likewise.
6001         (vcvtq_n_f32_s32): Likewise.
6002         (vcvtq_n_f32_u32): Likewise.
6003         (vcvtq_n_u32_f32): Likewise.
6004         (vmovn_s16): Likewise.
6005         (vmovn_s32): Likewise.
6006         (vmovn_s64): Likewise.
6007         (vmovn_u16): Likewise.
6008         (vmovn_u32): Likewise.
6009         (vmovn_u64): Likewise.
6010         (vqmovn_s16): Likewise.
6011         (vqmovn_s32): Likewise.
6012         (vqmovn_s64): Likewise.
6013         (vqmovn_u16): Likewise.
6014         (vqmovn_u32): Likewise.
6015         (vqmovn_u64): Likewise.
6016         (vqmovun_s16): Likewise.
6017         (vqmovun_s32): Likewise.
6018         (vqmovun_s64): Likewise.
6019         (vmovl_s8): Likewise.
6020         (vmovl_s16): Likewise.
6021         (vmovl_s32): Likewise.
6022         (vmovl_u8): Likewise.
6023         (vmovl_u16): Likewise.
6024         (vmovl_u32): Likewise.
6025         (vmul_lane_s16): Likewise.
6026         (vmul_lane_s32): Likewise.
6027         (vmul_lane_f32): Likewise.
6028         (vmul_lane_u16): Likewise.
6029         (vmul_lane_u32): Likewise.
6030         (vmulq_lane_s16): Likewise.
6031         (vmulq_lane_s32): Likewise.
6032         (vmulq_lane_f32): Likewise.
6033         (vmulq_lane_u16): Likewise.
6034         (vmulq_lane_u32): Likewise.
6035         (vmla_lane_s16): Likewise.
6036         (vmla_lane_s32): Likewise.
6037         (vmla_lane_f32): Likewise.
6038         (vmla_lane_u16): Likewise.
6039         (vmla_lane_u32): Likewise.
6040         (vmlaq_lane_s16): Likewise.
6041         (vmlaq_lane_s32): Likewise.
6042         (vmlaq_lane_f32): Likewise.
6043         (vmlaq_lane_u16): Likewise.
6044         (vmlaq_lane_u32): Likewise.
6045         (vmlal_lane_s16): Likewise.
6046         (vmlal_lane_s32): Likewise.
6047         (vmlal_lane_u16): Likewise.
6048         (vmlal_lane_u32): Likewise.
6049         (vqdmlal_lane_s16): Likewise.
6050         (vqdmlal_lane_s32): Likewise.
6051         (vmls_lane_s16): Likewise.
6052         (vmls_lane_s32): Likewise.
6053         (vmls_lane_f32): Likewise.
6054         (vmls_lane_u16): Likewise.
6055         (vmls_lane_u32): Likewise.
6056         (vmlsq_lane_s16): Likewise.
6057         (vmlsq_lane_s32): Likewise.
6058         (vmlsq_lane_f32): Likewise.
6059         (vmlsq_lane_u16): Likewise.
6060         (vmlsq_lane_u32): Likewise.
6061         (vmlsl_lane_s16): Likewise.
6062         (vmlsl_lane_s32): Likewise.
6063         (vmlsl_lane_u16): Likewise.
6064         (vmlsl_lane_u32): Likewise.
6065         (vqdmlsl_lane_s16): Likewise.
6066         (vqdmlsl_lane_s32): Likewise.
6067         (vmull_lane_s16): Likewise.
6068         (vmull_lane_s32): Likewise.
6069         (vmull_lane_u16): Likewise.
6070         (vmull_lane_u32): Likewise.
6071         (vqdmull_lane_s16): Likewise.
6072         (vqdmull_lane_s32): Likewise.
6073         (vqdmulhq_lane_s16): Likewise.
6074         (vqdmulhq_lane_s32): Likewise.
6075         (vqdmulh_lane_s16): Likewise.
6076         (vqdmulh_lane_s32): Likewise.
6077         (vqrdmulhq_lane_s16): Likewise.
6078         (vqrdmulhq_lane_s32): Likewise.
6079         (vqrdmulh_lane_s16): Likewise.
6080         (vqrdmulh_lane_s32): Likewise.
6081         (vmul_n_s16): Likewise.
6082         (vmul_n_s32): Likewise.
6083         (vmul_n_f32): Likewise.
6084         (vmul_n_u16): Likewise.
6085         (vmul_n_u32): Likewise.
6086         (vmulq_n_s16): Likewise.
6087         (vmulq_n_s32): Likewise.
6088         (vmulq_n_f32): Likewise.
6089         (vmulq_n_u16): Likewise.
6090         (vmulq_n_u32): Likewise.
6091         (vmull_n_s16): Likewise.
6092         (vmull_n_s32): Likewise.
6093         (vmull_n_u16): Likewise.
6094         (vmull_n_u32): Likewise.
6095         (vqdmull_n_s16): Likewise.
6096         (vqdmull_n_s32): Likewise.
6097         (vqdmulhq_n_s16): Likewise.
6098         (vqdmulhq_n_s32): Likewise.
6099         (vqdmulh_n_s16): Likewise.
6100         (vqdmulh_n_s32): Likewise.
6101         (vqrdmulhq_n_s16): Likewise.
6102         (vqrdmulhq_n_s32): Likewise.
6103         (vqrdmulh_n_s16): Likewise.
6104         (vqrdmulh_n_s32): Likewise.
6105         (vmla_n_s16): Likewise.
6106         (vmla_n_s32): Likewise.
6107         (vmla_n_f32): Likewise.
6108         (vmla_n_u16): Likewise.
6109         (vmla_n_u32): Likewise.
6110         (vmlaq_n_s16): Likewise.
6111         (vmlaq_n_s32): Likewise.
6112         (vmlaq_n_f32): Likewise.
6113         (vmlaq_n_u16): Likewise.
6114         (vmlaq_n_u32): Likewise.
6115         (vmlal_n_s16): Likewise.
6116         (vmlal_n_s32): Likewise.
6117         (vmlal_n_u16): Likewise.
6118         (vmlal_n_u32): Likewise.
6119         (vqdmlal_n_s16): Likewise.
6120         (vqdmlal_n_s32): Likewise.
6121         (vmls_n_s16): Likewise.
6122         (vmls_n_s32): Likewise.
6123         (vmls_n_f32): Likewise.
6124         (vmls_n_u16): Likewise.
6125         (vmls_n_u32): Likewise.
6126         (vmlsq_n_s16): Likewise.
6127         (vmlsq_n_s32): Likewise.
6128         (vmlsq_n_f32): Likewise.
6129         (vmlsq_n_u16): Likewise.
6130         (vmlsq_n_u32): Likewise.
6131         (vmlsl_n_s16): Likewise.
6132         (vmlsl_n_s32): Likewise.
6133         (vmlsl_n_u16): Likewise.
6134         (vmlsl_n_u32): Likewise.
6135         (vqdmlsl_n_s16): Likewise.
6136         (vqdmlsl_n_s32): Likewise.
6137
6138 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6139
6140         * config/arm/arm.c (arm_new_rtx_costs, case PLUS, MINUS):
6141         Add cost of alu.arith in simple SImode case.
6142
6143 2014-11-18  Jiong Wang  <jiong.wang@arm.com>
6144
6145         * lra-eliminations.c (update_reg_eliminate): Relax gcc_assert for fixed
6146         registers.
6147
6148 2014-11-18  Marat Zakirov  <m.zakirov@samsung.com>
6149
6150         * opts.c (finish_options): Disable aggressive opts for sanitizer.  
6151         (common_handle_option): Move code to finish_options.  
6152
6153 2014-11-18  Yury Gribov  <y.gribov@samsung.com>
6154
6155         PR sanitizer/63802
6156         * stor-layout.c (min_align_of_type): Respect user alignment
6157         more.
6158
6159 2014-11-18  Ilya Enkovich  <ilya.enkovich@intel.com>
6160
6161         * passes.c (remove_cgraph_node_from_order): New.
6162         (do_per_function_toporder): Register cgraph removal
6163         hook.
6164
6165 2014-11-17  Terry Guo  <terry.guo@arm.com>
6166
6167         * config/arm/arm.c (arm_issue_rate): Return 2 for cortex-m7.
6168         * config/arm/arm.md (generic_sched): Exclude cortex-m7.
6169         (generic_vfp): Likewise.
6170         * config/arm/cortex-m7.md: Pipeline description for cortex-m7.
6171
6172 2014-11-17  Vladimir Makarov  <vmakarov@redhat.com>
6173
6174         PR rtl-optimization/63906
6175         * lra-remat.c (operand_to_remat): Check SP and
6176         frame_pointer_required.
6177
6178 2014-11-17  Mircea Namolaru  <mircea.namolaru@inria.fr>
6179
6180         * doc/invoke.texi (floop-unroll-and-jam): Document
6181         (loop-unroll-jam-size): Likewise.
6182         (loop-unroll-jam-depth): Likewise.
6183         * graphite-optimize-isl.c (getPrevectorMap_full): Modify comment.
6184         (getScheduleForBandList): Replaced unsafe union_map reuse.
6185
6186 2014-11-17  Andrew Pinski  <apinski@cavium.com>
6187
6188         * config/aarch64/thunderx.md: Remove copyright which should not
6189         have been there.
6190
6191 2014-11-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
6192             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6193
6194         * config/rs6000/rs6000.c (RELOAD_REG_AND_M16): Add support for
6195         Altivec style vector loads that ignore the bottom 3 bits of the
6196         address.
6197         (rs6000_debug_addr_mask): New function to print the addr_mask
6198         values if debugging.
6199         (rs6000_debug_print_mode): Call rs6000_debug_addr_mask to print
6200         out addr_mask.
6201         (rs6000_setup_reg_addr_masks): Add support for Altivec style
6202         vector loads that ignore the bottom 3 bits of the address.  Allow
6203         pre-increment and pre-decrement on floating point, even if the
6204         -mupper-regs-{sf,df} options were used.
6205         (rs6000_init_hard_regno_mode_ok): Rework DFmode support if
6206         -mupper-regs-df.  Add support for -mupper-regs-sf.  Rearrange code
6207         placement for direct move support.
6208         (rs6000_option_override_internal): Add checks for -mupper-regs-df
6209         requiring -mvsx, and -mupper-regs-sf requiring -mpower8-vector.
6210         If -mupper-regs, set both -mupper-regs-sf and -mupper-regs-df,
6211         depending on the underlying cpu.
6212         (rs6000_secondary_reload_fail): Add ATTRIBUTE_NORETURN.
6213         (rs6000_secondary_reload_toc_costs): Helper function to identify
6214         costs of a TOC load for secondary reload support.
6215         (rs6000_secondary_reload_memory): Helper function for secondary
6216         reload, to determine if a particular memory operation is directly
6217         handled by the hardware, or if it needs support from secondary
6218         reload to create a valid address.
6219         (rs6000_secondary_reload): Rework code, to be clearer.  If the
6220         appropriate -mupper-regs-{sf,df} is used, use FPR registers to
6221         reload scalar values, since the FPR registers have D-form
6222         addressing. Move most of the code handling memory to the function
6223         rs6000_secondary_reload_memory, and use the reg_addr structure to
6224         determine what type of address modes are supported.  Print more
6225         debug information if -mdebug=addr.
6226         (rs6000_secondary_reload_inner): Rework entire function to be more
6227         general.  Use the reg_addr bits to determine what type of
6228         addressing is supported.
6229         (rs6000_preferred_reload_class): Rework.  Move constant handling
6230         into a single place.  Prefer using FLOAT_REGS for scalar floating
6231         point.
6232         (rs6000_secondary_reload_class): Use a FPR register to move a
6233         value from an Altivec register to a GPR, and vice versa.  Move VSX
6234         handling above traditional floating point.
6235
6236         * config/rs6000/rs6000.md (mov<mode>_hardfloat, FMOVE32 case):
6237         Delete some spaces in the constraints.
6238         (DF->DF move peephole2): Disable if -mupper-regs-{sf,df} to
6239         allow using FPR registers to load/store an Altivec register for
6240         scalar floating point types.
6241         (SF->SF move peephole2): Likewise.
6242         (DFmode splitter): Add a define_split to move floating point
6243         constants to the constant pool before register allocation.
6244         Normally constants are put into the pool immediately, but
6245         -ffast-math delays putting them into the constant pool for the
6246         reciprocal approximation support.
6247         (SFmode splitter): Likewise.
6248
6249         * config/rs6000/rs6000.opt (-mupper-regs-df): Make option public.
6250         (-mupper-regs-sf): Likewise.
6251
6252         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
6253         __UPPER_REGS_DF__ if -mupper-regs-df.  Define __UPPER_REGS_SF__ if
6254         -mupper-regs-sf.
6255         (-mupper-regs): New combination option that sets -mupper-regs-sf
6256         and -mupper-regs-df by default if the cpu supports the instructions.
6257
6258         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6259         -mupper-regs, -mupper-regs-sf, and -mupper-regs-df.
6260
6261         * config/rs6000/predicates.md (memory_fp_constant): New predicate
6262         to return true if the operand is a floating point constant that
6263         must be put into the constant pool, before register allocation
6264         occurs.
6265
6266         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Enable
6267         -mupper-regs-df by default.
6268         (ISA_2_7_MASKS_SERVER): Enable -mupper-regs-sf by default.
6269         (POWERPC_MASKS): Add -mupper-regs-{sf,df} as options set by the
6270         various -mcpu=... options.
6271         (power7 cpu): Enable -mupper-regs-df by default.
6272
6273         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6274         -mupper-regs.
6275
6276 2014-11-17  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6277
6278         * ira-conflicts.c (build_conflict_bit_table): Add the current
6279         object to OBJECTS_LIVE after traversing OBJECTS_LIVE.
6280
6281 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6282
6283         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
6284         (ipa_get_indirect_edge_target): Add SPECULATIVE argument.
6285         (devirtualization_time_bonus): Use it.
6286         (ipcp_discover_new_direct_edges): Likewise.
6287         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Update.
6288         * ipa-prop.h (ipa_get_indirect_edge_target): Update prototype.
6289
6290 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6291
6292         * tree.c (free_lang_data_in_decl): Set DECL_FUNCTION_SPECIFIC_OPTIMIZATION
6293         to optimization_default_node.
6294
6295 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6296
6297         * cgraphunit.c (analyze_functions): Use opt_for_fn.
6298         * cgraph.h (cgraph_node::optimize_for_size_p): Likewise.
6299
6300 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6301
6302         * cgraph.c (symbol_table::create_edge): Use opt_for_fn.
6303         (cgraph_node::cannot_return_p): Likewise.
6304         (cgraph_edge::cannot_lead_to_return_p): Likewise.
6305         (cgraph_edge::maybe_hot_p): Likewise.
6306
6307 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6308
6309         * predict.c (maybe_hot_frequency_p): Use opt_for_fn.
6310         (optimize_function_for_size_p): Likewise.
6311         (probably_never_executed): Likewise; replace cfun by fun.
6312
6313 2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>
6314
6315         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Add
6316         variant reading from memory and assembling to ld1.
6317
6318         * config/aarch64/arm_neon.h (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8,
6319         vld1_lane_p16, vld1_lane_s8, vld1_lane_s16, vld1_lane_s32,
6320         vld1_lane_s64, vld1_lane_u8, vld1_lane_u16, vld1_lane_u32,
6321         vld1_lane_u64, vld1q_lane_f32, vld1q_lane_f64, vld1q_lane_p8,
6322         vld1q_lane_p16, vld1q_lane_s8, vld1q_lane_s16, vld1q_lane_s32,
6323         vld1q_lane_s64, vld1q_lane_u8, vld1q_lane_u16, vld1q_lane_u32,
6324         vld1q_lane_u64): Replace asm with vset_lane and pointer dereference.
6325
6326 2014-11-17  Jason Merrill  <jason@redhat.com>
6327
6328         * tree-inline.c (copy_fn): New.
6329         * tree-inline.h: Declare it.
6330
6331 2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>
6332
6333         * config/aarch64/aarch64-builtins.c (TYPES_CREATE): Remove.
6334         * config/aarch64/aarch64-simd-builtins.def (create): Remove.
6335         * config/aarch64/aarch64-simd.md (aarch64_create<mode>): Remove.
6336         * config/aarch64/arm_neon.h (vcreate_f64, vreinterpret_f64_s64,
6337         vreinterpret_f64_u64): Replace __builtin_aarch64_createv1df with C casts.
6338         * config/aarch64/iterators.md (VD1): Remove.
6339
6340 2014-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6341
6342         * config/aarch64/aarch64-cores.def (cortex-a53): Remove
6343         AARCH64_FL_CRYPTO from feature flags.
6344         (cortex-a57): Likewise.
6345         (cortex-a57.cortex-a53): Likewise.
6346
6347 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6348
6349         * tree.c (free_lang_data_in_decl): Annotate all functio nbodies with
6350         DECL_FUNCTION_SPECIFIC_TARGET.
6351         * i386.c (ix86_set_current_function): Handle explicit default options.
6352
6353 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6354
6355         * builtins.c (expand_builtin_memcpy_with_bounds): Use target hook
6356         instead of BNDmode.
6357         (expand_builtin_mempcpy_with_bounds): Likewise.
6358         (expand_builtin_memset_with_bounds): Likewise.
6359
6360 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6361
6362         * tree-ssa-strlen.c: include ipa-chkp.h, cgraph.h,
6363         ipa-ref.h, plugin-api.h.
6364         (get_string_length): Handle calls with bounds.
6365         (adjust_last_stmt): Likewise.
6366         (handle_builtin_strchr): Likewise.
6367         (handle_builtin_strcpy): Likewise.
6368         (handle_builtin_memcpy): Likewise.
6369         (handle_builtin_strcat): Likewise.
6370
6371 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6372
6373         * tree-chkp-opt.c (chkp_get_nobnd_fndecl): New.
6374         (chkp_get_nochk_fndecl): New.
6375         (chkp_optimize_string_function_calls): New.
6376         (chkp_opt_execute): Call chkp_optimize_string_function_calls.
6377         * tree-cfg.h (insert_cond_bb): New.
6378         * tree-cfg.c (insert_cond_bb): New.
6379
6380 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6381
6382         * tree-core.h (built_in_class): Add builtin codes to be used
6383         by Pointer Bounds Checker for instrumented builtin functions.
6384         * tree-streamer-in.c: Include ipa-chkp.h.
6385         (streamer_get_builtin_tree): Created instrumented decl if
6386         required.
6387         * ipa-chkp.h (chkp_maybe_clone_builtin_fndecl): New.
6388         * ipa-chkp.c (chkp_build_instrumented_fndecl): Support builtin
6389         function decls.
6390         (chkp_maybe_clone_builtin_fndecl): New.
6391         (chkp_maybe_create_clone): Support builtin function decls.
6392         (chkp_versioning): Clone builtin functions.
6393         * tree-chkp.c (chkp_instrument_normal_builtin): New.
6394         (chkp_add_bounds_to_call_stmt): Support builtin functions.
6395         (chkp_replace_function_pointer): Likewise.
6396         * builtins.c (expand_builtin_memcpy_args): New.
6397         (expand_builtin_memcpy): Call expand_builtin_memcpy_args.
6398         (expand_builtin_memcpy_with_bounds): New.
6399         (expand_builtin_mempcpy_with_bounds): New.
6400         (expand_builtin_mempcpy_args): Add orig_exp arg. Support
6401         BUILT_IN_CHKP_MEMCPY_NOBND_NOCHK
6402         (expand_builtin_memset_with_bounds): New.
6403         (expand_builtin_memset_args): Support BUILT_IN_CHKP_MEMSET_NOBND_NOCHK.
6404         (expand_builtin_with_bounds): New.
6405         * builtins.h (expand_builtin_with_bounds): New.
6406         * expr.c (expand_expr_real_1): Support instrumented builtin calls.
6407
6408 2014-11-17  Dodji Seketeli  <dodji@redhat.com>
6409
6410         * gimple.h (gimple_set_visited, gimple_visited_p)
6411         (gimple_set_plf, gimple_plf, gimple_set_uid, gimple_uid): Add more
6412         comments to these accessors.
6413
6414 2014-11-17  Georg-Johann Lay  <avr@gjlay.de>
6415
6416         * config/avr/avr-log.c (avr_log_set_avr_log) [TARGET_ALL_DEBUG]:
6417         Set avr_log_details to "all".
6418
6419 2014-11-17  Richard Biener  <rguenther@suse.de>
6420
6421         PR middle-end/63898
6422         * match.pd: Guard X / CST -> X * CST' transform against
6423         zero CST.
6424
6425 2014-11-17  Terry Guo  <terry.guo@arm.com>
6426
6427         * config/arm/thumb1.md (*addsi3_cbranch_scratch): Updated to UAL
6428         format.
6429
6430 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
6431
6432         * ifcvt.c (HAVE_cbranchcc4): Define.
6433         (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
6434         Use HAVE_cbranchcc4.
6435
6436 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6437
6438         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
6439         aarch64_convert_mode, aarch64_gen_ccmp_first,
6440         aarch64_gen_ccmp_next): New functions.
6441         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
6442
6443 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6444
6445         * config/aarch64/aarch64-protos.h (aarch64_ccmp_mode_to_code): New.
6446         * aarch64.c (aarch64_nzcv_codes): New data.
6447         (aarch64_ccmp_mode_to_code): New.
6448         (aarch64_print_operand): Output nzcv.
6449         config/aarch64/aarch64.md (cbranchcc4, *ccmp_and, *ccmp_ior, cstorecc4):
6450         New patterns.
6451         (cstore<mode>4): Handle ccmp_cc_register.
6452         * config/aarch64/predicates.md (const0_operand): New.
6453
6454 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6455
6456         * config/aarch64/aarch64-modes.def: Define ccmp CC mode.
6457         * config/aarch64/aarch64.c (aarch64_get_condition_code_1): New function
6458         extacted from aarch64_get_condition_code.
6459         (aarch64_get_condition_code): Call aarch64_get_condition_code_1.
6460         config/aarch64/predicates.md (ccmp_cc_register): New predicate.
6461
6462 014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6463
6464         * config/aarch64/constraints.md (Usn, aarch64_ccmp_immediate,
6465         aarch64_ccmp_operand): New constraints.
6466
6467 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6468
6469         * Makefile.in: Add ccmp.o.
6470         * ccmp.c: New file.
6471         * ccmp.h: New file.
6472         * expr.c: include "ccmp.h"
6473         (expand_cond_expr_using_cmove): Handle VOIDmode.
6474         (expand_expr_real_1): Try to expand ccmp.
6475
6476 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6477
6478         * cfgexpand.c (expand_gimple_cond): Check ccmp.
6479         * expmed.c (emit_cstore): Make it global.
6480         * expmed.h: #include "insn-codes.h"
6481         (emit_cstore): New prototype.
6482         * expr.c (expand_operands): Make it global.
6483         * expr.h (expand_operands): New prototype.
6484         * optabs.c (get_rtx_code): Make it global.
6485         * optabs.h (get_rtx_code): New prototype.
6486
6487 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6488
6489         * target.def (gen_ccmp_first, gen_ccmp_first): Add two new hooks.
6490         * doc/tm.texi.in (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
6491         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
6492
6493 2014-11-16  Patrick Palka  <ppalka@gcc.gnu.org>
6494
6495         PR middle-end/63790
6496         * tree-ssa-forwprop.c (forward_propagate_into_comparison_1):
6497         Always combine comparisons or conversions from booleans.
6498
6499 2014-11-16  Jan Hubicka  <hubicka@ucw.cz>
6500
6501         * ipa-polymorphic-call.c
6502         (ipa_polymorphic_call_context::speculation_consistent_p): Constify.
6503         (ipa_polymorphic_call_context::meet_speculation_with): New function.
6504         (ipa_polymorphic_call_context::combine_with): Handle types in construction
6505         better.
6506         (ipa_polymorphic_call_context::equal_to): Do not bother about useless
6507         speculation.
6508         (ipa_polymorphic_call_context::meet_with): New function.
6509         * cgraph.h (class ipa_polymorphic_call_context): Add
6510         meet_width, meet_speculation_with; constify speculation_consistent_p.
6511         * ipa-cp.c (ipa_context_from_jfunc): Handle speculation; combine with incomming
6512         context.
6513         (propagate_context_accross_jump_function): Likewise; be more cureful.
6514         about set_contains_variable.
6515         (ipa_get_indirect_edge_target_1): Fix handling of dynamic type changes.
6516         (find_more_scalar_values_for_callers_subset): Fix.
6517         (find_more_contexts_for_caller_subset): Perform meet operation.
6518
6519 2014-11-16  Jan Hubicka  <hubicka@ucw.cz>
6520
6521         * passes.c (execute_one_pass): Do not apply all transforms prior
6522         every simple IPA pass.
6523         * cgraphunit.c: Do not include fibheap.h
6524         (expand_thunk): Use get_untransformed_body.
6525         (cgraph_node::expand): Likewise.
6526         * tree-ssa-structalias.c (ipa_pta_execute): Skip inline clones.
6527         * cgraph.c (release_function_body): Do not push cfun when CFG is not there.
6528         (cgraph_node::get_untransformed_body): Break out from ...
6529         (cgraph_node::get_body): ... here; add code to apply all transforms.
6530         * cgraph.h (cgraph_node): Add get_untransformed_body.
6531         * ipa-icf.c (sem_function::init): Use get_untransformed_body.
6532         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
6533         * tree-inline.c (expand_call_inline): LIkewise.
6534         * i386.c (ix86_reset_to_default_globals): Break out from ...
6535         (ix86_set_current_function): ... here;
6536         (ix86_reset_previous_fndecl): Use it.
6537         (ix86_simd_clone_adjust): Use ix86_reset_previous_fndecl.
6538
6539 2014-11-16  Eric Botcazou  <ebotcazou@adacore.com>
6540
6541         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
6542         * doc/tm.texi: Regenerate.
6543
6544 2014-11-16  Uros Bizjak  <ubizjak@gmail.com>
6545
6546         * config/sh/sh.c: Do not include algorithm.
6547         (sh_emit_scc_to_t): Replace open-coded swap with std::swap
6548         to swap values.
6549         (sh_emit_compare_and_branch): Ditto.
6550         (sh_emit_compare_and_set): Ditto.
6551         * config/sh/sh.md (replacement peephole2): Ditto.
6552         (cstore4_media): Ditto.
6553         (*fmasf4): Ditto.
6554
6555 2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>
6556
6557         * lra-remat.c (cand_transf_func): Process regno for
6558         rematerialization too.
6559         * lra.c (lra): Switch on rematerialization pass.
6560
6561 2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>
6562
6563         * lra.c (lra): Switch off rematerialization pass.
6564
6565 2014-11-15  Marc Glisse  <marc.glisse@inria.fr>
6566
6567         * config/i386/xmmintrin.h (_mm_add_ps, _mm_sub_ps, _mm_mul_ps,
6568         _mm_div_ps, _mm_store_ss, _mm_cvtss_f32): Use vector extensions
6569         instead of builtins.
6570         * config/i386/emmintrin.h (__v2du, __v4su, __v8hu, __v16qu): New
6571         typedefs.
6572         (_mm_sqrt_sd): Fix comment.
6573         (_mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
6574         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
6575         _mm_mullo_epi16, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
6576         _mm_cmplt_epi8, _mm_cmplt_epi16, _mm_cmplt_epi32, _mm_cmpgt_epi8,
6577         _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_and_si128, _mm_or_si128,
6578         _mm_xor_si128, _mm_store_sd, _mm_cvtsd_f64, _mm_storeh_pd,
6579         _mm_cvtsi128_si64, _mm_cvtsi128_si64x, _mm_add_pd, _mm_sub_pd,
6580         _mm_mul_pd, _mm_div_pd, _mm_storel_epi64, _mm_movepi64_pi64):
6581         Use vector extensions instead of builtins.
6582         * config/i386/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64,
6583         _mm_mullo_epi32): Likewise.
6584         * config/i386/avxintrin.h (__v4du, __v8su, __v16hu, __v32qu):
6585         New typedefs.
6586         (_mm256_add_pd, _mm256_add_ps, _mm256_div_pd, _mm256_div_ps,
6587         _mm256_mul_pd, _mm256_mul_ps, _mm256_sub_pd, _mm256_sub_ps):
6588         Use vector extensions instead of builtins.
6589         * config/i386/avx2intrin.h (_mm256_cmpeq_epi8, _mm256_cmpeq_epi16,
6590         _mm256_cmpeq_epi32, _mm256_cmpeq_epi64, _mm256_cmpgt_epi8,
6591         _mm256_cmpgt_epi16, _mm256_cmpgt_epi32, _mm256_cmpgt_epi64,
6592         _mm256_and_si256, _mm256_or_si256, _mm256_xor_si256, _mm256_add_epi8,
6593         _mm256_add_epi16, _mm256_add_epi32, _mm256_add_epi64,
6594         _mm256_mullo_epi16, _mm256_mullo_epi32, _mm256_sub_epi8,
6595         _mm256_sub_epi16, _mm256_sub_epi32, _mm256_sub_epi64): Likewise.
6596         * config/i386/avx512fintrin.h (__v8du, __v16su, __v32hu, __v64qu):
6597         New typedefs.
6598         (_mm512_or_si512, _mm512_or_epi32, _mm512_or_epi64, _mm512_xor_si512,
6599         _mm512_xor_epi32, _mm512_xor_epi64, _mm512_and_si512,
6600         _mm512_and_epi32, _mm512_and_epi64, _mm512_mullo_epi32,
6601         _mm512_add_epi64, _mm512_sub_epi64, _mm512_add_epi32,
6602         _mm512_sub_epi32, _mm512_add_pd, _mm512_add_ps, _mm512_sub_pd,
6603         _mm512_sub_ps, _mm512_mul_pd, _mm512_mul_ps, _mm512_div_pd,
6604         _mm512_div_ps): Use vector extensions instead of builtins.
6605         * config/i386/avx512bwintrin.h (_mm512_mullo_epi16, _mm512_add_epi8,
6606         _mm512_sub_epi8, _mm512_sub_epi16, _mm512_add_epi16): Likewise.
6607         * config/i386/avx512dqintrin.h (_mm512_mullo_epi64): Likewise.
6608         * config/i386/avx512vldqintrin.h (_mm256_mullo_epi64, _mm_mullo_epi64):
6609         Likewise.
6610
6611 2014-11-15  Jan Hubicka <hubicka@ucw.cz>
6612
6613         * lto-streamer-out.c (hash_tree): Use cl_optimization_hash.
6614         * lto-streamer.h (cl_optimization_stream_out, cl_optimization_stream_in): Declare.
6615         * optc-save-gen.awk: Generate cl_optimization LTO streaming and hashing routines.
6616         * opth-gen.awk: Add prototype of cl_optimization_hash.
6617         * tree-streamer-in.c (unpack_ts_optimization): Remove.
6618         (streamer_unpack_tree_bitfields): Use cl_optimization_stream_in.
6619         * tree-streamer-out.c (pack_ts_optimization): Remove.
6620         (streamer_pack_tree_bitfields): Use cl_optimization_stream_out.
6621
6622 2014-11-15  Mircea Namolaru  <mircea.namolaru@inria.fr>
6623
6624         * common.opt (flag_loop_unroll_and_jam): New flag.
6625         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE): Parameter for unroll and
6626         jam flag.
6627         (PARAM_LOOP_UNROLL_JAM_DEPTH): Likewise.
6628         * graphite-poly.h (struct poly_bb:map_sepclass): New field
6629         * graphite-poly.c (new_poly_bb): Initialization for new field.
6630         (apply_poly_transforms): Support for unroll and jam flag.
6631         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass): Compute the
6632         separation class.
6633         (generate_luj_sepclass_opt): Build the separation class option.
6634         (generate_luj_options): Set unroll and jam options.
6635         (set_options): Support for unroll and jam options.
6636         (scop_to_isl_ast): Likewise
6637         * graphite-optimize-isl.c (getPrevectorMap_full): New function for
6638         computing the separating class map.
6639         (optimize_isl): Support for the separating class map.
6640         (apply_schedule_map_to_scop): Likewise.
6641         (getScheduleMap): Likewise.
6642         (getScheduleForBand): Likewise.
6643         (getScheduleForBandList): Likewise.
6644         * graphite.c (gate_graphite_transforms): Add unroll and jam flag.
6645         * toplev.c (process_options) Likewise.
6646
6647 2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>
6648
6649         * tree-cfg.c (replace_loop_annotate_in_block): New function extracted
6650         from...
6651         (replace_loop_annotate): ...here.  Call it on the header and on the
6652         latch block, if any.  Restore proper behavior of final cleanup.
6653
6654 2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>
6655
6656         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message
6657         for max-completely-peeled-insns limit.
6658
6659 2014-11-14  Jan Hubicka  <hubicka@ucw.cz>
6660
6661         * ipa-prop.h (ipa_known_type_data): Remove.
6662         (ipa_binfo_from_known_type_jfunc): Remove.
6663
6664 2014-11-14  Andrew Pinski  <apinski@cavium.com>
6665
6666         * config/aarch64/aarch64-cores.def (thunderx): Change the scheduler
6667         over to thunderx.
6668         * config/aarch64/aarch64.md: Include thunderx.md.
6669         (generic_sched): Set to no for thunderx.
6670         * config/aarch64/thunderx.md: New file.
6671
6672 2014-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6673
6674         * config/rs6000/predicates.md (easy_fp_constant): Delete redunant
6675         tests for 0.0.
6676
6677         * config/rs6000/vector.md (VEC_R): Move secondary reload support
6678         insns to rs6000.md from vector.md.
6679         (reload_<VEC_R:mode>_<P:mptrsize>_store): Likewise.
6680         (reload_<VEC_R:mode>_<P:mptrsize>_load): Likewise.
6681         (vec_reload_and_plus_<mptrsize>): Likewise.
6682
6683         * config/rs6000/rs6000.md (Fa): New mode attribute to give
6684         constraint for the Altivec registers for a type.
6685         (RELOAD): New mode iterator for all of the types that have
6686         secondary reload address support to load up a base register.
6687         (extendsfdf2_fpr): Use correct constraint.
6688         (copysign<mode>3_fcpsgn): For SFmode, use correct xscpsgndp
6689         instruction.
6690         (floatsi<mode>2_lfiwax): Add support for -mupper-regs-{sf,df}.
6691         Generate the non-VSX instruction if all registers were FPRs.  Do
6692         not use the patterns in vsx.md for scalar operations.
6693         (floatsi<mode>2_lfiwax_mem): Likewise.
6694         (floatunssi<mode>2_lfiwzx): Likewise.
6695         (floatunssi<mode>2_lfiwzx_mem): Likewise.
6696         (fix_trunc<mode>di2_fctidz): Likewise.
6697         (fixuns_trunc<mode>di2_fctiduz): Likewise.
6698         (fctiwz_<mode>): Likewise.
6699         (fctiwuz_<mode>): Likewise.
6700         (friz): Likewise.
6701         (floatdidf2_fpr): Likewise.
6702         (floatdidf2_mem): Likewise.
6703         (floatunsdidf2): Likewise.
6704         (floatunsdidf2_fcfidu): Likewise.
6705         (floatunsdidf2_mem): Likewise.
6706         (floatdisf2_fcfids): Likewise.
6707         (floatdisf2_mem): Likewise.
6708         (floatdisf2_internal1): Add explicit test for not FCFIDS to make
6709         it more obvious that the code is for pre-ISA 2.06 machines.
6710         (floatdisf2_internal2): Likewise.
6711         (floatunsdisf2_fcfidus): Add support for -mupper-regs-{sf,df}.
6712         Generate the non-VSX instruction if all registers were FPRs.  Do
6713         not use the patterns in vsx.md for scalar operations.
6714         (floatunsdisf2_mem): Likewise.
6715         (reload_<RELOAD:mode>_<P:mptrsize>_store): Move the reload
6716         handlers here from vector.md, and expand the types we generate
6717         reload handlers for.
6718         (reload_<RELOAD:mode>_<P:mptrsize>_load): Likewise.
6719         (vec_reload_and_plus_<mptrsize>): Likewise.
6720
6721         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Only provide the
6722         vector forms of the instructions.  Move VSX scalar forms to
6723         rs6000.md, and add support for -mupper-regs-sf.
6724         (vsx_floatuns<VSi><mode>2): Likewise.
6725         (vsx_fix_trunc<mode><VSi>2): Likewise.
6726         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
6727         (vsx_float_fix_<mode>2): Delete DF version, rename to
6728         vsx_float_fix_v2df2.
6729         (vsx_float_fix_v2df2): Likewise.
6730
6731 2014-11-14  Martin Jambor  <mjambor@suse.cz>
6732
6733         * ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.
6734         (ipa_pass_through_data): Removed field type_preserved.
6735         (ipa_ancestor_jf_data): removed fields type and type_preserved.
6736         (ipa_jump_func): Removed field known_type.
6737         (ipa_get_jf_known_type_offset): Removed.
6738         (ipa_get_jf_known_type_base_type): Likewise.
6739         (ipa_get_jf_known_type_component_type): Likewise.
6740         (ipa_get_jf_ancestor_type): Likewise.
6741         * ipa-cp.c (print_ipcp_constant_value): Removed BINFO handling.
6742         (ipa_get_jf_pass_through_result): Likewise.
6743         (ipa_get_jf_ancestor_result): Always build ptr_node_type accesses.
6744         (values_equal_for_ipcp_p): Removed BINFO handling.
6745         (ipa_get_indirect_edge_target_1): Updated comment.
6746         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Removed handling
6747         of IPA_JF_KNOWN_TYPE jump functions.  Do not print removed fields.
6748         (ipa_set_jf_known_type): Removed.
6749         (ipa_set_jf_simple_pass_through): Do not set removed fields.  Update
6750         all callers.
6751         (ipa_set_jf_arith_pass_through): Likewise.
6752         (ipa_set_ancestor_jf): Likewise.
6753         (ipa_binfo_from_known_type_jfunc): Removed.
6754         (prop_type_change_info): Removed fields known_current_type and
6755         multiple_types_encountered.
6756         (extr_type_from_vtbl_ptr_store): Removed.
6757         (check_stmt_for_type_change): Do not attempt to identify changed type.
6758         (detect_type_change_from_memory_writes): Do not set the removed fields,
6759         always set jfunc to unknown.
6760         (compute_complex_assign_jump_func): Do not detect dynamic type change.
6761         (compute_complex_ancestor_jump_func): Likewise.
6762         (compute_known_type_jump_func): Removed.
6763         (ipa_compute_jump_functions_for_edge): Do not detect dynamic type
6764         change.  Do not comute known type jump functions.
6765         (combine_known_type_and_ancestor_jfs): Removed.
6766         (update_jump_functions_after_inlining): Removed handling of
6767         IPA_JF_KNOWN_TYPE jump functions.  Do not set removed fields.
6768         (ipa_write_jump_function): Do not stream removed fields or known type
6769         jump functions.
6770         (ipa_read_jump_function): Likewise.
6771
6772 2014-11-14  Vladimir Makarov  <vmakarov@redhat.com>
6773
6774         * lra-int.h (lra_create_live_ranges): Add parameter.
6775         * lra-lives.c (temp_bitmap): Move higher.
6776         (initiate_live_solver): Move temp_bitmap initialization into
6777         lra_live_ranges_init.
6778         (finish_live_solver): Move temp_bitmap clearing into
6779         live_ranges_finish.
6780         (process_bb_lives): Add parameter.  Use it to control live info
6781         update and dead insn elimination.  Pass it to mark_regno_live and
6782         mark_regno_dead.
6783         (lra_create_live_ranges): Add parameter.  Pass it to
6784         process_bb_lives.
6785         (lra_live_ranges_init, lra_live_ranges_finish): See changes in
6786         initiate_live_solver and finish_live_solver.
6787         * lra-remat.c (do_remat): Process insn non-operand hard regs too.
6788         Use temp_bitmap to update avail_cands.
6789         * lra.c (lra): Pass new parameter to lra_create_live_ranges.  Move
6790         check with lra_need_for_spill_p after live range pass.  Switch on
6791         rematerialization pass.
6792
6793 2014-11-14  Martin Jambor  <mjambor@suse.cz>
6794
6795         * ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use
6796         agg_preserved flag instead.
6797         (ipa_get_jf_ancestor_type_preserved): Likewise.
6798         (ipa_node_params): Rename known_vals to known_csts, update all users.
6799         New field known_contexts.
6800         (ipa_get_indirect_edge_target): Update prototype.
6801         (ipcp_poly_ctx_values_pool): Declare.
6802         (ipa_context_from_jfunc): Likewise.
6803         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Updated prototype.
6804         * cgraph.h (ipa_polymorphic_call_context): New method equal_to.  New
6805         parameter newline of method dump.
6806         * ipa-cp.c (ctxlat): New field.
6807         (ipcp_values_pool): Renamed to ipcp_cst_values_pool, updated all users.
6808         (ipcp_poly_ctx_values_pool):New variable.
6809         (ipa_get_poly_ctx_lat): New function.
6810         (print_ipcp_constant_value): New overloaded function for contexts.
6811         (print_all_lattices): Also print contexts.
6812         (ipa_topo_info): New field contexts;
6813         (set_all_contains_variable): Also set the flag in the context lattice.
6814         (initialize_node_lattices): Likewise for flag bottom.
6815         (ipa_get_jf_ancestor_result): Removed BINFO handling.
6816         (ipa_value_from_jfunc): Likewise.
6817         (ipa_context_from_jfunc): New function.
6818         (values_equal_for_ipcp_p): New overloaded function for contexts.
6819         (allocate_and_init_ipcp_value): Construct the value.
6820         (allocate_and_init_ipcp_value): New overloaded function for contexts.
6821         (propagate_scalar_accross_jump_function): Removed handling of
6822         KNOWN_TYPE jump functions.
6823         (propagate_context_accross_jump_function): New function.
6824         (propagate_constants_accross_call): Also propagate contexts.
6825         (ipa_get_indirect_edge_target_1): Work on contexts rather than BINFOs.
6826         (ipa_get_indirect_edge_target): Likewise.
6827         (devirtualization_time_bonus): Likewise.
6828         (gather_context_independent_values): Create and populate known_contexts
6829         vector rather than known_binfos.
6830         (perform_estimation_of_a_value): Work on contexts rather than BINFOs.
6831         (estimate_local_effects): Likewise.
6832         (add_all_node_vals_to_toposort): Also add contexts to teir topological
6833         sort.
6834         (ipcp_propagate_stage): Also propagate effects of contexts.
6835         (ipcp_discover_new_direct_edges): Receive and pass known_contexts to
6836         ipa_get_indirect_edge_target_1.
6837         (cgraph_edge_brings_value_p): New overloaded function for contexts.
6838         (create_specialized_node): Work on contexts rather than BINFOs.
6839         (find_more_contexts_for_caller_subset): New function.
6840         (known_contexts_useful_p): New function.
6841         (copy_useful_known_contexts): Likewise.
6842         (modify_known_vectors_with_val): Likewise.
6843         (ipcp_val_in_agg_replacements_p): Renamed to
6844         ipcp_val_agg_replacement_ok_p, return true for all offset indicating
6845         non-aggregate.
6846         (ipcp_val_agg_replacement_ok_p): New overloaded function for contexts.
6847         (decide_about_value): Work on contexts rather than BINFOs.
6848         (decide_whether_version_node): Likewise.
6849         (ipcp_driver): Initialize the new alloc pool.
6850         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Prettify
6851         printing of edge contexts.
6852         (ipa_set_ancestor_jf): Replace assert with conditional setting of
6853         type_preserved to false.
6854         (update_jump_functions_after_inlining): Use access function instead of
6855         reading agg_preserved directly.  Store combined context in the ancestor
6856         case.
6857         (try_make_edge_direct_virtual_call): Work on contexts rather than
6858         BINFOs.
6859         (update_indirect_edges_after_inlining): Get context from
6860         ipa_context_from_jfunc.
6861         (ipa_free_node_params_substructures): Free also known_contexts.
6862         (ipa_free_all_structures_after_ipa_cp): Free the new alloc pool.
6863         (ipa_free_all_structures_after_iinln): Likewise.
6864         * ipa-inline-analysis.c (evaluate_properties_for_edge): Work on
6865         contexts rather than BINFOs.
6866         (estimate_edge_devirt_benefit): Likewise.
6867         (estimate_edge_size_and_time): Likewise.
6868         (estimate_calls_size_and_time): Likewise.
6869         (estimate_node_size_and_time): Likewise.
6870         (estimate_ipcp_clone_size_and_time): Likewise.
6871         (do_estimate_edge_time): Likewise.
6872         (do_estimate_edge_size): Likewise.
6873         (do_estimate_edge_hints): Likewise.
6874         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::dump): New
6875         parameter newline, ouput newline only when it is set.
6876         (ipa_polymorphic_call_context::equal_to): New method.
6877
6878 2014-11-14  Martin Jambor  <mjambor@suse.cz>
6879
6880         * ipa-cp.c (ipcp_value_source): Converted to a template class.  All
6881         users converted to the same specialization as the using class/function
6882         or specialization on tree.
6883         (ipcp_value): Likewise.
6884         (ipcp_lattice): Likewise.
6885         (ipcp_agg_lattice): Now derived from tree specialization of
6886         ipcp_lattice.
6887         (values_topo): Moved to new class value_topo_info.
6888         (ipa_lat_is_single_const): Turned into ipcp_lattice::is_single_const.
6889         Updated all callers.
6890         (print_lattice): Turned into ipcp_lattice::print.  Updated all
6891         callers.
6892         (value_topo_info): New class template.
6893         (ipa_topo_info): New field constants.  New constructor.
6894         (build_toporder_info): Do not clear stack_top, only checkign assert
6895         it.
6896         (set_lattice_to_bottom): Turned into ipcp_lattice::set_to_bottom.
6897         Updated all callers.
6898         (set_lattice_contains_variable): Turned into
6899         ipcp_lattice::set_contains_variable.  Updated all callers.
6900         (add_value_source): Turned into ipcp_value::add_source.  Updated all
6901         callers.
6902         (allocate_and_init_ipcp_value): New function.
6903         (add_value_to_lattice): Turned into ipcp_lattice::add_value.  Last
6904         parameter got default a value.  Updated all callers.
6905         (add_scalar_value_to_lattice): Removed, users converted to using
6906         ipcp_lattice::add_value with default value of the last parameter.
6907         (add_val_to_toposort): Turned to value_topo_info::add_val.  Updated
6908         all callers.
6909         (propagate_effects): Made method of value_topo_info.
6910         (cgraph_edge_brings_value_p): Now a template function.
6911         (get_info_about_necessary_edges): Likewise.
6912         (gather_edges_for_value): Likewise.
6913         (perhaps_add_new_callers): Likewise.
6914         (decide_about_value): Likewise.
6915         * ipa-prop.h (ipcp_lattice): Remove fowrward declaration.
6916
6917 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
6918
6919         * doc/install.texi (--with-diagnostics-color=): Document.
6920
6921         * tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate
6922         IFN_GOMP_SIMD_LANE without lhs as useless.
6923
6924         * ipa-pure-const.c (struct funct_state_d): Add can_free field.
6925         (varying_state): Add true for can_free.
6926         (check_call): For builtin or internal !nonfreeing_call_p set
6927         local->can_free.
6928         (check_stmt): For asm volatile and asm with "memory" set
6929         local->can_free.
6930         (analyze_function): Clear local->can_free initially, continue
6931         calling check_stmt until all flags are computed, dump can_free
6932         flag.
6933         (pure_const_write_summary): Write can_free flag.
6934         (pure_const_read_summary): Read it back.
6935         (propagate_pure_const): Propagate also can_free flag, set
6936         w->nonfreeing_fn if it is false after propagation.
6937         * cgraph.h (cgraph_node): Add nonfreeing_fn member.
6938         * gimple.c: Include ipa-ref.h, lto-streamer.h and cgraph.h.
6939         (nonfreeing_call_p): Return cgraph nonfreeing_fn flag if set.
6940         Also return true for IFN_ABNORMAL_DISPATCHER.
6941         * cgraph.c (cgraph_node::dump): Dump nonfreeing_fn flag.
6942         * lto-cgraph.c (lto_output_node): Write nonfreeing_fn flag.
6943         (input_overwrite_node): Read it back.
6944
6945 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
6946             Marek Polacek  <polacek@redhat.com>
6947
6948         * sanopt.c: Include tree-ssa-operands.h.
6949         (struct sanopt_info): Add has_freeing_call_p,
6950         has_freeing_call_computed_p, imm_dom_path_with_freeing_call_p,
6951         imm_dom_path_with_freeing_call_computed_p, freeing_call_events,
6952         being_visited_p fields.
6953         (struct sanopt_ctx): Add asan_check_map field.
6954         (imm_dom_path_with_freeing_call, maybe_optimize_ubsan_null_ifn,
6955         maybe_optimize_asan_check_ifn): New functions.
6956         (sanopt_optimize_walker): Use them, optimize even ASAN_CHECK
6957         internal calls.
6958         (pass_sanopt::execute): Call sanopt_optimize even for
6959         -fsanitize=address.
6960         * gimple.c (nonfreeing_call_p): Return true for non-ECF_LEAF
6961         internal calls.
6962
6963 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
6964
6965         * tree-vect-loop.c (vect_create_epilog_for_reduction): Move code for
6966         'if (extract_scalar_result)' to the only place that it is true.
6967
6968 2014-11-14  H.J. Lu  <hongjiu.lu@intel.com>
6969
6970         * config.gcc (default_gnu_indirect_function): Set to yes
6971         for i[34567]86-*-linux* and x86_64-*-linux* if not targeting
6972         Android nor uclibc.
6973
6974 2014-11-14  Felix Yang  <felix.yang@huawei.com>
6975             Jiji Jiang  <jiangjiji@huawei.com>
6976
6977         * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
6978         VALL mode iterator instead of VALLDI.
6979
6980 2014-11-14  Jan Hubicka  <hubicka@ucw.cz>
6981
6982         * optc-save-gen.awk: Output cl_target_option_eq,
6983         cl_target_option_hash, cl_target_option_stream_out,
6984         cl_target_option_stream_in functions.
6985         * opth-gen.awk: Output prototypes for
6986         cl_target_option_eq and cl_target_option_hash.
6987         * lto-streamer.h (cl_target_option_stream_out,
6988         cl_target_option_stream_in): Declare.
6989         * tree.c (cl_option_hash_hash): Use cl_target_option_hash.
6990         (cl_option_hash_eq): Use cl_target_option_eq.
6991         * tree-streamer-in.c (unpack_value_fields): Stream in
6992         TREE_TARGET_OPTION.
6993         * lto-streamer-out.c (DFS::DFS_write_tree_body): Follow
6994         DECL_FUNCTION_SPECIFIC_TARGET.
6995         (hash_tree): Hash TREE_TARGET_OPTION; visit
6996         DECL_FUNCTION_SPECIFIC_TARGET.
6997         * tree-streamer-out.c (streamer_pack_tree_bitfields): Skip
6998         TS_TARGET_OPTION.
6999         (streamer_write_tree_body): Output TS_TARGET_OPTION.
7000
7001 2014-11-14  Richard Biener  <rguenther@suse.de>
7002
7003         * gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd
7004         valueization hook defaulted to no_follow_ssa_edges.
7005         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Pass
7006         2nd valueization hook to gimple_simplify.
7007         * tree-ssa-ccp.c (valueize_op_1): New function to be
7008         used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
7009         (ccp_fold): Adjust.
7010         * tree-vrp.c (vrp_valueize_1): New function to be
7011         used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
7012         (vrp_visit_assignment_or_call): Adjust.
7013
7014 2014-11-14  Marek Polacek  <polacek@redhat.com>
7015
7016         * fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if
7017         that overflows when SANITIZE_SI_OVERFLOW is on.  Guard -(-A)
7018         folding with TYPE_OVERFLOW_SANITIZED.
7019
7020 2014-11-14  Marek Polacek  <polacek@redhat.com>
7021
7022         PR sanitizer/63839
7023         * asan.c (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST,
7024         ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.
7025         * builtin-attrs.def (ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST):
7026         Define.
7027         * builtins.c (fold_builtin_0): Don't include ubsan.h.  Don't
7028         instrument BUILT_IN_UNREACHABLE here.
7029         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Make
7030         const.
7031         * sanopt.c (pass_sanopt::execute): Instrument BUILT_IN_UNREACHABLE.
7032         * tree-ssa-ccp.c (optimize_unreachable): Bail out if
7033         SANITIZE_UNREACHABLE.
7034         * ubsan.c (ubsan_instrument_unreachable): Rewrite for GIMPLE.
7035         * ubsan.h (ubsan_instrument_unreachable): Adjust declaration.
7036
7037 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
7038
7039         * config/rs6000/vector.md (vec_shl_<mode>): Remove.
7040         (vec_shr_<mode>): Reverse shift if BYTES_BIG_ENDIAN.
7041
7042 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
7043
7044         * optabs.c (shift_amt_for_vec_perm_mask): Remove code conditional on
7045         BYTES_BIG_ENDIAN.
7046         * tree-vect-loop.c (calc_vec_perm_mask_for_shift,
7047         vect_create_epilog_for_reduction): Likewise.
7048         * doc/md.texi (vec_shr_m): Clarify direction of shifting.
7049
7050 2014-11-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7051
7052         PR target/63724
7053         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out
7054         numerical immediate handling to...
7055         (aarch64_internal_mov_immediate): ...this. New.
7056         (aarch64_rtx_costs): Use aarch64_internal_mov_immediate.
7057         (aarch64_mov_operand_p): Relax predicate.
7058         * config/aarch64/aarch64.md (mov<mode>:GPI): Do not expand CONST_INTs.
7059         (*movsi_aarch64): Turn into define_insn_and_split and new alternative
7060         for 'n'.
7061         (*movdi_aarch64): Likewise.
7062
7063 2014-11-14  Richard Biener  <rguenther@suse.de>
7064
7065         * match.pd: Implement more binary patterns exercised by
7066         fold_stmt.
7067         * fold-const.c (sing_bit_p): Export.
7068         (exact_inverse): Likewise.
7069         (fold_binary_loc): Remove patterns here.
7070         (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
7071         * fold-const.h (sing_bit_p): Declare.
7072         (exact_inverse): Likewise.
7073
7074 2014-11-14  Marek Polacek  <polacek@redhat.com>
7075
7076         * tree.c (build_common_builtin_nodes): Remove doubled ECF_LEAF.
7077
7078 2014-11-14  Richard Biener  <rguenther@suse.de>
7079
7080         * genmatch.c (add_operator): Allow CONSTRUCTOR.
7081         (dt_node::gen_kids): Handle CONSTRUCTOR not as GENERIC.
7082         (parser::parse_op): Allow to iterate over predicates.
7083
7084 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
7085
7086         * configure.ac (--with-diagnostics-color): New configure
7087         option, default to --with-diagnostics-color=auto.
7088         * toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT
7089         to determine -fdiagnostics-color= option default.
7090         * doc/invoke.texi (-fdiagnostics-color=): Document new
7091         default.
7092         * configure: Regenerated.
7093         * config.in: Regenerated.
7094
7095 2014-11-13  Teresa Johnson  <tejohnson@google.com>
7096
7097         PR tree-optimization/63841
7098         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
7099
7100 2014-11-14  Bin Cheng  <bin.cheng@arm.com>
7101
7102         * timevar.def (TV_SCHED_FUSION): New time var.
7103         * passes.def (pass_sched_fusion): New pass.
7104         * config/arm/arm.c (TARGET_SCHED_FUSION_PRIORITY): New.
7105         (extract_base_offset_in_addr, fusion_load_store): New.
7106         (arm_sched_fusion_priority): New.
7107         (arm_option_override): Disable scheduling fusion by default
7108         on non-armv7 processors or ldrd/strd isn't preferred.
7109         * sched-int.h (struct _haifa_insn_data): New field.
7110         (INSN_FUSION_PRIORITY, FUSION_MAX_PRIORITY, sched_fusion): New.
7111         * sched-rgn.c (rest_of_handle_sched_fusion): New.
7112         (pass_data_sched_fusion, pass_sched_fusion): New.
7113         (make_pass_sched_fusion): New.
7114         * haifa-sched.c (sched_fusion): New.
7115         (insn_cost): Handle sched_fusion.
7116         (priority): Handle sched_fusion by calling target hook.
7117         (enum rfs_decision): New enum value.
7118         (rfs_str): New element for RFS_FUSION.
7119         (rank_for_schedule): Support sched_fusion.
7120         (schedule_insn, max_issue, prune_ready_list): Handle sched_fusion.
7121         (schedule_block, fix_tick_ready): Handle sched_fusion.
7122         * common.opt (flag_schedule_fusion): New.
7123         * tree-pass.h (make_pass_sched_fusion): New.
7124         * target.def (fusion_priority): New.
7125         * doc/tm.texi.in (TARGET_SCHED_FUSION_PRIORITY): New.
7126         * doc/tm.texi: Regenerated.
7127         * doc/invoke.texi (-fschedule-fusion): New.
7128
7129 2014-11-13  Rong Xu  <xur@google.com>
7130
7131         PR debug/63581
7132         * cfgrtl.c (emit_barrier_after_bb): Append the barrier to the
7133         footer, instead of unconditionally overwritten.
7134
7135 2014-11-14  Martin Jambor  <mjambor@suse.cz>
7136
7137         * cgraph.h (clear_outer_type): Make public.  Fix comment.
7138         * ipa-devirt.c (possible_polymorphic_call_targets): Use
7139         clear_outer_type when resetting the context.
7140
7141 2014-11-13  Dominique Dhumieres  <dominiq@lps.ens.fr>
7142
7143         PR bootstrap/63853
7144         * gcc.c (handle_foffload_option): Replace strchrnul with strchr.
7145         * lto-wrapper.c (parse_env_var, append_offload_options): Likewise.
7146
7147 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
7148
7149         * fold-const.c (const_binop): Remove code handling VEC_RSHIFT_EXPR.
7150         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
7151         * tree-inline.c (estimate_operator_cost): Likewise.
7152         * tree-pretty-print.c (dump_generic_node, op_code_prio, op_symbol_code):
7153         Likewise.
7154
7155         * tree-vect-generic.c (expand_vector_operations_1): Remove assertion
7156         against VEC_RSHIFT_EXPR.
7157
7158         * optabs.h (expand_vec_shift_expr): Remove.
7159         * optabs.c (optab_for_tree_code): Remove case VEC_RSHIFT_EXPR.
7160         (expand_vec_shift_expr): Remove.
7161         * tree.def (VEC_RSHIFT_EXPR): Remove
7162
7163 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
7164
7165         * optabs.c (can_vec_perm_p): Update comment, does not consider vec_shr.
7166         (shift_amt_for_vec_perm_mask): New.
7167         (expand_vec_perm_1): Use vec_shr_optab if second vector is const0_rtx
7168         and mask appropriate.
7169
7170         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): New.
7171         (have_whole_vector_shift): New.
7172         (vect_model_reduction_cost): Call have_whole_vector_shift instead of
7173         looking for vec_shr_optab.
7174         (vect_create_epilog_for_reduction): Likewise; also rename local variable
7175         have_whole_vector_shift to reduce_with_shift; output VEC_PERM_EXPRs
7176         instead of VEC_RSHIFT_EXPRs.
7177
7178         * tree-vect-stmts.c (vect_gen_perm_mask_checked): Extend comment.
7179
7180 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
7181
7182         * tree-vectorizer.h (vect_gen_perm_mask): Remove.
7183         (vect_gen_perm_mask_checked, vect_gen_perm_mask_any): New.
7184
7185         * tree_vec_data_refs.c (vect_permute_load_chain,
7186         vec_permute_store_chain, vec_shift_permute_load_chain): Replace
7187         vect_gen_perm_mask & assert with vect_gen_perm_mask_checked.
7188
7189         * tree-vect-stmts.c (vectorizable_mask_load_store, vectorizable_load):
7190         Likewise.
7191         (vect_gen_perm_mask_checked): New.
7192         (vect_gen_perm_mask): Remove can_vec_perm_p check, rename to...
7193         (vect_gen_perm_mask_any): ...this.
7194         (perm_mask_for_reverse): Call can_vec_perm_p and
7195         vect_gen_perm_mask_checked.
7196
7197 2014-11-13  Felix Yang  <felix.yang@huawei.com>
7198
7199         * ipa-utils.h: Fix typo in comments.
7200         * ipa-profile.c: Likewise.
7201         * tree-ssa-loop-ivcanon.c: Fix typo in comments and debugging dumps.
7202
7203 2014-11-13  Teresa Johnson  <tejohnson@google.com>
7204
7205         PR tree-optimization/63841
7206         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
7207
7208 2014-11-13  Teresa Johnson  <tejohnson@google.com>
7209
7210         PR tree-optimization/63841
7211         * tree.c (initializer_zerop): A clobber does not zero initialize.
7212
7213 2014-11-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7214
7215         * optabs.c (prepare_operand): Gracefully fail if the mode of X
7216         does not match the operand mode expected by the insn pattern.
7217
7218 2014-11-13  Richard Biener  <rguenther@suse.de>
7219
7220         * match.pd: Add tcc_comparison, inverted_tcc_comparison
7221         and inverted_tcc_comparison_with_nans operator lists.
7222         Use tcc_comparison in the truth_valued_p predicate definition.
7223         Restrict logical_inverted_value with bit_xor to integral types.
7224         Build a boolean true for simplifying x |^ !x because of
7225         vector types.  Implement patterns from forward_propagate_comparison
7226         * tree-ssa-forwprop.c (forward_propagate_comparison): Remove.
7227         (get_prop_dest_stmt): Likewise.
7228         (pass_forwprop::execute): Do not call it.
7229         * fold-const.c (fold_unary_loc): Remove the pattern here.
7230
7231 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7232             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7233
7234         * config.gcc (*-intelmic-* | *-intelmicemul-*): Add i386/t-intelmic to
7235         tmake_file.
7236         (i[34567]86-*-* | x86_64-*-*): Build mkoffload$(exeext) with the
7237         accelerator compiler.
7238         * config/i386/intelmic-mkoffload.c: New file.
7239         * config/i386/t-intelmic: Ditto.
7240
7241 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
7242             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7243             Ilya Verbin  <ilya.verbin@intel.com>
7244
7245         * common.opt (foffload, foffload-abi): New options.
7246         * config/i386/i386.c (ix86_offload_options): New static function.
7247         (TARGET_OFFLOAD_OPTIONS): Define.
7248         * coretypes.h (enum offload_abi): New enum.
7249         * doc/tm.texi: Regenerate.
7250         * doc/tm.texi.in (TARGET_OFFLOAD_OPTIONS): Document.
7251         * gcc.c (offload_targets): New static variable.
7252         (handle_foffload_option): New static function.
7253         (driver_handle_option): Handle OPT_foffload_.
7254         (driver::maybe_putenv_OFFLOAD_TARGETS): Set OFFLOAD_TARGET_NAMES
7255         according to offload_targets.
7256         * hooks.c (hook_charptr_void_null): New hook.
7257         * hooks.h (hook_charptr_void_null): Declare.
7258         * lto-opts.c: Include lto-section-names.h.
7259         (lto_write_options): Append options from target offload_options hook and
7260         store them to offload_lto section.  Do not store target-specific,
7261         driver and diagnostic options in offload_lto section.
7262         * lto-wrapper.c (merge_and_complain): Handle OPT_foffload_ and
7263         OPT_foffload_abi_.
7264         (append_compiler_options, append_linker_options)
7265         (append_offload_options): New static functions.
7266         (compile_offload_image): Add new arguments with options.
7267         Call append_compiler_options and append_offload_options.
7268         (compile_images_for_offload_targets): Add new arguments with options.
7269         (find_and_merge_options): New static function.
7270         (run_gcc): Outline options handling into the new functions:
7271         find_and_merge_options, append_compiler_options, append_linker_options.
7272         * opts.c (common_handle_option): Don't handle OPT_foffload_.
7273         Forbid OPT_foffload_abi_ for non-offload compiler.
7274         * target.def (offload_options): New target hook.
7275
7276 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7277             Bernd Schmidt  <bernds@codesourcery.com>
7278             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7279             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7280
7281         * gcc.c (spec_host_machine, accel_dir_suffix): New variables.
7282         (process_command): Tweak path construction for the possibility
7283         of being configured as an offload compiler.
7284         (driver::maybe_putenv_OFFLOAD_TARGETS): New function.
7285         (driver::main): Call maybe_putenv_OFFLOAD_TARGETS.
7286         (driver::set_up_specs): Tweak path construction for the possibility of
7287         being configured as an offload compiler.
7288         * lto-wrapper.c (OFFLOAD_TARGET_NAMES_ENV): Define.
7289         (offload_names, offloadbegin, offloadend): New static variables.
7290         (free_array_of_ptrs, parse_env_var, access_check, compile_offload_image)
7291         (compile_images_for_offload_targets, copy_file, find_offloadbeginend):
7292         New static functions.
7293         (run_gcc): Determine whether offload sections are present.  If so, run
7294         compile_images_for_offload_targets and return the names of new generated
7295         objects to linker.  If there are offload sections, but no LTO sections,
7296         then return the copies of input objects without link-time recompilation.
7297
7298 2014-11-13  Richard Biener  <rguenther@suse.de>
7299
7300         * genmatch.c (dt_node::gen_kids): Fix placement of break statement.
7301
7302 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7303             Bernd Schmidt  <bernds@codesourcery.com>
7304             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7305             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7306
7307         * Makefile.in (GTFILES): Add omp-low.h to list of GC files.
7308         * cgraphunit.c: Include omp-low.h.
7309         * doc/tm.texi: Regenerate.
7310         * doc/tm.texi.in (TARGET_RECORD_OFFLOAD_SYMBOL): Document.
7311         * gengtype.c (open_base_files): Add omp-low.h to ifiles.
7312         * lto-cgraph.c (output_offload_tables): New function.
7313         (input_offload_tables): Likewise.
7314         * lto-section-in.c (lto_section_name): Add "offload_table".
7315         * lto-section-names.h (OFFLOAD_VAR_TABLE_SECTION_NAME): Define.
7316         (OFFLOAD_FUNC_TABLE_SECTION_NAME): Likewise.
7317         * lto-streamer-out.c (lto_output): Call output_offload_tables.
7318         * lto-streamer.h (lto_section_type): Add LTO_section_offload_table.
7319         (output_offload_tables, input_offload_tables): Declare.
7320         * omp-low.c: Include common/common-target.h and lto-section-names.h.
7321         (offload_funcs, offload_vars): New global <tree, va_gc> vectors.
7322         (expand_omp_target): Add child_fn into offload_funcs vector.
7323         (add_decls_addresses_to_decl_constructor): New function.
7324         (omp_finish_file): Likewise.
7325         * omp-low.h (omp_finish_file, offload_funcs, offload_vars): Declare.
7326         * target.def (record_offload_symbol): New DEFHOOK.
7327         * toplev.c: Include omp-low.h.
7328         (compile_file): Call omp_finish_file.
7329         * varpool.c: Include omp-low.h.
7330         (varpool_node::get_create): Add decl into offload_vars vector.
7331
7332 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7333             Ilya Tocar  <ilya.tocar@intel.com>
7334             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7335             Bernd Schmidt  <bernds@codesourcery.com>
7336
7337         * cgraph.c: Include context.h.
7338         (cgraph_node::create): Set node->offloadable and g->have_offload if
7339         decl have "omp declare target" attribute.
7340         * cgraph.h (symtab_node): Add need_lto_streaming and offloadable flags.
7341         * cgraphunit.c: Include lto-section-names.h.
7342         (ipa_passes): Call ipa_write_summaries if there is something to write to
7343         OFFLOAD_SECTION_NAME_PREFIX sections.
7344         (symbol_table::compile): Set flag_generate_lto if there is something to
7345         offload.
7346         Replace flag_lto with flag_generate_lto before lto_streamer_hooks_init.
7347         * context.c (gcc::context::context): Initialize have_offload with false.
7348         * context.h (class context): Add have_offload flag.
7349         * ipa-inline-analysis.c (inline_generate_summary): Do not exit under
7350         flag_generate_lto.
7351         (inline_free_summary): Always remove hooks.
7352         * lto-cgraph.c (referenced_from_other_partition_p): Ignore references
7353         from non-offloadable nodes while streaming a node into offload section.
7354         (reachable_from_other_partition_p): Likewise.
7355         (select_what_to_stream): New function.
7356         (compute_ltrans_boundary): Do not call
7357         lto_set_symtab_encoder_in_partition if the node should not be streamed.
7358         * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX): Define.
7359         (section_name_prefix): Declare.
7360         * lto-streamer.c (section_name_prefix): New variable.
7361         (lto_get_section_name): Use section_name_prefix instead of
7362         LTO_SECTION_NAME_PREFIX.
7363         * lto-streamer.h (select_what_to_stream): Declare.
7364         * omp-low.c: Include context.h.
7365         (is_targetreg_ctx): New function.
7366         (scan_sharing_clauses): Use offloadable flag, instead of an attribute.
7367         (create_omp_child_function, check_omp_nesting_restrictions): Use new
7368         is_targetreg_ctx function.  Replace usage of "omp declare target"
7369         attribute with a cgraph_node flag offloadable.
7370         (expand_omp_target): Set mark_force_output for offloadable functions.
7371         (lower_omp_critical): Set offloadable flag for omp critical symbol.
7372         * passes.c (ipa_write_summaries): New argument offload_lto_mode.  Call
7373         select_what_to_stream.  Do not call lto_set_symtab_encoder_in_partition
7374         if the node should not be streamed out.
7375         * tree-pass.h (ipa_write_summaries): New bool argument.
7376         * varpool.c: Include context.h.
7377         (varpool_node::get_create): Set node->offloadable and g->have_offload if
7378         decl have "omp declare target" attribute.
7379
7380 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
7381             Thomas Schwinge  <thomas@codesourcery.com>
7382             Ilya Verbin  <ilya.verbin@intel.com>
7383             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7384
7385         * Makefile.in (real_target_noncanonical, accel_dir_suffix)
7386         (enable_as_accelerator): New variables substituted by configure.
7387         (libsubdir, libexecsubdir, unlibsubdir): Tweak for the possibility of
7388         being configured as an offload compiler.
7389         (DRIVER_DEFINES): Pass new defines DEFAULT_REAL_TARGET_MACHINE and
7390         ACCEL_DIR_SUFFIX.
7391         (install-cpp, install-common, install_driver, install-gcc-ar): Do not
7392         install for the offload compiler.
7393         * config.in: Regenerate.
7394         * configure: Regenerate.
7395         * configure.ac (real_target_noncanonical, accel_dir_suffix)
7396         (enable_as_accelerator): Compute new variables.
7397         (ACCEL_COMPILER): Define if the compiler is built as the accel compiler.
7398         (OFFLOAD_TARGETS): List of target names suitable for offloading.
7399         (ENABLE_OFFLOADING): Define if list of offload targets is not empty.
7400         * doc/install.texi (Options specification): Document
7401         --enable-as-accelerator-for and --enable-offload-targets.
7402
7403 2014-11-13  H.J. Lu  <hongjiu.lu@intel.com>
7404
7405         PR tree-optimization/63828
7406         * ipa-polymorphic-call.c (possible_placement_new): Check
7407         POINTER_SIZE, instead of BITS_PER_WORD, for pointer size.
7408
7409 2014-11-13  Eric Botcazou  <ebotcazou@adacore.com>
7410
7411         * doc/tm.texi.in (SELECT_CC_MODE): Update example.
7412         (REVERSIBLE_CC_MODE): Fix example.
7413         (REVERSE_CONDITION): Fix typo.
7414         * doc/tm.texi: Regenerate.
7415
7416 2014-11-13  Tom de Vries  <tom@codesourcery.com>
7417
7418         * omp-low.c (pass_data_expand_omp): Set properties_provided to
7419         PROP_gimple_eomp.
7420         (pass_expand_omp::gate): Remove function.  Move gate expression to ...
7421         (pass_expand_omp::execute): ... here, as new variable gate.  Add early
7422         exit if gate is false.
7423         (pass_data pass_data_expand_omp_ssa): New pass_data.
7424         (class pass_expand_omp_ssa): New pass.
7425         (make_pass_expand_omp_ssa): New function.
7426         * passes.def (pass_parallelize_loops): Use PUSH_INSERT_PASSES_WITHIN
7427         instead of NEXT_PASS.
7428         (pass_expand_omp_ssa): Add after pass_parallelize_loops.
7429         * tree-parloops.c (gen_parallel_loop): Remove call to omp_expand_local.
7430         (pass_parallelize_loops::execute): Don't do cleanups TODO_cleanup_cfg
7431         and TODO_rebuild_alias yet.  Add TODO_update_ssa.  Set
7432         cfun->omp_expand_needed.
7433         * tree-pass.h: Add define PROP_gimple_eomp.
7434         (make_pass_expand_omp_ssa): Declare.
7435
7436 2014-11-13  Marek Polacek  <polacek@redhat.com>
7437
7438         * tree.h (TYPE_OVERFLOW_SANITIZED): Define.
7439         * fold-const.c (fold_binary_loc): Use it.
7440         * match.pd: Likewise.
7441
7442 2014-11-14  Kirill Yukhin  <kirill.yukhin@intel.com>
7443
7444         * lra-lives.c (struct bb_data): Rename to ...
7445         (struct bb_data_pseudos): ... this.
7446         (initiate_live_solver): Update struct name.
7447
7448 2014-11-13  Richard Biener  <rguenther@suse.de>
7449
7450         * match.pd: Implement conditional expression patterns.
7451         * tree-ssa-forwprop.c (forward_propagate_into_cond): Remove
7452         them here.
7453         (combine_cond_exprs): Remove.
7454         (pass_forwprop::execute): Do not call combine_cond_exprs.
7455         * fold-const.c (fold_ternary_loc): Remove patterns here.
7456         (pedantic_omit_one_operand_loc): Remove.
7457
7458 2014-12-13  Richard Biener  <rguenther@suse.de>
7459
7460         PR middle-end/61559
7461         * match.pd: Implement bswap patterns for transforms checked by
7462         gcc.dg/builtin-bswap-8.c.
7463
7464 2014-11-13  Vladimir Makarov  <vmakarov@redhat.com>
7465
7466         * lra.c (lra): Switch off rematerialization pass.
7467
7468 2014-11-12  Vladimir Makarov  <vmakarov@redhat.com>
7469
7470         * common.opt (flra-remat): New.
7471         * opts.c (default_options_table): Add entry for flra_remat.
7472         * timevar_def (TV_LRA_REMAT): New.
7473         * doc/invoke.texi (-flra-remat): Add description of the new
7474         option.
7475         * doc/passes.texi (-flra-remat): Remove lra-equivs.c and
7476         lra-saves.c.  Add lra-remat.c.
7477         * Makefile.in (OBJS): Add lra-remat.o.
7478         * lra-remat.c: New file.
7479         * lra.c: Add info about the rematerialization pass in the top
7480         comment.
7481         (collect_non_operand_hard_regs, add_regs_to_insn_regno_info):
7482         Process unallocatable regs too.
7483         (lra_constraint_new_insn_uid_start): Remove.
7484         (lra): Add code for calling rematerialization sub-pass.
7485         * lra-int.h (lra_constraint_new_insn_uid_start): Remove.
7486         (lra_constrain_insn, lra_remat): New prototypes.
7487         (lra_eliminate_regs_1): Add parameter.
7488         * lra-lives.c (make_hard_regno_born, make_hard_regno_dead):
7489         Process unallocatable hard regs too.
7490         (process_bb_lives): Ditto.
7491         * lra-spills.c (remove_pseudos): Add argument to
7492         lra_eliminate_regs_1 call.
7493         * lra-eliminations.c (lra_eliminate_regs_1): Add parameter.  Use it
7494         for sp offset calculation.
7495         (lra_eliminate_regs): Add argument for lra_eliminate_regs_1 call.
7496         (eliminate_regs_in_insn): Add parameter.  Use it for sp offset
7497         calculation.
7498         (process_insn_for_elimination): Add argument for
7499         eliminate_regs_in_insn call.
7500         * lra-constraints.c (get_equiv_with_elimination):  Add argument
7501         for lra_eliminate_regs_1 call.
7502         (process_addr_reg): Add parameter.  Use it.
7503         (process_address_1): Ditto.  Add argument for process_addr_reg
7504         call.
7505         (process_address): Ditto.
7506         (curr_insn_transform): Add parameter.  Use it.  Add argument for
7507         process_address calls.
7508         (lra_constrain_insn): New function.
7509         (lra_constraints): Add argument for curr_insn_transform call.
7510
7511 2014-11-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7512
7513         * opts-global.c (postpone_unknown_option_warning): Fix spelling.
7514         (print_ignored_options): Fix quoting.
7515         * opts.c (common_handle_option): Likewise.
7516         (set_debug_level): Likewise.
7517         * toplev.c (process_options): Likewise.
7518
7519 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
7520
7521         PR ipa/63838
7522         * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
7523         chain instead of node->indirect_calls.  Put !can_throw into
7524         conditions of all the loops.
7525
7526 2014-11-12  H.J. Lu  <hongjiu.lu@intel.com>
7527
7528         * config/i386/i386.c (x86_output_mi_thunk): Use gen_rtx_REG to
7529         set pic_offset_table_rtx.
7530
7531 2014-11-12  Matthew Fortune  <matthew.fortune@imgtec.com>
7532
7533         * common/config/mips/mips-common.c (mips_handle_option): Ensure
7534         that -mfp32, -mfp64 disable -mfpxx and -mfpxx disables -mfp64.
7535         * config.gcc (--with-fp-32): New option.
7536         (--with-odd-spreg-32): Likewise.
7537         * config.in (HAVE_AS_DOT_MODULE): New config define.
7538         * config/mips/mips-protos.h
7539         (mips_secondary_memory_needed): New prototype.
7540         (mips_hard_regno_caller_save_mode): Likewise.
7541         * config/mips/mips.c (mips_get_reg_raw_mode): New static prototype.
7542         (mips_get_arg_info): Assert that V2SFmode is only handled specially
7543         with TARGET_PAIRED_SINGLE_FLOAT.
7544         (mips_return_mode_in_fpr_p): Likewise.
7545         (mips16_call_stub_mode_suffix): Likewise.
7546         (mips_get_reg_raw_mode): New static function.
7547         (mips_return_fpr_pair): O32 return values span two registers.
7548         (mips16_build_call_stub): Likewise.
7549         (mips_function_value_regno_p): Support both FP return registers.
7550         (mips_output_64bit_xfer): Use mthc1 whenever TARGET_HAS_MXHC1.  Add
7551         specific cases for TARGET_FPXX to move via memory.
7552         (mips_dwarf_register_span): For TARGET_FPXX pretend that modes larger
7553         than UNITS_PER_FPREG 'span' one register.
7554         (mips_dwarf_frame_reg_mode): New static function.
7555         (mips_file_start): Switch to using .module instead of .gnu_attribute.
7556         No longer support FP ABI 4 (-mips32r2 -mfp64), replace with FP ABI 6.
7557         Add FP ABI 5 (-mfpxx) and FP ABI 7 (-mfp64 -mno-odd-spreg).
7558         (mips_save_reg, mips_restore_reg): Always represent DFmode frame
7559         slots with two CFI directives even for O32 FP64.
7560         (mips_for_each_saved_gpr_and_fpr): Account for fixed_regs when
7561         saving/restoring callee-saved registers.
7562         (mips_hard_regno_mode_ok_p): Implement O32 FP64A extension.
7563         (mips_secondary_memory_needed): New function.
7564         (mips_option_override): ABI check for TARGET_FLOATXX.  Disable
7565         odd-numbered single-precision registers when using TARGET_FLOATXX.
7566         Implement -modd-spreg and defaults.
7567         (mips_conditional_register_usage): Redefine O32 FP64 to match O32 FP32
7568         callee-saved behaviour.
7569         (mips_hard_regno_caller_save_mode): Implement.
7570         (TARGET_GET_RAW_RESULT_MODE): Define target hook.
7571         (TARGET_GET_RAW_ARG_MODE): Define target hook.
7572         (TARGET_DWARF_FRAME_REG_MODE): Define target hook.
7573         * config/mips/mips.h (TARGET_FLOAT32): New macro.
7574         (TARGET_O32_FP64A_ABI): Likewise.
7575         (TARGET_CPU_CPP_BUILTINS): TARGET_FPXX is __mips_fpr==0. Add
7576         _MIPS_SPFPSET builtin define.
7577         (MIPS_FPXX_OPTION_SPEC): New macro.
7578         (OPTION_DEFAULT_SPECS): Pass through --with-fp-32=* to -mfp and
7579         --with-odd-spreg-32=* to -m[no-]odd-spreg.
7580         (ISA_HAS_ODD_SPREG): New macro.
7581         (ISA_HAS_MXHC1): True for anything other than -mfp32.
7582         (ASM_SPEC): Pass through mfpxx, mfp64, -mno-odd-spreg and -modd-spreg.
7583         (MIN_FPRS_PER_FMT): Redefine in terms of TARGET_ODD_SPREG.
7584         (HARD_REGNO_CALLER_SAVE_MODE): Define.  Implement O32 FPXX extension
7585         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
7586         (SECONDARY_MEMORY_NEEDED): Likewise.
7587         (FUNCTION_ARG_REGNO_P): Update for O32 FPXX and FP64 extensions.
7588         * config/mips/mips.md (define_attr enabled): Implement O32 FPXX and
7589         FP64A ABI extensions.
7590         (move_doubleword_fpr<mode>): Use ISA_HAS_MXHC1 instead of
7591         TARGET_FLOAT64.
7592         * config/mips/mips.opt (mfpxx): New target option.
7593         (modd-spreg): Likewise.
7594         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Infer FP ABI from arch.
7595         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise and remove
7596         fp64 sysroot.
7597         * config/mips/t-mti-elf: Remove fp64 multilib.
7598         * config/mips/t-mti-linux: Likewise.
7599         * configure.ac: Detect .module support.
7600         * configure: Regenerate.
7601         * doc/invoke.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg option.
7602         * doc/install.texi (--with-fp-32, --with-odd-spreg-32): Document new
7603         options.
7604
7605 2014-11-12  H.J. Lu  <hongjiu.lu@intel.com>
7606
7607         PR target/63815
7608         * config/i386/i386.c (ix86_init_large_pic_reg): New.  Extracted
7609         from ...
7610         (ix86_init_pic_reg): Here.  Use ix86_init_large_pic_reg.
7611         (x86_output_mi_thunk): Set PIC register to %r11.  Call
7612         ix86_init_large_pic_reg to initialize PIC register.
7613
7614 2014-11-12  Kai Tietz  <ktietz@redhat.com>
7615
7616         * sdbout.c (sdbout_symbol): Eliminate register only
7617         if decl isn't a global variable.
7618
7619 2014-11-12  Alan Lawrence  <alan.lawrence@arm.com>
7620
7621         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices.
7622
7623         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add
7624         qualifier_lane_index.
7625         (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): Rename to...
7626         (aarch64_types_quadop_lane_qualifiers, TYPES_QUADOP_LANE): ...these.
7627         (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): New.
7628
7629         (aarch64_types_getlane_qualifiers): Rename to...
7630         (aarch64_types_binop_imm_qualifiers): ...this.
7631         (TYPES_SHIFTIMM): Follow renaming.
7632         (TYPES_GETLANE): Rename to...
7633         (TYPE_GETREG): ...this.
7634
7635         (aarch64_types_setlane_qualifiers): Rename to...
7636         (aarch64_type_ternop_imm_qualifiers): ...this.
7637         (TYPES_SHIFTINSERT, TYPES_SHIFTACC): Follow renaming.
7638         (TYPES_SETLANE): Follow renaming above, and rename self to...
7639         (TYPE_SETREG): ...this.
7640
7641         (enum builtin_simd_arg): Add SIMD_ARG_LANE_INDEX.
7642         (aarch64_simd_expand_args): Add range check and endianness-flip.
7643
7644         (aarch64_simd_expand_builtin): Add mapping for qualifier_lane_index.
7645
7646         * config/aarch64/aarch64-simd.md
7647         (aarch64_sq<r>dmulh_lane<mode>_internal *2): Rename to...
7648         (aarch64_sq<r>dmulh_lane<mode>): ...this, and remove lane bounds check.
7649         (aarch64_sqdmulh_lane<mode> *2, aarch64_sqrdmulh_lane<mode> *2): Delete.
7650
7651         (aarch64_sq<r>dmulh_laneq<mode>_internal): Rename to...
7652         (aarch64_sq<r>dmulh_lane<mode>): ...this.
7653
7654         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal *2): Rename to...
7655         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): ...this.
7656
7657         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal *2): Rename to...
7658         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): ...this.
7659
7660         (aarch64_sqdmull_lane<mode>_internal *2): Rename to...
7661         (aarch64_sqdmull_lane<mode>): ...this.
7662
7663         (aarch64_sqdmull_laneq<mode>_internal *2): Rename to...
7664         (aarch64_sqdmull_laneq<mode>): ...this.
7665
7666         (aarch64_sqdmulh_laneq<mode>, aarch64_sqrdmulh_laneq<mode>,
7667         (aarch64_sqdmlal_lane<mode>, aarch64_sqdmlal_laneq<mode>,
7668         aarch64_sqdmlsl_lane<mode>, aarch64_sqdmlsl_laneq<mode>,
7669         aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Delete.
7670
7671         (aarch64_sqdmlal2_lane<mode>, aarch64_sqdmlal2_laneq<mode>,
7672         aarch64_sqdmlsl2_lane<mode>, aarch64_sqdmlsl2_laneq<mode>,
7673         aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>): Remove
7674         bounds check and lane flip.
7675
7676         * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane,
7677         get_dregoi, get_dregci, getdregxi, get_qregoi,get_qregci, get_qregxi,
7678         set_qregoi, set_qregci, set_qregxi): Change qualifiers to GETREG.
7679
7680         (sqdmlal_lane, sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq,
7681         sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, sqdmlsl2_laneq): Follow
7682         renaming of TERNOP_LANE to QUADOP_LANE.
7683
7684         (sqdmull_lane, sqdmull_laneq, sqdmull2_lane, sqdmull2_laneq,
7685         sqdmulh_lane, sqdmulh_laneq, sqrdmulh_lane, sqrdmulh_laneq): Set
7686         qualifiers to TERNOP_LANE.
7687
7688 2014-11-12  Tobias Burnus  <burnus@net-b.de>
7689
7690         * Makefile.in (CLOOGLIBS, CLOOGINC): Remove.
7691         * configure.ac: Ditto.
7692         * graphite-interchange.c: Remove HAVE_CLOOG block.
7693         * config.in: Regenerate.
7694         * configure: Regenerate.
7695
7696 2014-11-12  Jiong Wang  <jiong.wang@arm.com>
7697
7698         * config/aarch64/aarch64.h (CALL_USED_REGISTERS): Mark LR as
7699         caller-save.
7700         (EPILOGUE_USES): Guard the check by epilogue_completed.
7701         * config/aarch64/aarch64.c (aarch64_layout_frame): Explictly check for
7702         LR.
7703         (aarch64_can_eliminate): Check LR_REGNUM liveness.
7704
7705 2014-11-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7706
7707         * config/arm/arm.c (*<arith_shift_insn>_shiftsi): Fix typo.
7708
7709 2014-11-12  Marek Polacek  <polacek@redhat.com>
7710
7711         * fold-const.c (fold_binary_loc): Don't fold if the result
7712         is undefined.
7713         * match.pd (A + (-B) -> A - B, A - (-B) -> A + B,
7714         -(-A) -> A): Likewise.
7715
7716 2014-11-12  Richard Biener  <rguenther@suse.de>
7717
7718         Merge from match-and-simplify branch
7719         2014-11-04  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7720
7721         * genmatch.c (user_id): Add new member is_oper_list.
7722         (user_id::user_id): Add new default argument.
7723         (parser::parse_operator_list): New function.
7724         (parser::parse_for): Allow operator-list.
7725         (parser::parse_pattern): Call parser::parse_operator_list.
7726         (parser::parse_operation): Reject operator-list.
7727         * match-builtin.pd: Define operator lists POWs, CBRTs and SQRTs.
7728
7729         2014-10-31  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7730
7731         * genmatch.c (parser::parse_c_expr): Mark user-defined ops as used.
7732
7733         2014-10-30  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7734
7735         * genmatch.c (parser::parse_op): Check if predicate is used in
7736         result operand.
7737
7738         2014-10-29  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7739
7740         * genmatch.c (parser::parse_for): Make sure to have a valid
7741         token to report errors at.
7742
7743         2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7744
7745         * genmatch.c (parser): Add new member parsing_match_operand.
7746         (parser::parse_operation): Check for conditional convert in result
7747         operand.
7748         (parser::parse_expr): Check for commutative operator in result operand.
7749         Check for :type in match operand.
7750         (parser::parse_simplify): Set/unset parsing_match_operand.
7751         (parser::parser): Initialize parsing_match_operand.
7752
7753         2014-10-28  Richard Biener  <rguenther@suse.de>
7754
7755         * genmatch.c (parser::parse_for): Properly check for already
7756         defined operators.
7757
7758         2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7759
7760         * genmatch.c (error_cb): Adjust for printing warnings.
7761         (warning_at): New function.
7762         (user_id): Add new member used.
7763         (get_operator): Mark user_id as used.
7764         (parse_for): Warn for unused operators.
7765
7766 2014-11-12  Richard Biener  <rguenther@suse.de>
7767
7768         * match.pd: Implement simple complex operations cancelling.
7769         * fold-const.c (fold_unary_loc): Remove them here.
7770
7771 2014-11-12  Joseph Myers  <joseph@codesourcery.com>
7772
7773         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
7774         Define __NO_MATH_ERRNO__ if -fno-math-errno.
7775         * doc/cpp.texi (__NO_MATH_ERRNO__): Document predefined macro.
7776
7777 2014-11-12  Richard Biener  <rguenther@suse.de>
7778
7779         * genmatch.c (::gen_transform): Add capture_info and
7780         expand_compares arguments.
7781         (struct expr): Add is_generic flag.
7782         (lower_cond): New functions lowering [VEC_]COND_EXPR
7783         conditions to a GENERIC and a GIMPLE variant.
7784         (lower): Call lower_cond.
7785         (cmp_operand): Also compare the is_generic flag.
7786         (capture_info::cinfo): Add cond_expr_cond_p flag.
7787         (capture_info::capture_info): Pass down whether the
7788         expression argument is a COND_EXPR condition.
7789         (capture_info::walk_match): Likewise, mark captures
7790         capturing COND_EXPR conditions with cond_expr_cond_p.
7791         (expr::gen_transform): Pass down whether we need to
7792         expand compares from COND_EXPR conditions.
7793         (capture::gen_transform): Expand compares substituted
7794         from COND_EXPR conditions into non-COND_EXPR conditions.
7795         (dt_operand::gen_gimple_expr): Handle explicitely marked
7796         GENERIC expressions as generic.
7797         (dt_simplify::gen): Pass whether we need to expand
7798         conditions to gen_transform.  Handle capture results
7799         which are from COND_EXPR conditions.
7800         (main): Pass gimple flag down to lower.
7801
7802 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
7803
7804         PR c/59708
7805         * builtin-attrs.def (ATTR_NOTHROW_TYPEGENERIC_LEAF): New attribute.
7806         * builtins.c (fold_builtin_arith_overflow): New function.
7807         (fold_builtin_3): Use it.
7808         * builtins.def (BUILT_IN_ADD_OVERFLOW, BUILT_IN_SUB_OVERFLOW,
7809         BUILT_IN_MUL_OVERFLOW, BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW,
7810         BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW,
7811         BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW,
7812         BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW,
7813         BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADDL_OVERFLOW,
7814         BUILT_IN_UADDLL_OVERFLOW, BUILT_IN_USUB_OVERFLOW,
7815         BUILT_IN_USUBL_OVERFLOW, BUILT_IN_USUBLL_OVERFLOW,
7816         BUILT_IN_UMUL_OVERFLOW, BUILT_IN_UMULL_OVERFLOW,
7817         BUILT_IN_UMULLL_OVERFLOW): New built-in functions.
7818         * builtin-types.def (BT_PTR_UINT, BT_PTR_ULONG, BT_PTR_LONGLONG,
7819         BT_FN_BOOL_INT_INT_INTPTR, BT_FN_BOOL_LONG_LONG_LONGPTR,
7820         BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_FN_BOOL_UINT_UINT_UINTPTR,
7821         BT_FN_BOOL_ULONG_ULONG_ULONGPTR,
7822         BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_FN_BOOL_VAR): New.
7823         * expr.c (write_complex_part): Remove prototype, no longer static.
7824         * expr.h (write_complex_part): New prototype.
7825         * function.c (aggregate_value_p): For internal functions return 0.
7826         * gimple-fold.c (arith_overflowed_p): New functions.
7827         (gimple_fold_call): Fold {ADD,SUB,MUL}_OVERFLOW internal calls.
7828         * gimple-fold.h (arith_overflowed_p): New prototype.
7829         * tree-ssa-dce.c: Include tree-ssa-propagate.h and gimple-fold.h.
7830         (find_non_realpart_uses, maybe_optimize_arith_overflow): New
7831         functions.
7832         (eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW
7833         into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is
7834         never used.
7835         * gimplify.c (gimplify_call_expr): Handle gimplification of
7836         internal calls with lhs.
7837         * internal-fn.c (get_range_pos_neg, get_min_precision,
7838         expand_arith_overflow_result_store): New functions.
7839         (ubsan_expand_si_overflow_addsub_check): Renamed to ...
7840         (expand_addsub_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
7841         UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
7842         Handle ADD_OVERFLOW and SUB_OVERFLOW expansion.
7843         (ubsan_expand_si_overflow_neg_check): Renamed to ...
7844         (expand_neg_overflow): ... this.  Add LOC, LHS, ARG1, IS_UBSAN
7845         arguments, remove STMT argument.  Handle SUB_OVERFLOW with
7846         0 as first argument expansion.
7847         (ubsan_expand_si_overflow_mul_check): Renamed to ...
7848         (expand_mul_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
7849         UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
7850         Handle MUL_OVERFLOW expansion.
7851         (expand_UBSAN_CHECK_ADD): Use expand_addsub_overflow, prepare
7852         arguments for it.
7853         (expand_UBSAN_CHECK_SUB): Use expand_addsub_overflow or
7854         expand_neg_overflow, prepare arguments for it.
7855         (expand_UBSAN_CHECK_MUL): Use expand_mul_overflow, prepare arguments
7856         for it.
7857         (expand_arith_overflow, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW,
7858         expand_MUL_OVERFLOW): New functions.
7859         * internal-fn.def (ADD_OVERFLOW, SUB_OVERFLOW, MUL_OVERFLOW): New
7860         internal functions.
7861         * tree-vrp.c (check_for_binary_op_overflow): New function.
7862         (extract_range_basic): Handle {REAL,IMAG}PART_EXPR if the operand
7863         is SSA_NAME set by {ADD,SUB,MUL}_OVERFLOW internal functions.
7864         (simplify_internal_call_using_ranges): Handle {ADD,SUB,MUL}_OVERFLOW
7865         internal functions.
7866         * optabs.def (umulv4_optab): New optab.
7867         * config/i386/i386.md (umulv<mode>4, <u>mulvqi4): New define_expands.
7868         (*umulv<mode>4, *<u>mulvqi4): New define_insns.
7869         * doc/extend.texi (Integer Overflow Builtins): Document
7870         __builtin_*_overflow.
7871
7872 2014-11-12  Richard Biener  <rguenther@suse.de>
7873
7874         * genmatch.c (capture_info::capture_info): Add missing
7875         COND_EXPR handling.
7876         (capture_info::walk_match): Fix COND_EXPR handling.
7877         (capture_info::walk_result): Likewise.
7878
7879 2014-11-12  Richard Biener  <rguenther@suse.de>
7880
7881         PR middle-end/63821
7882         * match.pd: Add missing conversion to the -(T)-X pattern.
7883
7884 2014-11-12  Richard Biener  <rguenther@suse.de>
7885
7886         PR bootstrap/63819
7887         * hash-table.h: Include ggc.h also for generator programs.
7888         * genmatch.c (ggc_internal_cleared_alloc): Properly define
7889         using MEM_STAT_DECL instead of CXX_MEM_STAT_INFO.
7890
7891 2014-11-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7892
7893         PR tree-optimization/63761
7894         * tree-ssa-math-opts.c (bswap_replace): Construct gsi from cur_stmt
7895         rather than taking it as a parameter. Add some comments to explain the
7896         gsi_move_before in case of load and why canonicalization of bswap into
7897         a rotation is only done for 16bit values.
7898         (pass_optimize_bswap::execute): Adapt for loop via gsi to make gsi
7899         refer to the statement just before cur_stmt. Ignore 16bit bswap that
7900         are already in canonical form. Adapt bswap_replace to removal of its
7901         gsi parameter.
7902
7903 2014-11-12  Richard Sandiford  <richard.sandiford@arm.com>
7904
7905         * rtl.h (rtx_function, for_each_rtx, for_each_rtx_in_insn): Delete.
7906         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1, for_each_rtx):
7907         (for_each_rtx_in_insn): Delete.
7908         (init_rtlanal): Remove initialization of non_rtx_starting_operands.
7909         * df-core.c: Remove reference to for_each_rtx in comment.
7910
7911 2014-11-12  Tejas Belagod  <tejas.belagod@arm.com>
7912
7913         * Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi,
7914         arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi.
7915         * doc/aarch64-acle-intrinsics.texi: Remove.
7916         * doc/arm-acle-intrinsics.texi: Remove.
7917         * doc/arm-neon-intrinsics.texi: Remove.
7918         * doc/extend.texi: Consolidate sections AArch64 intrinsics,
7919         ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language
7920         Extension section. Add references to public ACLE specification.
7921
7922 2014-11-11  Patrick Palka  <ppalka@gcc.gnu.org>
7923
7924         * tree-vrp.c (register_edge_assert_for_2): Change return type to
7925         void and adjust accordingly.
7926         (register_edge_assert_for_1): Likewise.
7927         (register_edge_assert_for): Likewise.
7928         (find_conditional_asserts): Likewise.
7929         (find_switch_asserts): Likewise.
7930         (find_assert_locations_1): Likewise.
7931         (find_assert_locations): Likewise.
7932         (insert_range_insertions): Inspect the need_assert_for bitmap.
7933
7934 2014-11-11  Andrew Pinski  <apinski@cavium.com>
7935
7936         Bug target/61997
7937         * config.gcc (aarch64*-*-*): Set target_gtfiles to include
7938         aarch64-builtins.c.
7939         * config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h
7940         at the end of the file.
7941
7942 2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
7943             Manuel López-Ibáñez  <manu@gcc.gnu.org>
7944
7945         PR driver/36312
7946         * diagnostic-core.h: Add prototype for fatal_error.
7947         * diagnostic.c (fatal_error): New function fatal_error.
7948         * gcc.c (store_arg): Remove have_o_argbuf_index.
7949         (process_command): Check if input and output files are the same.
7950         * toplev.c (init_asm_output): Check if input and output files are
7951         the same.
7952
7953 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
7954
7955         * reorg.c (fill_slots_from_thread): Do not copy frame-related insns.
7956
7957 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
7958
7959         PR target/61535
7960         * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
7961         smaller than 8 bytes.
7962         (sparc_function_arg_1): Tweak.
7963         (sparc_function_value_1): Tweak.
7964
7965 2014-11-11  David Malcolm  <dmalcolm@redhat.com>
7966
7967         * ChangeLog.jit: New.
7968         * Makefile.in (doc_build_sys): New variable, set to "sphinx" if
7969         sphinx is installed, falling back to "texinfo" otherwise.
7970         (FULL_DRIVER_NAME): New variable, adapted from the
7971         install-driver target.  New target, a symlink within the builddir,
7972         linked to "xgcc", for use when running the JIT library from the
7973         builddir.
7974         (MOSTLYCLEANFILES): Add FULL_DRIVER_NAME.
7975         (install-driver): Use $(FULL_DRIVER_NAME) rather than spelling it
7976         out.
7977         * configure.ac (doc_build_sys): New variable, set to "sphinx" if
7978         sphinx is installed, falling back to "texinfo" otherwise.
7979         (GCC_DRIVER_NAME): Generate a gcc-driver-name.h file containing
7980         GCC_DRIVER_NAME for the benefit of jit/internal-api.c.
7981         * configure: Regenerate.
7982         * doc/install.texi (--enable-host-shared): Specify that this is
7983         required when building libgccjit.
7984         (Tools/packages necessary for modifying GCC): Add Sphinx.
7985         * timevar.def (TV_JIT_REPLAY): New.
7986         (TV_ASSEMBLE): New.
7987         (TV_LINK): New.
7988         (TV_LOAD): New.
7989
7990 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7991
7992         PR target/63610
7993         * configure: Regenerate.
7994
7995 2014-11-11  James Greenhalgh  <james.greenhalgh@arm.com>
7996
7997         * config/aarch64/aarch64-simd.md
7998         (aarch64_simd_bsl<mode>_internal): Remove float cases, canonicalize.
7999         (aarch64_simd_bsl<mode>): Add gen_lowpart expressions where we
8000         are punning between float vectors and integer vectors.
8001
8002 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8003
8004         * config/alpha/alpha.c (alpha_emit_conditional_branch): Replace
8005         open-coded swap with std::swap to swap values.
8006         (alpha_emit_setcc): Ditto.
8007         (alpha_emit_conditional_move): Ditto.
8008         (alpha_split_tmode_pair): Ditto.
8009
8010 2014-11-11  Evgeny Stupachenko  <evstupac@gmail.com>
8011
8012         * tree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift
8013         permutations on power of 2 cases.
8014
8015 2014-11-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8016
8017         * config/aarch64/aarch64.h (MACHMODE): Remove 'enum' keyword.
8018         (CUMULATIVE_ARGS): Guard on !defined(USED_FOR_TARGET).
8019
8020 2014-11-11  Richard Biener  <rguenther@suse.de>
8021
8022         * tree-core.h (pedantic_lvalues): Remove.
8023         * fold-const.c (pedantic_lvalues): Likewise.
8024         (pedantic_non_lvalue_loc): Remove conditional non_lvalue_loc call.
8025
8026 2014-11-11  Martin Liska  <mliska@suse.cz>
8027
8028         PR ipa/63622
8029         PR ipa/63795
8030         * ipa-icf.c (sem_function::merge): Add new target symbol alias
8031         support guard.
8032         (sem_variable::merge): Likewise.
8033         * ipa-icf.h (target_supports_symbol_aliases_p): New function.
8034
8035 2014-11-11  Richard Biener  <rguenther@suse.de>
8036
8037         * match.pd: Implement patterns from associate_plusminus
8038         and factor in differences from the fold-const.c implementation.
8039         * fold-const.c (fold_binary_loc): Remove patterns here.
8040         * tree-ssa-forwprop.c (associate_plusminus): Remove.
8041         (pass_forwprop::execute): Don't call it.
8042         * tree.c (tree_nop_conversion_p): New function, factored
8043         from tree_nop_conversion.
8044         * tree.h (tree_nop_conversion_p): Declare.
8045
8046 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8047
8048         * system.h: Include algorithm and utility.
8049         * rtl.h: Do not include utility here.
8050         * wide-int.h: Ditto.
8051         * tree-vect-data-refs.c (swap): Remove template.
8052         (vect_prune_runtime_alias_test_list): Use std::swap instead of swap.
8053
8054 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8055
8056         PR bootstrap/63699
8057         PR bootstrap/63750
8058         * system.h: Include <string> before "safe-ctype.h"
8059         * wide-int.h (wi::smin, wi::smax, wi::umin, wi::umax): Prefix
8060         calls to min/max with wi namespace.
8061         * ipa-chkp.c: Don't include <string>.
8062
8063 2014-11-11  Terry Guo  <terry.guo@arm.com>
8064
8065         * doc/invoke.texi (-masm-syntax-unified): Reword and fix typo.
8066         * config/arm/thumb1.md (*thumb_mulsi3): Use movs to move low
8067         registers.
8068         (*thumb1_movhf): Likewise.
8069
8070 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8071
8072         * sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t)
8073         instead of INT64_MAX.
8074
8075 2014-11-11  Tobias Burnus  <burnus@net-b.de>
8076
8077         * doc/install.texi (Prerequisites): Remove CLooG.
8078
8079 2014-11-10  Trevor Saunders  <tsaunders@mozilla.com>
8080
8081         * ipa-inline.c (edge_badness): Adjust.
8082         (inline_small_functions): Likewise.
8083         * predict.c (propagate_freq): Likewise.
8084         (estimate_bb_frequencies): Likewise.
8085         * sreal.c (sreal::dump): Rename from dump_sreal.
8086         (debug): Adjust.
8087         (copy): Remove function.
8088         (sreal::shift_right): Rename from sreal_sift_right.
8089         (sreal::normalize): Rename from normalize.
8090         (sreal_init): Remove function.
8091         (sreal::to_int): Rename from sreal_to_int.
8092         (sreal_compare): Remove function.
8093         (sreal::operator+): Rename from sreal_add.
8094         (sreal::operator-): Rename from sreal_sub.
8095         (sreal::operator*): Rename from sreal_mul.
8096         (sreal::operator/): Rename from sreal_div.
8097         * sreal.h (class sreal): Adjust.
8098         (inline sreal &operator+=): New operator.
8099         (inline sreal &operator-=): Likewise.
8100         (inline sreal &operator/=): Likewise.
8101         (inline sreal &operator*=): Likewise.
8102         (inline bool operator!=): Likewise.
8103         (inline bool operator>): Likewise.
8104         (inline bool operator<=): Likewise.
8105         (inline bool operator>=): Likewise.
8106
8107 2014-11-11  Bin Cheng  <bin.cheng@arm.com>
8108
8109         * sched-deps.c (sched_analyze_1): Check pending list if it is not
8110         less than MAX_PENDING_LIST_LENGTH.
8111         (sched_analyze_2, sched_analyze_insn, deps_analyze_insn): Ditto.
8112
8113 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8114
8115         * config/i386/i386.c (ix86_decompose_address): Replace open-coded
8116         swap with std::swap to swap values.
8117         (ix86_fixup_binary_operands): Ditto.
8118         (ix86_binary_operator_ok): Ditto.
8119         (ix86_prepare_fp_compare_args): Ditto.
8120         (ix86_expand_branch): Ditto.
8121         (ix86_expand_carry_flag_compare): Ditto.
8122         (ix86_expand_int_movcc): Ditto.
8123         (ix86_prepare_sse_fp_compare_args): Ditto.
8124         (ix86_expand_sse_fp_minmax): Ditto.
8125         (ix86_expand_int_vcond): Ditto.
8126         (ix86_split_long_move): Ditto.
8127         (ix86_expand_sse_comi): Ditto.
8128         (ix86_expand_sse_compare_and_jump): Ditto.
8129         (ix86_expand_sse_compare_mask): Ditto.
8130         * config/i386/i386.md (*add<mode>_1): Ditto.
8131         (addsi_1_zext): Ditto.
8132         (*addhi_1): Ditto.
8133         (*addqi_1): Ditto.
8134         (*add<mode>_2): Ditto.
8135         (*addsi_2_zext): Ditto.
8136         (*add<mode>_3): Ditto.
8137         (*addsi_3_zext): Ditto.
8138         (*add<mode>_5): Ditto.
8139         (absneg splitter): Ditto.
8140
8141 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8142
8143         Revert:
8144         2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
8145
8146         PR target/63620
8147         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
8148         * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
8149         * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
8150         be reloaded through memory.
8151         (*pushxf): Ditto.
8152         (*pushdf): Ditto.
8153
8154 2014-11-11  Jakub Jelinek  <jakub@redhat.com>
8155             Martin Liska  <mliska@suse.cz>
8156
8157         * ipa-icf-gimple.c (func_checker::compare_bb): Fix comment typo.
8158         (func_checker::compare_gimple_call): Compare gimple_call_fn,
8159         gimple_call_chain, gimple_call_fntype and call flags.
8160
8161 2014-11-10  Vladimir Makarov  <vmakarov@redhat.com>
8162
8163         PR rtl-optimization/63620
8164         PR rtl-optimization/63799
8165         * lra-lives.c (process_bb_lives): Do not delete EH_REGION, trapped
8166         and setting PIC pseudo insns.
8167         (lra_create_live_ranges): Fix the typo.
8168
8169 2014-11-10  Patrick Palka  <ppalka@gcc.gnu.org>
8170
8171         PR middle-end/63748
8172         * tree-ssa-propagate.c (may_propagate_copy): Allow propagating
8173         SSA copies whose source and destination names both occur in
8174         abnormal PHIs.
8175
8176 2014-11-10 Roman Gareev  <gareevroman@gmail.com>
8177
8178         * Makefile.in: Remove the compilation of graphite-clast-to-gimple.o.
8179         * common.opt: Remove using of fgraphite-code-generator flag.
8180         * flag-types.h: Likewise.
8181         * graphite.c: Remove using of CLooG.
8182         * graphite-blocking.c: Likewise.
8183         * graphite-dependences.c: Likewise.
8184         * graphite-poly.c: Likewise.
8185         * graphite-poly.h: Likewise.
8186         * graphite-scop-detection.c: Likewise.
8187         * graphite-sese-to-poly.c: Likewise.
8188         * graphite-clast-to-gimple.c: Removed.
8189         * graphite-clast-to-gimple.h: Likewise.
8190         * graphite-htab.h: Likewise.
8191
8192 2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>
8193
8194         * doc/invoke.texi ([-Wshift-count-negative, -Wshift-count-overflow]):
8195         Add.
8196
8197 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8198
8199         * config/frv/frv.c (frv_io_handle_use_1): Delete.
8200         (frv_io_handle_use): Use find_all_hard_regs.
8201
8202 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8203
8204         * config/frv/frv.c (frv_registers_conflict_p_1): Take an rtx rather
8205         than an rtx *.  Take the regstate_t directly rather than via a void *.
8206         Return a bool rather than an int.  Iterate over all subrtxes here.
8207         (frv_registers_conflict_p): Update accordingly.
8208
8209 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8210
8211         * config/frv/frv.c: Include rtl-iter.h.
8212         (frv_acc_group_1): Delete.
8213         (frv_acc_group): Use FOR_EACH_SUBRTX.
8214
8215 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8216
8217         * config/frv/frv.c: Move include of rtl.h after hard-reg-set.h.
8218         (frv_clear_registers_used): Delete.
8219         (frv_ifcvt_modify_tests): Use find_all_hard_regs.
8220
8221 2014-11-10  Jan Hubicka  <hubicka@ucw.cz>
8222
8223         PR bootstrap/63573
8224         * calls.c (initialize_argument_information): When emitting thunk call
8225         use original memory placement of the argument.
8226
8227 2014-11-10  Renlin Li  <renlin.li@arm.com>
8228
8229         PR middle-end/61529
8230         * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.
8231
8232 2014-11-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8233
8234         * expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to
8235         bswaphi if available.
8236
8237 2014-11-10  Bernd Schmidt  <bernds@codesourcery.com>
8238
8239         * config/nvptx/nvptx.c: New file.
8240         * config/nvptx/nvptx.h: New file.
8241         * config/nvptx/nvptx-protos.h: New file.
8242         * config/nvptx/nvptx.md: New file.
8243         * config/nvptx/t-nvptx: New file.
8244         * config/nvptx/nvptx.opt: New file.
8245         * common/config/nvptx/nvptx-common.c: New file.
8246         * config.gcc: Handle nvptx-*-*.
8247
8248 2014-11-10  Richard Biener  <rguenther@suse.de>
8249
8250         * tree-ssa-operands.c (finalize_ssa_uses): Properly put
8251         released operands on the free list.
8252
8253 2014-11-10  Richard Biener  <rguenther@suse.de>
8254
8255         * match.pd: Implement pattern from simplify_mult.
8256         * tree-ssa-forwprop.c (simplify_mult): Remove.
8257         (pass_forwprop::execute): Do not call simplify_mult.
8258
8259 2014-11-10  Richard Biener  <rguenther@suse.de>
8260
8261         PR tree-optimization/63800
8262         * tree-ssa-pre.c (eliminate_push_avail): Push in a way so
8263         we can restore the previous availability in after_dom_children.
8264         (eliminate_dom_walker::after_dom_children): Restore
8265         previous availability.
8266
8267 2014-11-10  Richard Biener  <rguenther@suse.de>
8268
8269         PR middle-end/63798
8270         * expr.c (expand_expr_real_2): When expanding FMA_EXPRs
8271         properly treat the embedded multiplication as commutative
8272         when looking for feeding negates.
8273
8274 2014-11-10  Joern Rennecke  <joern.rennecke@embecosm.com>
8275
8276         * config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define.
8277
8278 2014-11-10  Martin Liska  <mliska@suse.cz>
8279
8280         * gcc.dg/tree-ssa/ldist-19.c: ICF is disabled
8281         for the test because of default char signedness
8282         on powerpc64 target.
8283
8284 2014-11-10  Richard Biener  <rguenther@suse.de>
8285
8286         * match.pd: Implement pattern from simplify_conversion_from_bitmask.
8287         * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): Remove.
8288         (pass_forwprop::execute): Do not call simplify_conversion_from_bitmask.
8289
8290 2014-11-10  Richard Biener  <rguenther@suse.de>
8291
8292         * match.pd: Move rest of the conversion combining patterns
8293         from tree-ssa-forwprop.c.
8294         * tree-ssa-forwprop.c (combine_conversions): Remove.
8295         (pass_forwprop::execute): Do not call it.
8296
8297 2014-11-10  Eric Botcazou  <ebotcazou@adacore.com>
8298
8299         * gimple-low.c (lower_function_body): Clear the location of the first
8300         inserted representative return if it also fills in for the fallthru.
8301
8302 2014-11-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
8303
8304         * tree-if-conv.c (add_to_predicate_list): Check unconditionally
8305         that bb is always executed to early exit. Use predicate of
8306         cd-equivalent block for join blocks if it exists.
8307         (if_convertible_loop_p_1): Recompute POST_DOMINATOR tree.
8308         (tree_if_conversion): Free post-dominance information.
8309
8310 2014-11-09  Jason Merrill  <jason@redhat.com>
8311
8312         * config/i386/avx512vldqintrin.h (_mm256_broadcast_f32x2): __mmask8.
8313         * config/i386/avx512vlintrin.h (_mm256_mask_cvtepi32_storeu_epi16)
8314         (_mm_mask_cvtusepi32_storeu_epi16)
8315         (_mm_mask_cvtsepi64_storeu_epi32): Return void.
8316
8317 2014-11-09  Joern Rennecke  <joern.rennecke@embecosm.com>
8318
8319         * config/avr/predicates.md (low_io_address_operand): Fix typo.
8320
8321 2014-11-09  Vladimir Makarov  <vmakarov@redhat.com>
8322
8323         PR rtl-optimization/63620
8324         * lra-constraints.c (substitute_pseudo): Add prefix lra_ to the
8325         name.  Move to lra.c.  Make it external.
8326         (substitute_pseudo_within_insn): Ditto.
8327         (inherit_reload_reg, split_reg, remove_inheritance_pseudos): Use
8328         the new names.
8329         (undo_optional_reloads): Ditto.
8330         * lra-int.h (lra_dump_bitmap_with_title, lra_substitute_pseudo):
8331         New prototypes.
8332         (lra_substitute_pseudo_within_insn): Ditto.
8333         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): New.
8334         (mark_regno_live): Add parameter.  Update bb_gen_pseudos.
8335         (mark_regno_dead): Add parameter.  Update bb_gen_pseudos and
8336         bb_killed_pseudos.
8337         (struct bb_data, bb_data_t, bb_data): New.
8338         (get_bb_data, get_bb_data_by_index): Ditto.
8339         (all_hard_regs_bitmap): New.
8340         (live_trans_fun, live_con_fun_0, live_con_fun_n, all_blocks): New.
8341         (initiate_live_solver, finish_live_solver): New.
8342         (process_bb_lives): Change return type.  Add code updating local
8343         live data and removing dead insns.  Pass new argument to
8344         mark_regno_live and mark_regno_dead.  Check changing bb pseudo
8345         life info.  Return the result.
8346         (lra_create_live_ranges): Add code to do global pseudo live
8347         analysis.
8348         (lra_live_ranges_init): Call initiate_live_solver.
8349         (lra_live_ranges_finish): Call finish_live_solver.
8350         * lra.c (lra_dump_bitmap_with_title): New.
8351         (lra_substitute_pseudo, lra_substitute_pseudo_within_insn): Move
8352         from lra-constraints.c.
8353
8354 2014-11-09  Richard Biener  <rguenther@suse.de>
8355
8356         * match.pd: Add patterns convering two conversions in a row
8357         from fold-const.c.
8358         * fold-const.c (fold_unary_loc): Remove them here.
8359         * tree-ssa-forwprop.c (combine_conversions): Likewise.
8360         * genmatch.c (dt_node::gen_kids): Check whether we may
8361         follow SSA use-def chains.
8362
8363 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8364
8365         * config/aarch64/aarch64.c: Include rtl-iter.h.
8366         (aarch64_tls_operand_p_1): Delete.
8367         (aarch64_tls_operand_p): Use FOR_EACH_SUBRTX.
8368
8369 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8370
8371         * config/arm/arm.c (arm_note_pic_base): Delete.
8372         (arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX.
8373
8374 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8375
8376         * config/arm/arm.c: Include rtl-iter.h.
8377         (arm_tls_referenced_p_1): Delete.
8378         (arm_tls_referenced_p): Use FOR_EACH_SUBRTX.
8379
8380 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8381
8382         * config/arm/aarch-common.c: Include rtl-iter.h.
8383         (search_term, arm_find_sub_rtx_with_search_term): Delete.
8384         (arm_find_sub_rtx_with_code): Use FOR_EACH_SUBRTX_VAR.
8385         (arm_get_set_operands): Pass the insn pattern rather than the
8386         insn itself.
8387         (arm_no_early_store_addr_dep): Likewise.
8388
8389 2014-11-08  Eric Botcazou  <ebotcazou@adacore.com>
8390
8391         * config/arm/arm.c (arm_set_return_address): Mark the store as frame
8392         related, if any.
8393         (thumb_set_return_address): Likewise.
8394
8395 2014-11-07  Jeff Law  <law@redhat.com>
8396
8397         PR tree-optimization/61515
8398         * tree-ssa-threadedge.c (invalidate_equivalences): Walk the unwinding
8399         stack rather than looking at every SSA_NAME's value.
8400
8401 2014-11-07  Richard Biener  <rguenther@suse.de>
8402
8403         PR tree-optimization/63605
8404         * fold-const.c (fold_binary_loc): Properly use element_precision
8405         for types that may not be scalar.
8406
8407 2014-11-07  Evgeny Stupachenko  <evstupac@gmail.com>
8408
8409         PR target/63534
8410         * config/i386/i386.md (builtin_setjmp_receiver): Use
8411         pic_offset_table_rtx for PIC register.
8412         (nonlocal_goto_receiver): Delete.
8413
8414 2014-11-07  Daniel Hellstrom  <daniel@gaisler.com>
8415
8416         * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
8417         * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
8418
8419 2014-11-07  Martin Liska  <mliska@suse.cz>
8420
8421         PR ipa/63580
8422         * cgraphunit.c (cgraph_node::create_wrapper):
8423         TREE_ADDRESSABLE is set to false for a newly created thunk.
8424
8425 2014-11-07  Martin Liska  <mliska@suse.cz>
8426
8427         PR ipa/63747
8428         * ipa-icf-gimple.c (func_checker::compare_gimple_switch):
8429         Missing checking for CASE_LOW and CASE_HIGH added.
8430
8431 2014-11-07  Martin Liska  <mliska@suse.cz>
8432
8433         PR ipa/63595
8434         * cgraphunit.c (cgraph_node::expand_thunk): DECL_BY_REFERENCE
8435         is correctly handled for thunks created by IPA ICF.
8436
8437 2014-11-07  Jiong Wang  <jiong.wang@arm.com>
8438 2014-11-07  Richard Biener  <rguenther@suse.de>
8439
8440         PR tree-optimization/63676
8441         * gimple-fold.c (fold_gimple_assign): Do not fold node when
8442         TREE_CLOBBER_P be true.
8443
8444 2014-11-07  Richard Biener  <rguenther@suse.de>
8445
8446         PR middle-end/63770
8447         * match.pd: Guard conflicting GENERIC pattern properly.
8448
8449 2014-11-07  Richard Biener  <rguenther@suse.de>
8450
8451         * match.pd: Add patterns for POINTER_PLUS_EXPR association
8452         and special patterns from tree-ssa-forwprop.c
8453         * fold-const.c (fold_binary_loc): Remove them here.
8454         * tree-ssa-forwprop.c (to_purge): New global bitmap.
8455         (fwprop_set_lattice_val): New function.
8456         (fwprop_invalidate_lattice): Likewise.
8457         (remove_prop_source_from_use): Instead of purging dead EH
8458         edges record blocks to do that in to_purge.
8459         (tidy_after_forward_propagate_addr): Likewise.
8460         (forward_propagate_addr_expr): Invalidate the lattice for
8461         SSA names we release.
8462         (simplify_conversion_from_bitmask): Likewise.
8463         (simplify_builtin_call): Likewise.
8464         (associate_pointerplus_align): Remove.
8465         (associate_pointerplus_diff): Likewise.
8466         (associate_pointerplus): Likewise.
8467         (fold_all_stmts): Merge with ...
8468         (pass_forwprop::execute): ... the original loop over all
8469         basic-blocks.  Delay purging dead EH edges and invalidate
8470         the lattice for SSA names we release.
8471
8472 2014-11-07  Terry Guo  <terry.guo@arm.com>
8473
8474         * config/arm/arm.opt (masm-syntax-unified): New option.
8475         * doc/invoke.texi (-masm-syntax-unified): Document new option.
8476         * config/arm/arm.h (TARGET_UNIFIED_ASM): Also include thumb1.
8477         (ASM_APP_ON): Redefined.
8478         * config/arm/arm.c (arm_option_override): Thumb2 inline assembly
8479         code always use UAL syntax.
8480         (arm_output_mi_thunk): Use UAL syntax for Thumb1 target.
8481         * config/arm/thumb1.md: Likewise.
8482
8483 2014-11-06  John David Anglin  <danglin@gcc.gnu.org>
8484
8485         * config/pa/pa.md (trap): New insn.  Add "trap" to attribute type.
8486         Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
8487         or in_call_delay.
8488         
8489 2014-11-06  Steve Ellcey  <sellcey@imgtec.com>
8490
8491         * config.gcc (mips*-mti-linux*): Remove gnu_ld and gas assignments.
8492         Set default_mips_arch and default_mips_abi instead of tm_defines.
8493         (mips*-*-linux*): Set default_mips_arch and default_mips_abi instead
8494         of tm_defines.
8495         (mips*-*-*): Check with_arch and with_abi.  Set tm_defines.
8496         * config/mips/mips.h (STANDARD_STARTFILE_PREFIX_1): Set default
8497         based on MIPS_ABI_DEFAULT.
8498         (STANDARD_STARTFILE_PREFIX_2): Ditto.
8499
8500 2014-11-06  Joseph Myers  <joseph@codesourcery.com>
8501
8502         * doc/invoke.texi (-std=c99, -std=c11): Don't refer to corner
8503         cases of extended identifiers.
8504
8505 2014-11-06  Eric Botcazou  <ebotcazou@adacore.com>
8506
8507         * tree-cfgcleanup.c (fixup_noreturn_call): Do not perform DCE here.
8508
8509 2014-11-06  DJ Delorie  <dj@redhat.com>
8510
8511         * config/m32c/cond.md (movqicc_<code>_<mode>): Remove mode of
8512         conditional.
8513         (movhicc_<code>_<mode>): Likewise.
8514         * config/m32c/m32c.c (encode_pattern_1): Specialise PSImode
8515         subregs.
8516         (m32c_eh_return_data_regno): Change to using memregs to avoid
8517         tying up all the compute regs.
8518         (m32c_legitimate_address_p) Subregs are not valid addresses.
8519
8520 2014-11-06  Bernd Schmidt  <bernds@codesourcery.com>
8521
8522         * function.c (thread_prologue_and_epilogue_insns): No longer static.
8523         * function.h (thread_prologue_and_epilogue_insns): Declare.
8524
8525         * target.def (assemble_undefined_decl): New hooks.
8526         * hooks.c (hook_void_FILEptr_constcharptr_const_tree): New function.
8527         * hooks.h (hook_void_FILEptr_constcharptr_const_tree): Declare.
8528         * doc/tm.texi.in (TARGET_ASM_ASSEMBLE_UNDEFINED_DECL): Add.
8529         * doc/tm.texi: Regenerate.
8530         * output.h (assemble_undefined_decl): Declare.
8531         (get_fnname_from_decl): Declare.
8532         * varasm.c (assemble_undefined_decl): New function.
8533         (get_fnname_from_decl): New function.
8534         * final.c (rest_of_handle_final): Use it.
8535         * varpool.c (varpool_output_variables): Call assemble_undefined_decl
8536         for nodes without a definition.
8537
8538         * target.def (call_args, end_call_args): New hooks.
8539         * hooks.c (hook_void_rtx_tree): New empty function.
8540         * hooks.h (hook_void_rtx_tree): Declare.
8541         * doc/tm.texi.in (TARGET_CALL_ARGS, TARGET_END_CALL_ARGS): Add.
8542         * doc/tm.texi: Regenerate.
8543         * calls.c (expand_call): Slightly rearrange the code.  Use the two new
8544         hooks.
8545         (expand_library_call_value_1): Use the two new hooks.
8546
8547         * expr.c (use_reg_mode): Just return for pseudo registers.
8548
8549         * combine.c (try_combine): Don't allow a call as one of the source
8550         insns.
8551
8552         * target.def (decl_end): New hook.
8553         * varasm.c (assemble_variable_contents, assemble_constant_contents):
8554         Use it.
8555         * doc/tm.texi.in (TARGET_ASM_DECL_END): Add.
8556         * doc/tm.texi: Regenerate.
8557
8558 2014-11-06  Renlin Li  <renlin.li@arm.com>
8559
8560         * config/aarch64/aarch64.c (aarch64_architecture_version): New.
8561         (processor): New architecture_version field.
8562         (aarch64_override_options): Initialize aarch64_architecture_version.
8563         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_ARCH,
8564         __ARM_ARCH_PROFILE, aarch64_arch_name macro.
8565
8566 2014-11-06  James Greenhalgh  <james.greenhalgh@arm.com>
8567
8568         * params.def (sra-max-scalarization-size-Ospeed): New.
8569         (sra-max-scalarization-size-Osize): Likewise.
8570         * doc/invoke.texi (sra-max-scalarization-size-Ospeed): Document.
8571         (sra-max-scalarization-size-Osize): Likewise.
8572         * toplev.c (process_options): Set default values for new
8573         parameters.
8574         * tree-sra.c (analyze_all_variable_accesses): Use new parameters.
8575         * targhooks.c (get_move_ratio): Remove static designator.
8576         * target.h (get_move_ratio): Declare.
8577
8578 2014-11-06  Marek Polacek  <polacek@redhat.com>
8579
8580         * sanopt.c (sanopt_optimize_walker): Limit removal of the checks.
8581         Remove vector limit.
8582
8583 2014-11-06  Richard Biener  <rguenther@suse.de>
8584
8585         * match.pd: Implement bitwise binary and unary simplifications
8586         from tree-ssa-forwprop.c.
8587         * fold-const.c (fold_unary_loc): Remove them here.
8588         (fold_binary_loc): Likewise.
8589         * tree-ssa-forwprop.c (simplify_not_neg_expr): Remove.
8590         (truth_valued_ssa_name): Likewise.
8591         (lookup_logical_inverted_value): Likewise.
8592         (simplify_bitwise_binary_1): Likewise.
8593         (hoist_conversion_for_bitop_p): Likewise.
8594         (simplify_bitwise_binary_boolean): Likewise.
8595         (simplify_bitwise_binary): Likewise.
8596         (pass_forwprop::execute): Remove calls to simplify_not_neg_expr
8597         and simplify_bitwise_binary.
8598         * genmatch.c (dt_node::append_true_op): Use safe_as_a for parent.
8599         (decision_tree::insert): Also insert non-expressions.
8600
8601 2014-11-06  Hale Wang  <hale.wang@arm.com>
8602
8603         * config/arm/arm-cores.def: Add support for
8604         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8605         cortex-m1.small-multiply.
8606         * config/arm/arm-tables.opt: Regenerate.
8607         * config/arm/arm-tune.md: Regenerate.
8608         * config/arm/arm.c: Update the rtx-costs for MUL.
8609         * config/arm/bpabi.h: Handle
8610         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8611         cortex-m1.small-multiply.
8612         * doc/invoke.texi: Document
8613         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8614         cortex-m1.small-multiply.
8615
8616 2014-11-06  Hale Wang  <hale.wang@arm.com>
8617
8618         * config/arm/arm.c: Add cortex-m7 tune.
8619         * config/arm/arm-cores.def: Use cortex-m7 tune.
8620
8621 2014-11-05  Uros Bizjak  <ubizjak@gmail.com>
8622
8623         PR target/63538
8624         * config/i386/i386.c (in_large_data_p): Reject automatic variables.
8625         (ix86_encode_section_info): Do not check for non-automatic varibles
8626         when setting SYMBOL_FLAG_FAR_ADDR flag.
8627         (x86_64_elf_select_section): Do not check ix86_cmodel here.
8628         (x86_64_elf_unique_section): Ditto.
8629         (x86_elf_aligned_common): Emit tab before .largecomm.
8630
8631 2014-11-05  Joseph Myers  <joseph@codesourcery.com>
8632
8633         PR preprocessor/9449
8634         * doc/cpp.texi (Character sets, Tokenization)
8635         (Implementation-defined behavior): Don't refer to UCNs in
8636         identifiers requiring -fextended-identifiers.
8637         * doc/cppopts.texi (-fextended-identifiers): Document as enabled
8638         by default for C99 and later and C++.
8639         * doc/invoke.texi (-std=c99, -std=c11): Don't refer to extended
8640         identifiers needing -fextended-identifiers.
8641
8642 2014-11-05  Ilya Tocar  <ilya.tocar@intel.com>
8643
8644         * config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd
8645         for 512-bit wide modes.
8646         (expand_vec_perm_1): Use correct versions of patterns.
8647         * config/i386/sse.md (avx512f_vec_dup<mode>_1): New.
8648         (vashr<mode>3<mask_name>): Split V8HImode and V16QImode.
8649
8650 2014-11-05  Ilya Enkovich  <ilya.enkovich@intel.com>
8651
8652         * ipa-chkp.c: New.
8653         * ipa-chkp.h: New.
8654         * tree-chkp.c: New.
8655         * tree-chkp.h: New.
8656         * tree-chkp-opt.c: New.
8657         * rtl-chkp.c: New.
8658         * rtl-chkp.h: New.
8659         * Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
8660         tree-chkp-opt.o.
8661         (GTFILES): Add tree-chkp.c.
8662         * mode-classes.def (MODE_POINTER_BOUNDS): New.
8663         * tree.def (POINTER_BOUNDS_TYPE): New.
8664         * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
8665         (POINTER_BOUNDS_MODE): New.
8666         (make_pointer_bounds_mode): New.
8667         * machmode.h (POINTER_BOUNDS_MODE_P): New.
8668         * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
8669         (layout_type): Support POINTER_BOUNDS_TYPE.
8670         * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
8671         * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
8672         * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
8673         (type_contains_placeholder_1): Likewise.
8674         (build_common_tree_nodes): Initialize
8675         pointer_bounds_type_node.
8676         * tree.h (POINTER_BOUNDS_TYPE_P): New.
8677         (pointer_bounds_type_node): New.
8678         (POINTER_BOUNDS_P): New.
8679         (BOUNDED_TYPE_P): New.
8680         (BOUNDED_P): New.
8681         (CALL_WITH_BOUNDS_P): New.
8682         * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
8683         (gimple_call_with_bounds_p): New.
8684         (gimple_call_set_with_bounds): New.
8685         (gimple_return_retbnd): New.
8686         (gimple_return_set_retbnd): New
8687         * gimple.c (gimple_build_return): Increase number of ops
8688         for return statement.
8689         (gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
8690         flag.
8691         * gimple-pretty-print.c (dump_gimple_return): Print second op.
8692         * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
8693         * gimplify.c (gimplify_init_constructor): Avoid infinite
8694         loop during gimplification of bounds initializer.
8695         * calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
8696         (special_function_p): Use original decl name when analyzing
8697         instrumentation clone.
8698         (arg_data): Add fields special_slot, pointer_arg and
8699         pointer_offset.
8700         (store_bounds): New.
8701         (emit_call_1): Propagate instrumentation flag for CALL.
8702         (initialize_argument_information): Compute pointer_arg,
8703         pointer_offset and special_slot for pointer bounds arguments.
8704         (finalize_must_preallocate): Preallocate when storing bounds
8705         in bounds table.
8706         (compute_argument_addresses): Skip pointer bounds.
8707         (expand_call): Store bounds into tables separately.  Return
8708         result joined with resulting bounds.
8709         * cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
8710         (expand_call_stmt): Propagate bounds flag for CALL_EXPR.
8711         (expand_return): Add returned bounds arg.  Handle returned bounds.
8712         (expand_gimple_stmt_1): Adjust to new expand_return signature.
8713         (gimple_expand_cfg): Reset rtx bounds map.
8714         * expr.c: Include tree-chkp.h, rtl-chkp.h.
8715         (expand_assignment): Handle returned bounds.
8716         (store_expr_with_bounds): New.  Replaces store_expr with new bounds
8717         target argument.  Handle bounds returned by calls.
8718         (store_expr): Now wraps store_expr_with_bounds.
8719         * expr.h (store_expr_with_bounds): New.
8720         * function.c: Include tree-chkp.h, rtl-chkp.h.
8721         (bounds_parm_data): New.
8722         (use_register_for_decl): Do not registerize decls used for bounds
8723         stores and loads.
8724         (assign_parms_augmented_arg_list): Add bounds of the result
8725         structure pointer as the second argument.
8726         (assign_parm_find_entry_rtl): Mark bounds are never passed on
8727         the stack.
8728         (assign_parm_is_stack_parm): Likewise.
8729         (assign_parm_load_bounds): New.
8730         (assign_bounds): New.
8731         (assign_parms): Load bounds and determine a location for
8732         returned bounds.
8733         (diddle_return_value_1): New.
8734         (diddle_return_value): Handle returned bounds.
8735         * function.h (rtl_data): Add field for returned bounds.
8736         * varasm.c: Include tree-chkp.h.
8737         (output_constant): Support POINTER_BOUNDS_TYPE.
8738         (output_constant_pool_2): Support MODE_POINTER_BOUNDS.
8739         (ultimate_transparent_alias_target): Move up.
8740         (make_decl_rtl): For instrumented function use
8741         name of the original decl.
8742         (assemble_start_function): Mark function as global
8743         in case it is instrumentation clone of the global
8744         function.
8745         (do_assemble_alias): Follow transparent alias chain
8746         for identifier.  Check if original alias is public.
8747         (maybe_assemble_visibility): Use visibility of the
8748         original function for instrumented version.
8749         (default_unique_section): Likewise.
8750         * emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
8751         (init_emit_once): Build pointer bounds zero constants.
8752         * explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
8753         * target.def (builtin_chkp_function): New.
8754         (chkp_bound_type): New.
8755         (chkp_bound_mode): New.
8756         (chkp_make_bounds_constant): New.
8757         (chkp_initialize_bounds): New.
8758         (load_bounds_for_arg): New.
8759         (store_bounds_for_arg): New.
8760         (load_returned_bounds): New.
8761         (store_returned_bounds): New.
8762         (chkp_function_value_bounds): New.
8763         (setup_incoming_vararg_bounds): New.
8764         (function_arg): Update hook description with new possible return
8765         value CONST_INT.
8766         * targhooks.h (default_load_bounds_for_arg): New.
8767         (default_store_bounds_for_arg): New.
8768         (default_load_returned_bounds): New.
8769         (default_store_returned_bounds): New.
8770         (default_chkp_bound_type): New.
8771         (default_chkp_bound_mode): New.
8772         (default_builtin_chkp_function): New.
8773         (default_chkp_function_value_bounds): New.
8774         (default_chkp_make_bounds_constant): New.
8775         (default_chkp_initialize_bounds): New.
8776         (default_setup_incoming_vararg_bounds): New.
8777         * targhooks.c (default_load_bounds_for_arg): New.
8778         (default_store_bounds_for_arg): New.
8779         (default_load_returned_bounds): New.
8780         (default_store_returned_bounds): New.
8781         (default_chkp_bound_type): New.
8782         (default_chkp_bound_mode); New.
8783         (default_builtin_chkp_function): New.
8784         (default_chkp_function_value_bounds): New.
8785         (default_chkp_make_bounds_constant): New.
8786         (default_chkp_initialize_bounds): New.
8787         (default_setup_incoming_vararg_bounds): New.
8788         * builtin-types.def (BT_BND): New.
8789         (BT_FN_PTR_CONST_PTR): New.
8790         (BT_FN_CONST_PTR_CONST_PTR): New.
8791         (BT_FN_BND_CONST_PTR): New.
8792         (BT_FN_CONST_PTR_BND): New.
8793         (BT_FN_PTR_CONST_PTR_SIZE): New.
8794         (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
8795         (BT_FN_VOID_PTRPTR_CONST_PTR): New.
8796         (BT_FN_VOID_CONST_PTR_SIZE): New.
8797         (BT_FN_VOID_PTR_BND): New.
8798         (BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
8799         (BT_FN_BND_CONST_PTR_SIZE): New.
8800         (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
8801         (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
8802         * chkp-builtins.def: New.
8803         * builtins.def: include chkp-builtins.def.
8804         (DEF_CHKP_BUILTIN): New.
8805         * builtins.c: Include tree-chkp.h and rtl-chkp.h.
8806         (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
8807         BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
8808         BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
8809         BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
8810         BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
8811         BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
8812         BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
8813         BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
8814         BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW,
8815         BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
8816         (std_expand_builtin_va_start): Init bounds for va_list.
8817         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
8818         __CHKP__ macro when Pointer Bounds Checker is on.
8819         * params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
8820         * passes.def (pass_ipa_chkp_versioning): New.
8821         (pass_early_local_passes): Renamed to pass_build_ssa_passes.
8822         (pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
8823         (pass_chkp_instrumentation_passes): New.
8824         (pass_ipa_chkp_produce_thunks): New.
8825         (pass_local_optimization_passes): New.
8826         (pass_chkp_opt): New.
8827         * tree-pass.h (make_pass_ipa_chkp_versioning): New.
8828         (make_pass_ipa_chkp_produce_thunks): New.
8829         (make_pass_chkp): New.
8830         (make_pass_chkp_opt): New.
8831         (make_pass_early_local_passes): Renamed to ...
8832         (make_pass_build_ssa_passes): This.
8833         (make_pass_chkp_instrumentation_passes): New.
8834         (make_pass_local_optimization_passes): New.
8835         * passes.c (pass_manager::execute_early_local_passes): Execute
8836         early passes in three steps.
8837         (execute_all_early_local_passes): Renamed to ...
8838         (execute_build_ssa_passes): This.
8839         (pass_data_early_local_passes): Renamed to ...
8840         (pass_data_build_ssa_passes): This.
8841         (pass_early_local_passes): Renamed to ...
8842         (pass_build_ssa_passes): This.
8843         (pass_data_chkp_instrumentation_passes): New.
8844         (pass_chkp_instrumentation_passes): New.
8845         (pass_data_local_optimization_passes): New.
8846         (pass_local_optimization_passes): New.
8847         (make_pass_early_local_passes): Renamed to ...
8848         (make_pass_build_ssa_passes): This.
8849         (make_pass_chkp_instrumentation_passes): New.
8850         (make_pass_local_optimization_passes): New.
8851         * c-family/c.opt (fcheck-pointer-bounds): New.
8852         (fchkp-check-incomplete-type): New.
8853         (fchkp-zero-input-bounds-for-main): New.
8854         (fchkp-first-field-has-own-bounds): New.
8855         (fchkp-narrow-bounds): New.
8856         (fchkp-narrow-to-innermost-array): New.
8857         (fchkp-optimize): New.
8858         (fchkp-use-fast-string-functions): New.
8859         (fchkp-use-nochk-string-functions): New.
8860         (fchkp-use-static-bounds): New.
8861         (fchkp-use-static-const-bounds): New.
8862         (fchkp-treat-zero-dynamic-size-as-infinite): New.
8863         (fchkp-check-read): New.
8864         (fchkp-check-write): New.
8865         (fchkp-store-bounds): New.
8866         (fchkp-instrument-calls): New.
8867         (fchkp-instrument-marked-only): New.
8868         (Wchkp): New.
8869         * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
8870         (handle_bnd_legacy): New.
8871         (handle_bnd_instrument): New.
8872         (c_common_attribute_table): Add bnd_variable_size, bnd_legacy
8873         and bnd_instrument.  Fix documentation.
8874         (c_common_format_attribute_table): Likewsie.
8875         * toplev.c: include tree-chkp.h.
8876         (process_options): Check Pointer Bounds Checker is supported.
8877         (compile_file): Add chkp_finish_file call.
8878         * ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
8879         to handle instrumentation clones properly.
8880         (propagate_constants_accross_call): Do not propagate
8881         through instrumentation thunks.
8882         * ipa-pure-const.c (propagate_pure_const): Support
8883         IPA_REF_CHKP.
8884         * ipa-inline.c (early_inliner): Check edge has summary allocated.
8885         * ipa-split.c: Include tree-chkp.h.
8886         (find_retbnd): New.
8887         (split_part_set_ssa_name_p): New.
8888         (consider_split): Do not split retbnd and retval
8889         producers.
8890         (insert_bndret_call_after): new.
8891         (split_function): Propagate Pointer Bounds Checker
8892         instrumentation marks and handle returned bounds.
8893         * tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
8894         into bit field and add with_bounds field.
8895         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
8896         with_bounds field for instrumented calls.
8897         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
8898         CALL_WITH_BOUNDS_P flag for calls.
8899         * tree-ssa-ccp.c: Include tree-chkp.h.
8900         (insert_clobber_before_stack_restore): Handle
8901         BUILT_IN_CHKP_BNDRET calls.
8902         * tree-ssa-dce.c: Include tree-chkp.h.
8903         (propagate_necessity): For free call fed by alloc check
8904         bounds are also provided by the same alloc.
8905         (eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
8906         used by free calls.
8907         * tree-inline.c: Include tree-chkp.h.
8908         (declare_return_variable): Add arg holding
8909         returned bounds slot.  Create and initialize returned bounds var.
8910         (remap_gimple_stmt): Handle returned bounds.
8911         Return sequence of statements instead of a single statement.
8912         (insert_init_stmt): Add declaration.
8913         (remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
8914         (copy_bb): Adjust to changed return type of remap_gimple_stmt.
8915         Properly handle bounds in va_arg_pack and va_arg_pack_len.
8916         (expand_call_inline): Handle returned bounds.  Add bounds copy
8917         for generated mem to mem assignments.
8918         * tree-inline.h (copy_body_data): Add fields retbnd and
8919         assign_stmts.
8920         * value-prof.c: Include tree-chkp.h.
8921         (gimple_ic): Support returned bounds.
8922         * ipa.c (cgraph_build_static_cdtor_1): Support contructors
8923         with "chkp ctor" and "bnd_legacy" attributes.
8924         (symtab_remove_unreachable_nodes): Keep initial values for
8925         pointer bounds to be used for checks eliminations.
8926         (process_references): Handle IPA_REF_CHKP.
8927         (walk_polymorphic_call_targets): Likewise.
8928         * ipa-visibility.c (cgraph_externally_visible_p): Mark
8929         instrumented 'main' as externally visible.
8930         (function_and_variable_visibility): Filter instrumentation
8931         thunks.
8932         * cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
8933         field.
8934         (cgraph_node): Add instrumented_version, orig_decl and
8935         instrumentation_clone fields.
8936         (symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
8937         (varpool_node): Add need_bounds_init field.
8938         (cgraph_local_p): New.
8939         * cgraph.c: Include tree-chkp.h.
8940         (cgraph_node::remove): Fix instrumented_version
8941         of the referenced node if any.
8942         (cgraph_node::dump): Dump instrumentation_clone and
8943         instrumented_version fields.
8944         (cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
8945         references and instrumentation thunks.
8946         (cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
8947         all not instrumented instrumentation clones alive.
8948         (cgraph_redirect_edge_call_stmt_to_callee): Support
8949         returned bounds.
8950         * cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
8951         reference.
8952         (cgraph_rebuild_references): Likewise.
8953         * cgraphunit.c: Include tree-chkp.h.
8954         (assemble_thunks_and_aliases): Skip thunks calling instrumneted
8955         function version.
8956         (varpool_finalize_decl): Register statically initialized decls
8957         in Pointer Bounds Checker.
8958         (walk_polymorphic_call_targets): Do not mark generated call to
8959         __builtin_unreachable as with_bounds.
8960         (output_weakrefs): If there are both instrumented and original
8961         versions, output only one of them.
8962         (cgraph_node::expand_thunk): Set with_bounds flag
8963         for created call statement.
8964         * ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
8965         (ipa_ref): increase size of use field.
8966         * symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
8967         * varpool.c (dump_varpool_node): Dump need_bounds_init field.
8968         (ctor_for_folding): Do not fold constant bounds vars.
8969         * lto-streamer.h (LTO_minor_version): Change minor version from
8970         0 to 1.
8971         * lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
8972         pointer bounds.
8973         (lto_output_node): Output instrumentation_clone,
8974         thunk.add_pointer_bounds_args and orig_decl field.
8975         (lto_output_ref): Adjust to new ipa_ref::use field size.
8976         (input_overwrite_node): Read instrumentation_clone field.
8977         (input_node): Read thunk.add_pointer_bounds_args and orig_decl
8978         fields.
8979         (input_ref): Adjust to new ipa_ref::use field size.
8980         (input_cgraph_1): Compute instrumented_version fields and restore
8981         IDENTIFIER_TRANSPARENT_ALIAS chains.
8982         (lto_output_varpool_node): Output
8983         need_bounds_init value.
8984         (input_varpool_node): Read need_bounds_init value.
8985         * lto-partition.c (add_symbol_to_partition_1): Keep original
8986         and instrumented versions together.
8987         (privatize_symbol_name): Restore transparent alias chain if required.
8988         (add_references_to_partition): Add references to pointer bounds vars.
8989         * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
8990         * dwarf2out.c (gen_subprogram_die): Ignore bound args.
8991         (gen_type_die_with_usage): Skip pointer bounds.
8992         (dwarf2out_global_decl): Likewise.
8993         (is_base_type): Support POINTER_BOUNDS_TYPE.
8994         (gen_formal_types_die): Skip pointer bounds.
8995         (gen_decl_die): Likewise.
8996         * var-tracking.c (vt_add_function_parameters): Skip
8997         bounds parameters.
8998         * ipa-icf.c (sem_function::merge): Do not merge when instrumentation
8999         thunk still exists.
9000         (sem_variable::merge): Reset need_bounds_init flag.
9001         * doc/extend.texi: Document Pointer Bounds Checker built-in functions
9002         and attributes.
9003         * doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
9004         (TARGET_STORE_BOUNDS_FOR_ARG): New.
9005         (TARGET_LOAD_RETURNED_BOUNDS): New.
9006         (TARGET_STORE_RETURNED_BOUNDS): New.
9007         (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
9008         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
9009         (TARGET_BUILTIN_CHKP_FUNCTION): New.
9010         (TARGET_CHKP_BOUND_TYPE): New.
9011         (TARGET_CHKP_BOUND_MODE): New.
9012         (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
9013         (TARGET_CHKP_INITIALIZE_BOUNDS): New.
9014         * doc/tm.texi: Regenerated.
9015         * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
9016         (BND32mode): New.
9017         (BND64mode): New.
9018         * doc/invoke.texi (-mmpx): New.
9019         (-mno-mpx): New.
9020         (chkp-max-ctor-size): New.
9021         * config/i386/constraints.md (w): New.
9022         (Ti): New.
9023         (Tb): New.
9024         * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
9025         * config/i386/i386-modes.def (BND32): New.
9026         (BND64): New.
9027         * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
9028         * config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
9029         (regclass_map): Add bound registers.
9030         (dbx_register_map): Likewise.
9031         (dbx64_register_map): Likewise.
9032         (svr4_dbx_register_map): Likewise.
9033         (isa_opts): Add -mmpx.
9034         (PTA_MPX): New.
9035         (ix86_option_override_internal): Support MPX ISA.
9036         (ix86_conditional_register_usage): Support bound registers.
9037         (ix86_code_end): Add MPX bnd prefix.
9038         (output_set_got): Likewise.
9039         (print_reg): Avoid prefixes for bound registers.
9040         (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
9041         (ix86_print_operand_punct_valid_p): Likewise.
9042         (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
9043         UNSPEC_BNDLDX_ADDR.
9044         (ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
9045         (ix86_class_likely_spilled_p): Add bound regs support.
9046         (ix86_hard_regno_mode_ok): Likewise.
9047         (x86_order_regs_for_local_alloc): Likewise.
9048         (ix86_bnd_prefixed_insn_p): New.
9049         (ix86_builtins): Add
9050         IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
9051         IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
9052         IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
9053         IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
9054         IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
9055         IX86_BUILTIN_BNDUPPER.
9056         (builtin_isa): Add leaf_p and nothrow_p fields.
9057         (def_builtin): Initialize leaf_p and nothrow_p.
9058         (ix86_add_new_builtins): Handle leaf_p and nothrow_p
9059         flags.
9060         (bdesc_mpx): New.
9061         (bdesc_mpx_const): New.
9062         (ix86_init_mpx_builtins): New.
9063         (ix86_init_builtins): Call ix86_init_mpx_builtins.
9064         (ix86_emit_cmove): New.
9065         (ix86_emit_move_max): New.
9066         (ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
9067         IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
9068         IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
9069         IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
9070         IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
9071         IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
9072         (ix86_function_value_bounds): New.
9073         (ix86_builtin_mpx_function): New.
9074         (ix86_get_arg_address_for_bt): New.
9075         (ix86_load_bounds): New.
9076         (ix86_store_bounds): New.
9077         (ix86_load_returned_bounds): New.
9078         (ix86_store_returned_bounds): New.
9079         (ix86_mpx_bound_mode): New.
9080         (ix86_make_bounds_constant): New.
9081         (ix86_initialize_bounds):
9082         (TARGET_LOAD_BOUNDS_FOR_ARG): New.
9083         (TARGET_STORE_BOUNDS_FOR_ARG): New.
9084         (TARGET_LOAD_RETURNED_BOUNDS): New.
9085         (TARGET_STORE_RETURNED_BOUNDS): New.
9086         (TARGET_CHKP_BOUND_MODE): New.
9087         (TARGET_BUILTIN_CHKP_FUNCTION): New.
9088         (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
9089         (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
9090         (TARGET_CHKP_INITIALIZE_BOUNDS): New.
9091         (ix86_option_override_internal): Do not
9092         support x32 with MPX.
9093         (init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
9094         and force_bnd_pass.
9095         (function_arg_advance_32): Return number of used integer
9096         registers.
9097         (function_arg_advance_64): Likewise.
9098         (function_arg_advance_ms_64): Likewise.
9099         (ix86_function_arg_advance): Handle pointer bounds.
9100         (ix86_function_arg): Likewise.
9101         (ix86_function_value_regno_p): Mark fisrt bounds registers as
9102         possible function value.
9103         (ix86_function_value_1): Handle pointer bounds type/mode
9104         (ix86_return_in_memory): Likewise.
9105         (ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
9106         (ix86_expand_call): Generate returned bounds.
9107         (ix86_setup_incoming_vararg_bounds): New.
9108         (ix86_va_start): Initialize bounds for pointers in va_list.
9109         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
9110         * config/i386/i386.h (TARGET_MPX): New.
9111         (TARGET_MPX_P): New.
9112         (FIRST_PSEUDO_REGISTER): Fix to new value.
9113         (FIXED_REGISTERS): Add bound registers.
9114         (CALL_USED_REGISTERS): Likewise.
9115         (REG_ALLOC_ORDER): Likewise.
9116         (HARD_REGNO_NREGS): Likewise.
9117         (VALID_BND_REG_MODE): New.
9118         (FIRST_BND_REG): New.
9119         (LAST_BND_REG): New.
9120         (reg_class): Add BND_REGS.
9121         (REG_CLASS_NAMES): Likewise.
9122         (REG_CLASS_CONTENTS): Likewise.
9123         (BND_REGNO_P): New.
9124         (ANY_BND_REG_P): New.
9125         (BNDmode): New.
9126         (HI_REGISTER_NAMES): Add bound registers.
9127         (ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and
9128         stdarg fields.
9129         * config/i386/i386.md (UNSPEC_BNDMK): New.
9130         (UNSPEC_BNDMK_ADDR): New.
9131         (UNSPEC_BNDSTX): New.
9132         (UNSPEC_BNDLDX): New.
9133         (UNSPEC_BNDLDX_ADDR): New.
9134         (UNSPEC_BNDCL): New.
9135         (UNSPEC_BNDCU): New.
9136         (UNSPEC_BNDCN): New.
9137         (UNSPEC_MPX_FENCE): New.
9138         (UNSPEC_SIZEOF): New.
9139         (BND0_REG): New.
9140         (BND1_REG): New.
9141         (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9142         (length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9143         (prefix_rep): Check for bnd prefix.
9144         (prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9145         (length_nobnd): New.
9146         (length): Use length_nobnd when specified.
9147         (memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9148         (BND): New.
9149         (bnd_ptr): New.
9150         (BNDCHECK): New.
9151         (bndcheck): New.
9152         (*jcc_1): Add MPX bnd prefix.
9153         (*jcc_2): Likewise.
9154         (jump): Likewise.
9155         (*indirect_jump): Likewise.
9156         (*tablejump_1): Likewise.
9157         (simple_return_internal): Likewise.
9158         (simple_return_internal_long): Likewise.
9159         (simple_return_pop_internal): Likewise.
9160         (simple_return_indirect_internal): Likewise.
9161         (<mode>_mk): New.
9162         (*<mode>_mk): New.
9163         (mov<mode>): New.
9164         (*mov<mode>_internal_mpx): New.
9165         (<mode>_<bndcheck>): New.
9166         (*<mode>_<bndcheck>): New.
9167         (<mode>_ldx): New.
9168         (*<mode>_ldx): New.
9169         (<mode>_stx): New.
9170         (*<mode>_stx): New.
9171         move_size_reloc_<mode>): New.
9172         * config/i386/predicates.md (address_mpx_no_base_operand): New.
9173         (address_mpx_no_index_operand): New.
9174         (bnd_mem_operator): New.
9175         (symbol_operand): New.
9176         (x86_64_immediate_size_operand): New.
9177         * config/i386/i386.opt (mmpx): New.
9178         * config/i386/i386-builtin-types.def (BND): New.
9179         (ULONG): New.
9180         (BND_FTYPE_PCVOID_ULONG): New.
9181         (VOID_FTYPE_BND_PCVOID): New.
9182         (VOID_FTYPE_PCVOID_PCVOID_BND): New.
9183         (BND_FTYPE_PCVOID_PCVOID): New.
9184         (BND_FTYPE_PCVOID): New.
9185         (BND_FTYPE_BND_BND): New.
9186         (PVOID_FTYPE_PVOID_PVOID_ULONG): New.
9187         (PVOID_FTYPE_PCVOID_BND_ULONG): New.
9188         (ULONG_FTYPE_VOID): New.
9189         (PVOID_FTYPE_BND): New.
9190
9191 2014-11-05  Bernd Schmidt  <bernds@codesourcery.com>
9192
9193         * passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
9194         pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
9195         pass_cleanup_barriers, pass_delay_slots,
9196         pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
9197         pass_shorten_branches, pass_est_nothrow_function_flags,
9198         pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
9199         into pass_late_compilation.
9200         (pass_late_compilation): Add.
9201         * passes.c (pass_data_late_compilation, pass_late_compilation,
9202         make_pass_late_compilation): New.
9203         * timevar.def (TV_LATE_COMPILATION): New.
9204
9205         * target.def (omit_struct_return_reg): New data hook.
9206         * doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG.
9207         * doc/tm.texi: Regenerate.
9208         * function.c (expand_function_end): Use it.
9209
9210         * target.def (no_register_allocation): New data hook.
9211         * doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
9212         * doc/tm.texi: Regenerate.
9213         * ira.c (gate_ira): New function.
9214         (pass_data_ira): Set has_gate.
9215         (pass_ira): Add a gate function.
9216         (pass_data_reload): Likewise.
9217         (pass_reload): Add a gate function.
9218         (pass_ira): Use it.
9219         * reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
9220         no register allocation happens on the target and return.
9221         * final.c (alter_subreg): Ensure register is not a pseudo before
9222         calling simplify_subreg.
9223         (output_operand): Assert that x isn't a pseudo only if doing
9224         register allocation.
9225
9226         * dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
9227         global vars.
9228
9229         * optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
9230         sorry if necessary.
9231
9232 2014-11-05  Alex Velenko  <Alex.Velenko@arm.com>
9233
9234         * simplify-rtx.c (simplify_binary_operation_1): Div check added.
9235         * rtl.h (SUBREG_P): New macro added.
9236
9237 2014-11-05  Tejas Belagod  <tejas.belagod@arm.com>
9238
9239         * config/aarch64/aarch64-builtins.c
9240         (aarch64_build_scalar_type): Remove.
9241         (aarch64_scalar_builtin_types, aarch64_simd_type,
9242         aarch64_simd_type, aarch64_mangle_builtin_scalar_type,
9243         aarch64_mangle_builtin_vector_type,
9244         aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type,
9245         aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type,
9246         aarch64_init_simd_builtin_types,
9247         aarch64_init_simd_builtin_scalar_types): New.
9248         (aarch64_init_simd_builtins): Refactor.
9249         (aarch64_init_crc32_builtins): Fixup with qualifier.
9250         * config/aarch64/aarch64-protos.h
9251         (aarch64_mangle_builtin_type): Export.
9252         * config/aarch64/aarch64-simd-builtin-types.def: New.
9253         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove.
9254         (aarch64_mangle_type): Refactor.
9255         * config/aarch64/arm_neon.h: Declare vector types based on
9256         internal types.
9257         * config/aarch64/t-aarch64: Update dependency.
9258
9259 2014-11-04  Pat Haugen  <pthaugen@us.ibm.com>
9260
9261         * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
9262         atomic_update_decl): Guard declaration with #ifdef.
9263
9264 2014-11-04  Marek Polacek  <polacek@redhat.com>
9265
9266         * sanopt.c (sanopt_optimize_walker): Remove unused variables.
9267
9268 2014-11-04  Marek Polacek  <polacek@redhat.com>
9269
9270         * Makefile.in (OBJS): Add sanopt.o.
9271         (GTFILES): Add sanopt.c.
9272         * asan.h (asan_expand_check_ifn): Declare.
9273         * asan.c (asan_expand_check_ifn): No longer static.
9274         (class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move...
9275         * sanopt.c: ...here.  New file.
9276
9277 2014-11-04  Jiong Wang  <jiong.wang@arm.com>
9278 2014-11-04  Wilco Dijkstra  <wilco.dijkstra@arm.com>
9279
9280         PR target/63293
9281         * config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
9282         stack adjustment.
9283
9284 2014-11-04  Bernd Schmidt  <bernds@codesourcery.com>
9285
9286         * combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
9287         also verify that mode is equal to the mode of op0.
9288
9289         * bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
9290         emit into a sequence instead.
9291
9292 2014-11-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9293
9294         * config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.
9295
9296 2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
9297
9298         config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
9299         (reduc_smin_scal_<mode> *2): ...this; extract scalar result.
9300         (reduc_smax_<mode> *2): Rename to...
9301         (reduc_smax_scal_<mode> *2): ...this; extract scalar result.
9302         (reduc_umin_<mode> *2): Rename to...
9303         (reduc_umin_scal_<mode> *2): ...this; extract scalar result.
9304         (reduc_umax_<mode> *2): Rename to...
9305         (reduc_umax_scal_<mode> *2): ...this; extract scalar result.
9306
9307 2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
9308
9309         config/arm/neon.md (reduc_plus_*): Rename to...
9310         (reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.
9311
9312 2014-11-04  Michael Collison <michael.collison@linaro.org>
9313
9314         * config/aarch64/iterators.md (lconst_atomic): New mode attribute
9315         to support constraints for CONST_INT in atomic operations.
9316         * config/aarch64/atomics.md
9317         (atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
9318         (atomic_nand<mode>): Likewise.
9319         (atomic_fetch_<atomic_optab><mode>): Likewise.
9320         (atomic_fetch_nand<mode>): Likewise.
9321         (atomic_<atomic_optab>_fetch<mode>): Likewise.
9322         (atomic_nand_fetch<mode>): Likewise.
9323
9324 2014-11-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9325
9326         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in definition
9327         of __ARM_FEATURE_IDIV.
9328
9329 2014-11-04  Marek Polacek  <polacek@redhat.com>
9330
9331         * ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
9332
9333 2014-11-03  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9334
9335         * config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.
9336
9337 2014-11-04  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9338
9339         Revert:
9340         2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9341         * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
9342         Allow CC mode if HAVE_cbranchcc4.
9343
9344 2014-11-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9345
9346         * godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support
9347         with -fdump-go-spec.  Anonymous substructures are now flattened and
9348         replaced by their fields (record) or the first named, non-bitfield
9349         field (union).
9350
9351 2014-11-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9352
9353         * input.c (expand_location_to_spelling_point): Fix typo.
9354         (expansion_point_location_if_in_system_header): Fix comment.
9355
9356 2014-11-03  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9357
9358         * config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.
9359
9360 2014-11-03  Richard Biener  <rguenther@suse.de>
9361
9362         * tree-eh.c (operation_could_trap_helper_p): Handle conversions
9363         like ordinary operations.
9364         * gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
9365         as NOP_EXPR.
9366
9367 2014-11-03  Joseph Myers  <joseph@codesourcery.com>
9368
9369         * configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
9370         macros.
9371         * configure, config.h.in: Regenerate.
9372         * config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 ||
9373         (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
9374         (RS6000_GLIBC_ATOMIC_FENV): New macro.
9375         * config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 ||
9376         (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
9377         (RS6000_GLIBC_ATOMIC_FENV): New macro.
9378         * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl)
9379         (atomic_update_decl): New static variables.
9380         (rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]:
9381         Generate calls to __atomic_feholdexcept, __atomic_feclearexcept
9382         and __atomic_feupdateenv for soft-float and no-FPRs.
9383
9384 2014-11-03  Richard Biener  <rguenther@suse.de>
9385
9386         * match.pd: Add two abs patterns.  Announce tree_expr_nonnegative_p.
9387         Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR.
9388         * fold-const.c (fold_unary_loc): Remove them here.
9389         (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
9390         * gimple-fold.c (fold_gimple_assign): Remove now obsolete
9391         GIMPLE_UNARY_RHS case.
9392         (gimple_fold_stmt_to_constant_1): Likewise.
9393         (replace_stmt_with_simplification): Fix inverted comparison.
9394
9395 2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
9396
9397         PR tree-optimization/60770
9398         * tree-into-ssa.c (rewrite_update_stmt): Return whether the
9399         statement should be removed.
9400         (maybe_register_def): Likewise. Replace clobbers with default
9401         definitions.
9402         (rewrite_dom_walker::before_dom_children): Remove statement if
9403         rewrite_update_stmt says so.
9404         * tree-ssa-live.c: Include tree-ssa.h.
9405         (set_var_live_on_entry): Do not mark undefined variables as live.
9406         (verify_live_on_entry): Do not check undefined variables.
9407         * tree-ssa.h (ssa_undefined_value_p): New parameter for the case
9408         of partially undefined variables.
9409         * tree-ssa.c (ssa_undefined_value_p): Likewise.
9410         (execute_update_addresses_taken): Do not drop clobbers.
9411
9412 2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
9413
9414         PR tree-optimization/63666
9415         * fold-const.c: Include "optabs.h".
9416         (fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a
9417         can_vec_perm_p permutation to one that is not.
9418
9419 2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9420
9421         * ifcvt.c (noce_try_store_flag_mask): Check rtx cost.
9422
9423 2014-11-03  Andrew Pinski  <apinski@cavium.com>
9424
9425         * config/mips/mips-cpus.def (octeon3): New cpu.
9426         * config/mips/mips.c (mips_rtx_cost_data): Add octeon3.
9427         (mips_print_operand <case 'T', case 't'>): Fix a bug as the mode
9428         of the comparison no longer matches mode of the operands.
9429         (mips_issue_rate): Handle PROCESSOR_OCTEON3.
9430         * config/mips/mips.h (TARGET_OCTEON):  Add Octeon3.
9431         (TARGET_OCTEON2): Likewise.
9432         (TUNE_OCTEON): Add Octeon3.
9433         * config/mips/mips.md (processor): Add octeon3.
9434         * config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit.
9435         (octeon_arith): Add octeon3.
9436         (octeon_condmove): Remove.
9437         (octeon_condmove_o1): New reservation.
9438         (octeon_condmove_o2): New reservation.
9439         (octeon_condmove_o3_int_on_cc): New reservation.
9440         (octeon_load_o2): Add octeon3.
9441         (octeon_cop_o2): Likewise.
9442         (octeon_store): Likewise.
9443         (octeon_brj_o2): Likewise.
9444         (octeon_imul3_o2): Likewise.
9445         (octeon_imul_o2): Likewise.
9446         (octeon_mfhilo_o2): Likewise.
9447         (octeon_imadd_o2): Likewise.
9448         (octeon_idiv_o2_si): Likewise.
9449         (octeon_idiv_o2_di): Likewise.
9450         (octeon_fpu): Add to the automaton.
9451         (octeon_fpu): New cpu unit.
9452         (octeon_condmove_o2): Check for non floating point modes.
9453         (octeon_load_o2): Add prefetchx.
9454         (octeon_cop_o2): Don't check for octeon3.
9455         (octeon3_faddsubcvt): New reservation.
9456         (octeon3_fmul): Likewise.
9457         (octeon3_fmadd): Likewise.
9458         (octeon3_div_sf): Likewise.
9459         (octeon3_div_df): Likewise.
9460         (octeon3_sqrt_sf): Likewise.
9461         (octeon3_sqrt_df): Likewise.
9462         (octeon3_rsqrt_sf): Likewise.
9463         (octeon3_rsqrt_df): Likewise.
9464         (octeon3_fabsnegmov): Likewise.
9465         (octeon_fcond): Likewise.
9466         (octeon_fcondmov): Likewise.
9467         (octeon_fpmtc1): Likewise.
9468         (octeon_fpmfc1): Likewise.
9469         (octeon_fpload): Likewise.
9470         (octeon_fpstore): Likewise.
9471         * config/mips/mips-tables.opt: Regenerate.
9472         * doc/invoke.texi (-march=@var{arch}): Add octeon3.
9473
9474 2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9475
9476         * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
9477         Allow CC mode if HAVE_cbranchcc4.
9478
9479 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9480
9481         * config/arc/arc.c (write_ext_corereg_1): Delete.
9482         (arc_write_ext_corereg): Use FOR_EACH_SUBRTX.
9483
9484 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9485
9486         * config/arc/arc.c (arc600_corereg_hazard_1): Delete.
9487         (arc600_corereg_hazard): Use FOR_EACH_SUBRTX.
9488
9489 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9490
9491         * config/arc/arc.c (arc_rewrite_small_data_p): Constify argument.
9492         (small_data_pattern_1): Delete.
9493         (small_data_pattern): Use FOR_EACH_SUBRTX.
9494
9495 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9496
9497         * config/arc/arc.c: Include rtl-iter.h.
9498         (arc_rewrite_small_data_1): Delete.
9499         (arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR.
9500
9501 2014-11-02  Michael Collison  <michael.collison@linaro.org>
9502
9503         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
9504         to support vector modes.
9505         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
9506
9507 2014-11-01  Andrew MacLeod  <amacleod@redhat,com>
9508
9509         * optabs.h: Flatten insn-codes.h to source files.  Move some prototypes
9510         and structs to genopinit.c.  Adjust protyoptypes to match optabs.c.
9511         * genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
9512         * optabs.c: (gen_move_insn): Move to expr.c.
9513         * expr.h: Move protypes and enums to optabs.h.
9514         * expr.c: (gen_move_insn): Relocate from optabs.c.
9515         * genemit.c (main): Include insn-codes.h.
9516         * gengtype.c (open_base_files): Include insn-codes.h.
9517         * asan.c: Include insn-codes.h.
9518         * bb-reorder.c: Ditto.
9519         * builtins.c: Ditto.
9520         * calls.c: Ditto.
9521         * cfgexpand.c: Ditto.
9522         * cilk-common.c: Ditto.
9523         * combine.c: Ditto.
9524         * dojump.c: Ditto.
9525         * dse.c: Ditto.
9526         * except.c: Ditto.
9527         * explow.c: Ditto.
9528         * expmed.c: Ditto.
9529         * function.c: Ditto.
9530         * ifcvt.c: Ditto.
9531         * internal-fn.c: Ditto.
9532         * loop-unroll.c: Ditto.
9533         * lra.c: Ditto.
9534         * modulo-sched.c: Ditto.
9535         * omp-low.c: Ditto.
9536         * postreload.c: Ditto.
9537         * ree.c: Ditto.
9538         * reload.c: Ditto.
9539         * reload1.c: Ditto.
9540         * shrink-wrap.c: Ditto.
9541         * simplify-rtx.c: Ditto.
9542         * stmt.c: Ditto.
9543         * target-globals.c: Ditto.
9544         * targhooks.c: Ditto.
9545         * toplev.c: Ditto.
9546         * tree-if-conv.c: Ditto.
9547         * tree-ssa-forwprop.c: Ditto.
9548         * tree-ssa-loop-prefetch.c: Ditto.
9549         * tree-ssa-math-opts.c: Ditto.
9550         * tree-ssa-phiopt.c: Ditto.
9551         * tree-ssa-reassoc.c: Ditto.
9552         * tree-switch-conversion.c: Ditto.
9553         * tree-vect-data-refs.c: Ditto.
9554         * tree-vect-generic.c: Ditto.
9555         * tree-vect-loop.c: Ditto.
9556         * tree-vect-patterns.c: Ditto.
9557         * tree-vect-slp.c: Ditto.
9558         * tree-vect-stmts.c: Ditto.
9559         * tree-vrp.c: Ditto.
9560         * value-prof.c: Ditto.
9561         * config/aarch64/aarch64-builtins.c: Ditto.
9562         * config/alpha/alpha.c: Ditto.
9563         * config/arm/arm.c: Ditto.
9564         * config/cris/cris.c: Ditto.
9565         * config/epiphany/epiphany.c: Ditto.
9566         * config/frv/frv.c: Ditto.
9567         * config/h8300/h8300.c: Ditto.
9568         * config/ia64/ia64.c: Ditto.
9569         * config/iq2000/iq2000.c: Ditto.
9570         * config/m32c/m32c.c: Ditto.
9571         * config/mep/mep.c: Ditto.
9572         * config/microblaze/microblaze.c: Ditto.
9573         * config/mips/mips.c: Ditto.
9574         * config/mn10300/mn10300.c: Ditto.
9575         * config/moxie/moxie.c: Ditto.
9576         * config/msp430/msp430.c: Ditto.
9577         * config/nios2/nios2.c: Ditto.
9578         * config/pa/pa.c: Ditto.
9579         * config/rl78/rl78.c: Ditto.
9580         * config/rs6000/rs6000.c: Ditto.
9581         * config/rx/rx.c: Ditto.
9582         * config/s390/s390.c: Ditto.
9583         * config/sh/sh.c: Ditto.
9584         * config/sh/sh_treg_combine.cc: Ditto.
9585         * config/spu/spu.c: Ditto.
9586         * config/stormy16/stormy16.c: Ditto.
9587         * config/tilegx/mul-tables.c: Ditto.
9588         * config/tilegx/tilegx.c: Ditto.
9589         * config/tilepro/mul-tables.c: Ditto.
9590         * config/tilepro/tilepro.c: Ditto.
9591         * config/vax/vax.c: Ditto.
9592
9593 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9594
9595         * doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
9596         (CLEAR_BY_PIECES_P): Likewise.
9597         (SET_BY_PIECES_P): Likewise.
9598         (STORE_BY_PIECES_P): Likewise.
9599         * doc/tm.texi: Regenerate.
9600         * system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
9601         SET_BY_PIECES_P, STORE_BY_PIECES_P.
9602         * expr.c (MOVE_BY_PIECES_P): Remove.
9603         (CLEAR_BY_PIECES_P): Likewise.
9604         (SET_BY_PIECES_P): Likewise.
9605         (STORE_BY_PIECES_P): Likewise.
9606         (can_move_by_pieces): Rewrite in terms of
9607         targetm.use_by_pieces_infrastructure_p.
9608         (emit_block_move_hints): Likewise.
9609         (can_store_by_pieces): Likewise.
9610         (store_by_pieces): Likewise.
9611         (clear_storage_hints): Likewise.
9612         (emit_push_insn): Likewise.
9613         (expand_constructor): Likewise.
9614
9615 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9616
9617         * config/aarch64/aarch64.c
9618         (aarch64_use_by_pieces_infrastructre_p): New.
9619         (TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise.
9620         * config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete.
9621
9622 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9623
9624         * config/mips/mips.h (MOVE_BY_PIECES_P): Remove.
9625         (STORE_BY_PIECES_P): Likewise.
9626         * config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9627         (mips_move_by_pieces_p): Rename to...
9628         (mips_use_by_pieces_infrastructure_p): ...this, use new hook
9629         parameters, use the default hook implementation as a
9630         fall-back.
9631
9632 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9633
9634         * config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9635         (sh_use_by_pieces_infrastructure_p): Likewise.
9636         * config/sh/sh.h (MOVE_BY_PIECES_P): Remove.
9637         (STORE_BY_PIECES_P): Likewise.
9638         (SET_BY_PIECES_P): Likewise.
9639
9640 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9641
9642         * config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9643         (arc_use_by_pieces_infrastructure_p): Likewise.
9644         * confir/arc/arc.h (MOVE_BY_PIECES_P): Delete.
9645         (CAN_MOVE_BY_PIECES): Likewise.
9646
9647 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9648
9649         * config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
9650         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
9651         * config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
9652         (CLEAR_BY_PIECES): Likewise.
9653         (SET_BY_PIECES): Likewise.
9654         (STORE_BY_PIECES): Likewise.
9655
9656 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9657
9658         * target.def (use_by_pieces_infrastructure_p): New.
9659         * doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
9660         is deprecated.
9661         (STORE_BY_PIECES_P): Likewise.
9662         (CLEAR_BY_PIECES_P): Likewise.
9663         (SET_BY_PIECES_P): Likewise.
9664         (TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook.
9665         * doc/tm.texi: Regenerate.
9666         * expr.c (MOVE_BY_PIECES_P): Rewrite in terms of
9667         TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.
9668         (STORE_BY_PIECES_P): Likewise.
9669         (CLEAR_BY_PIECES_P): Likewise.
9670         (SET_BY_PIECES_P): Likewise.
9671         (STORE_MAX_PIECES): Move to...
9672         * defaults.h (STORE_MAX_PIECES): ...here.
9673         * targhooks.c (get_move_ratio): New.
9674         (default_use_by_pieces_infrastructure_p): Likewise.
9675         * targhooks.h (default_use_by_pieces_infrastructure_p): New.
9676         * target.h (by_pieces_operation): New.
9677
9678 2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
9679
9680         PR target/63702
9681         * config/i386/i386.c (ix86_expand_args_builtin): Remove extra
9682         assignment to 'nargs' variable.
9683
9684 2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
9685
9686         PR target/63620
9687         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
9688         * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
9689         * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
9690         be reloaded through memory.
9691         (*pushxf): Ditto.
9692         (*pushdf): Ditto.
9693
9694 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
9695
9696         PR rtl-optimization/63659
9697         * ree.c (update_reg_equal_equiv_notes): New function.
9698         (combine_set_extension, transform_ifelse): Use it.
9699
9700 2014-10-31  Jeff Law  <law@redhat.com>
9701
9702         * doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+)
9703         and Jonny Grant (collect2).
9704
9705 2014-10-31  Richard Biener  <rguenther@suse.de>
9706
9707         * builtins.c (fold_builtin_atomic_always_lock_free): Use
9708         CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where
9709         approprate.
9710         (fold_builtin_expect): Likewise.
9711         (integer_valued_real_p): Likewise.
9712         * cfgexpand.c (expand_debug_expr): Likewise.
9713         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Likewise.
9714         (find_foldable_builtin_expect): Likewise.
9715         * trans-mem.c (thread_private_new_memory): Likewise.
9716         * tree-affine.c (aff_combination_expand): Likewise.
9717         * tree-data-ref.c (initialize_matrix_A): Likewise.
9718         * tree-inline.c (copy_bb): Likewise.
9719         * tree-pretty-print.c (dump_function_name): Likewise.
9720         (print_call_name): Likewise.
9721         * tree-ssa-forwprop.c (constant_pointer_difference): Likewise.
9722         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise.
9723         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
9724         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Likewise.
9725         (vect_recog_widen_mult_pattern): Likewise.
9726         (vect_operation_fits_smaller_type): Likewise.
9727         * tree-vrp.c (find_assert_locations_1): Likewise.
9728         * tree-ssa-dom.c (initialize_hash_element): Canonicalize
9729         converts to NOP_EXPR.
9730
9731 2014-10-31  Richard Biener  <rguenther@suse.de>
9732
9733         * genmatch.c (expr::gen_transform): Use NOP_EXPRs instead of
9734         CONVERT_EXPRs in generated code.
9735         (dt_simplify::gen): Likewise.
9736
9737 2014-10-31  Evgeny Stupachenko  <evstupac@gmail.com>
9738
9739         PR target/63534
9740         * config/i386/i386.c (ix86_init_pic_reg): Emit SET_GOT to
9741         REAL_PIC_OFFSET_TABLE_REGNUM for mcount profiling.
9742         (ix86_save_reg): Save REAL_PIC_OFFSET_TABLE_REGNUM when profiling
9743         using mcount in 32bit PIC mode.
9744         (ix86_elim_entry_set_got): New.
9745         (ix86_expand_prologue): For the mcount profiling emit new SET_GOT
9746         in PROLOGUE, delete initial if possible.
9747
9748 2014-10-31  Eric Botcazou  <ebotcazou@adacore.com>
9749
9750         * ipa-inline.c (want_inline_small_function_p): Fix typo and formatting.
9751         (want_inline_function_to_all_callers_p): Fix formatting and simplify.
9752
9753 2014-10-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9754
9755         PR tree-optimization/63259
9756         * tree-ssa-math-opts.c (bswap_replace): Replace expression by a
9757         rotation left if it is a 16 bit byte swap.
9758         (pass_optimize_bswap::execute): Also consider bswap in LROTATE_EXPR
9759         and RROTATE_EXPR statements if it is a byte rotation.
9760
9761 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
9762
9763         PR sanitizer/63697
9764         * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
9765         MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
9766         instead of vr0.min - vr1.min and vr0.max - vr1.max.
9767
9768 2014-10-31  Max Ostapenko  <m.ostapenko@partner.samsung.com>
9769
9770         PR ipa/63696
9771         * ipa-icf.c (sem_function::~sem_function): Change free to delete to avoid
9772         alloc-dealloc mismatch with new, called in ipa_icf::sem_function::init.
9773
9774 2014-10-30  Felix Yang  <felix.yang@huawei.com>
9775
9776         * config/xtensa/xtensa.h (TARGET_LOOPS): New Macro.
9777         * config/xtensa/xtensa.c: Include dumpfile.h and hw-doloop.h.
9778         (xtensa_reorg, xtensa_reorg_loops): New.
9779         (xtensa_can_use_doloop_p, xtensa_invalid_within_doloop): New.
9780         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg): New.
9781         (xtensa_emit_loop_end): Emit the zero-overhead loop end label.
9782         (xtensa_doloop_hooks): Define.
9783         * config/xtensa/xtensa.md (doloop_end, loop_end): New
9784         (zero_cost_loop_start): Rewritten.
9785         (zero_cost_loop_end): Likewise.
9786
9787 2014-10-30  Steve Ellcey  <sellcey@imgtec.com>
9788
9789         * config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.
9790
9791 2014-10-30  Richard Biener  <rguenther@suse.de>
9792
9793         * genmatch.c: Remove <map>, <utility> and <string> includes.
9794         Include ggc.h and hash-map.h.
9795         (ggc_internal_cleared_alloc): Provide stub definition.
9796         (ggc_free): Likewise.
9797         (struct capture_id_map_hasher): New traits for hash_map.
9798         (cid_map_t): New typedef.
9799         (everywhere else): Replace std::map use with cid_map_t.
9800         * hash-map.h (hash_map::elements): New member function.
9801         * Makefile.in (build/genmatch.o): Add $(HASH_TABLE_H),
9802         hash-map.h and $(GGC_H) as dependency.
9803
9804 2014-10-30  Richard Biener  <rguenther@suse.de>
9805
9806         * genmatch.c (capture_info::walk_c_expr): Ignore capture
9807         uses inside TREE_TYPE ().
9808         * gimple-ssa-strength-reduction.c (stmt_cost): Use CASE_CONVERT.
9809         (find_candidates_dom_walker::before_dom_children): Likewise.
9810         (replace_mult_candidate): Use CONVERT_EXPR_CODE_P.
9811         (replace_profitable_candidates): Likewise.
9812         * tree-ssa-dom.c (initialize_hash_element): Canonicalize
9813         CONVERT_EXPR_CODE_P to CONVERT_EXPR.
9814         * convert.c (convert_to_integer): Use CASE_CONVERT.
9815
9816 2014-10-30  Richard Biener  <rguenther@suse.de>
9817
9818         * match.pd: Implement more patterns that simplify to a single value.
9819         * fold-const.c (fold_binary_loc): Remove them here.
9820         * tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise.
9821         (fwprop_ssa_val): Remove restriction on single uses.
9822
9823 2014-10-30  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9824
9825         * config/avr/driver-avr.c (avr_set_current_device): Remove.
9826
9827 2014-10-30  Martin Liska  <mliska@suse.cz>
9828
9829         PR ipa/63574
9830         PR ipa/63664
9831         * ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added.
9832         (func_checker::compare_gimple_label): Simlified comparison introduced.
9833         * ipa-icf-gimple.h: Missing comment added.
9834
9835 2014-10-30  Jeff Law  <law@redhat.com>
9836
9837         * config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen
9838         argument from rtx to rtx_insn *.
9839         (compute_movmem_length, compute_clrmem_length): Likewise.
9840         (copy_fp_args, length_fp_args): Likewise.
9841         * config/pa/pa.c (legitimize_pic_address): Promote local variable
9842         "insn" from rtx to rtx_insn *.
9843         (legitimize_tls_address, pa_emit_move_sequence): Likewise.
9844         (pa_output_block_move, store_reg, store_reg_modify): Likewise.
9845         (set_reg_plus_d, pa_expand_prologue, hppa_profile_hook): Likewise.
9846         (branch_to_delay_slot_p, branch_needs_nop_p, use_skip_p): Likewise.
9847         (pa_output_arg_descriptor): Strengthen argument to an rtx_insn *.
9848         (compute_movmem_length, compute_clrmem_length): Likewise.
9849         (copy_fp-args, length_fp_args): Likewise.
9850
9851 2014-10-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9852
9853         * config/arm/arm.h (MACHMODE): Treat machine_mode as a
9854         scalar typedef.
9855         (CUMULATIVE_ARGS): Guard against target includes.
9856         (machine_function): Likewise.
9857
9858 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9859
9860         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
9861         recog state after aarch64_prev_real_insn call.
9862
9863 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9864
9865         * config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode.
9866
9867 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9868
9869         * config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode.
9870         (struct machine_function): Gate definition on
9871         !defined(USED_FOR_TARGET).
9872
9873 2014-10-29  DJ Delorie  <dj@redhat.com>
9874
9875         * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
9876
9877 2014-10-29  Martin Liska  <mliska@suse.cz>
9878
9879         PR ipa/63587
9880         * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
9881         to local declarations.
9882         * function.c (add_local_decl): Implementation moved from header
9883         file, assert introduced for tree type.
9884         * function.h: Likewise.
9885
9886 2014-10-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9887
9888         * godump.c (go_format_type): Represent "float _Complex" and
9889         "double _Complex" as complex64 or complex128 in Go, as appropriate.
9890
9891 2014-10-29  Richard Biener  <rguenther@suse.de>
9892
9893         * match.pd: Implement a first set of conversion patterns.
9894         * fold-const.c (fold_unary_loc): Remove them here.
9895         * tree-ssa-forwprop.c (simplify_vce): Remove.
9896         (pass_forwprop::execute): Do not call simplify_vce.
9897
9898 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
9899
9900         * addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c,
9901         builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h,
9902         cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c,
9903         config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md,
9904         config/aarch64/aarch64.c, config/aarch64/aarch64.h,
9905         config/aarch64/aarch64.md, config/alpha/alpha-protos.h,
9906         config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c,
9907         config/arc/arc.h, config/arc/predicates.md,
9908         config/arm/aarch-common-protos.h, config/arm/aarch-common.c,
9909         config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
9910         config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md,
9911         config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c,
9912         config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c,
9913         config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md,
9914         config/cr16/cr16-protos.h, config/cr16/cr16.c,
9915         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md,
9916         config/darwin-protos.h, config/darwin.c,
9917         config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c,
9918         config/epiphany/epiphany.md, config/fr30/fr30.c,
9919         config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md,
9920         config/h8300/h8300-protos.h, config/h8300/h8300.c,
9921         config/i386/i386-builtin-types.awk, config/i386/i386-protos.h,
9922         config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md,
9923         config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h,
9924         config/ia64/ia64.c, config/iq2000/iq2000-protos.h,
9925         config/iq2000/iq2000.c, config/iq2000/iq2000.md,
9926         config/lm32/lm32-protos.h, config/lm32/lm32.c,
9927         config/m32c/m32c-protos.h, config/m32c/m32c.c,
9928         config/m32r/m32r-protos.h, config/m32r/m32r.c,
9929         config/m68k/m68k-protos.h, config/m68k/m68k.c,
9930         config/mcore/mcore-protos.h, config/mcore/mcore.c,
9931         config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c,
9932         config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c,
9933         config/mips/mips-protos.h, config/mips/mips.c,
9934         config/mmix/mmix-protos.h, config/mmix/mmix.c,
9935         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
9936         config/moxie/moxie.c, config/msp430/msp430-protos.h,
9937         config/msp430/msp430.c, config/nds32/nds32-cost.c,
9938         config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
9939         config/nds32/nds32-protos.h, config/nds32/nds32.c,
9940         config/nios2/nios2-protos.h, config/nios2/nios2.c,
9941         config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h,
9942         config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c,
9943         config/rs6000/altivec.md, config/rs6000/rs6000-c.c,
9944         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
9945         config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c,
9946         config/s390/predicates.md, config/s390/s390-protos.h,
9947         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
9948         config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c,
9949         config/sh/sh.md, config/sparc/predicates.md,
9950         config/sparc/sparc-protos.h, config/sparc/sparc.c,
9951         config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c,
9952         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
9953         config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c,
9954         config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h,
9955         config/tilepro/tilepro.c, config/v850/v850-protos.h,
9956         config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h,
9957         config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h,
9958         config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h,
9959         dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi,
9960         doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c,
9961         dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h,
9962         except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c,
9963         fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h,
9964         fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c,
9965         genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c,
9966         graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c,
9967         internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c,
9968         ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h,
9969         libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c,
9970         loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c,
9971         lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c,
9972         lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h,
9973         output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h,
9974         recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c,
9975         regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h,
9976         rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c,
9977         sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c,
9978         simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def,
9979         targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c,
9980         tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c,
9981         tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c,
9982         tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c,
9983         tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c,
9984         tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c,
9985         tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c,
9986         tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c,
9987         tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
9988         tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c,
9989         var-tracking.c, varasm.c: Remove redundant enum from
9990         machine_mode.
9991         * gengtype.c (main): Treat machine_mode as a scalar typedef.
9992         * genmodes.c (emit_insn_modes_h): Hide inline functions if
9993         USED_FOR_TARGET.
9994
9995 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
9996
9997         PR rtl-optimization/63340 (part 2)
9998         * rtl.h (invalid_mode_change_p): Delete.
9999         (valid_mode_changes_for_regno): New function.
10000         * reginfo.c (invalid_mode_change_p): Delete.
10001         (valid_mode_changes_for_regno): New function.
10002         * ira-costs.c (setup_regno_cost_classes_by_aclass): Restrict the
10003         classes to registers that are allowed by valid_mode_changes_for_regno.
10004         (setup_regno_cost_classes_by_mode): Likewise.
10005         (print_allocno_costs): Remove invalid_mode_change_p test.
10006         (print_pseudo_costs, find_costs_and_classes): Likewise.
10007
10008 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
10009
10010         PR rtl-optimization/63340 (part 1)
10011         * ira-costs.c (all_cost_classes): New variable.
10012         (complete_cost_classes): New function, split out from...
10013         (setup_cost_classes): ...here.
10014         (initiate_regno_cost_classes): Set up all_cost_classes.
10015         (restrict_cost_classes): New function.
10016         (setup_regno_cost_classes_by_aclass): Restrict the cost classes to
10017         registers that are valid for the register's mode.
10018         (setup_regno_cost_classes_by_mode): Model the mode cache as a
10019         restriction of all_cost_classes to a particular mode.
10020         (print_allocno_costs): Remove contains_reg_of_mode check.
10021         (print_pseudo_costs, find_costs_and_classes): Likewise.
10022
10023 2014-10-29  Richard Biener  <rguenther@suse.de>
10024
10025         PR tree-optimization/63666
10026         * tree-vect-slp.c (vect_get_mask_element): Properly handle
10027         accessing out-of-bound elements.
10028
10029 2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10030             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10031             Anna Tikhonova  <anna.tikhonova@intel.com>
10032             Ilya Tocar  <ilya.tocar@intel.com>
10033             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10034             Ilya Verbin  <ilya.verbin@intel.com>
10035             Kirill Yukhin  <kirill.yukhin@intel.com>
10036             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10037
10038         * config/i386/i386.md
10039         (movhi_internal): Always detect maskmov.
10040         (movqi_internal): Fix target check.
10041
10042 2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10043             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10044             Anna Tikhonova  <anna.tikhonova@intel.com>
10045             Ilya Tocar  <ilya.tocar@intel.com>
10046             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10047             Ilya Verbin  <ilya.verbin@intel.com>
10048             Kirill Yukhin  <kirill.yukhin@intel.com>
10049             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10050
10051         * config/i386/avx512bwintrin.h: Add new intrinsics.
10052         * config/i386/avx512vlbwintrin.h: Ditto.
10053         * config/i386/avx512vlintrin.h: Ditto.
10054
10055 2014-10-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10056
10057         * godump.c (precision_to_units): New helper function.
10058         (go_append_artificial_name): Ditto.
10059         (go_append_decl_name): Ditto.
10060         (go_append_bitfield): Ditto.
10061         (go_get_uinttype_for_precision): Ditto.
10062         (go_append_padding): Ditto.
10063         (go_force_record_alignment): Ditto.
10064         (go_format_type): Represent unions with an array of uints of the size
10065         of the alignment in go.  This fixes the 'random' size of the union's
10066         representation using just the first field.
10067         (go_format_type): Add argument that indicates whether a record is
10068         nested (used for generation of artificial go names).
10069         (go_output_fndecl): Adapt to new go_format_type signature.
10070         (go_output_typedef): Ditto.
10071         (go_output_var): Ditto.
10072         (go_output_var): Prefer to output type as alias (typedef).
10073         (go_format_type): Bitfields in records are simulated as arrays of bytes
10074         in go.
10075
10076         * godump.c (go_format_type): Fix handling of arrays with zero elements.
10077
10078 2014-10-28  Andrew MacLeod  <amacleod@redhat.com>
10079
10080         * cgraph.h: Flatten.  Remove all include files.
10081         (symbol_table::initialize): Move to cgraph.c.
10082         * cgraph.c: Adjust include files.
10083         (symbol_table::initialize): Relocate from cgraph.h.
10084         * gengtype.c (open_base_files): Adjust include files.
10085         * gccplugin.h: Add hash-map.h, is-a.h, plugin-api.h, and ipa-ref.h to
10086         included files.
10087         * ipa-inline.h: Remove all include files.
10088         * ipa-prop.h: Ditto.
10089         * ipa-reference.h: Ditto.
10090         * ipa-utils.h: Ditto:
10091         * lto-streamer.h: Remove cgraph.h from include list.
10092         * asan.c: Adjust include files.
10093         * auto-profile.c: Ditto.
10094         * bb-reorder.c: Ditto.
10095         * calls.c: Ditto.
10096         * cfgexpand.c: Ditto.
10097         * cgraphbuild.c: Ditto.
10098         * cgraphclones.c: Ditto.
10099         * cgraphunit.c: Ditto.
10100         * combine.c: Ditto.
10101         * coverage.c: Ditto.
10102         * data-streamer.c: Ditto.
10103         * data-streamer-in.c: Ditto.
10104         * data-streamer-out.c: Ditto.
10105         * dbxout.c: Ditto.
10106         * dwarf2out.c: Ditto.
10107         * except.c: Ditto.
10108         * expr.c: Ditto.
10109         * final.c: Ditto.
10110         * fold-const.c: Ditto.
10111         * ggc-page.c: Ditto.
10112         * gimple-fold.c: Ditto.
10113         * gimple-iterator.c: Ditto.
10114         * gimple-pretty-print.c: Ditto.
10115         * gimple-streamer-in.c: Ditto.
10116         * gimple-streamer-out.c: Ditto.
10117         * gimplify.c: Ditto.
10118         * ipa.c: Ditto.
10119         * ipa-comdats.c: Ditto.
10120         * ipa-cp.c: Ditto.
10121         * ipa-devirt.c: Ditto.
10122         * ipa-icf.c: Ditto.
10123         * ipa-icf-gimple.c: Ditto.
10124         * ipa-inline-analysis.c: Ditto.
10125         * ipa-inline.c: Ditto.
10126         * ipa-inline-transform.c: Ditto.
10127         * ipa-polymorphic-call.c: Ditto.
10128         * ipa-profile.c: Ditto.
10129         * ipa-prop.c: Ditto.
10130         * ipa-pure-const.c: Ditto.
10131         * ipa-ref.c: Ditto.
10132         * ipa-reference.c: Ditto.
10133         * ipa-split.c: Ditto.
10134         * ipa-utils.c: Ditto.
10135         * ipa-visibility.c: Ditto.
10136         * langhooks.c: Ditto.
10137         * lto-cgraph.c: Ditto.
10138         * lto-compress.c: Ditto.
10139         * lto-opts.c: Ditto.
10140         * lto-section-in.c: Ditto.
10141         * lto-section-out.c: Ditto.
10142         * lto-streamer.c: Ditto.
10143         * lto-streamer-in.c: Ditto.
10144         * lto-streamer-out.c: Ditto.
10145         * omp-low.c: Ditto.
10146         * opts-global.c: Ditto.
10147         * passes.c: Ditto.
10148         * predict.c: Ditto.
10149         * print-tree.c: Ditto.
10150         * profile.c: Ditto.
10151         * ree.c: Ditto.
10152         * stor-layout.c: Ditto.
10153         * symtab.c: Ditto.
10154         * toplev.c: Ditto.
10155         * trans-mem.c: Ditto.
10156         * tree.c: Ditto.
10157         * tree-cfg.c: Ditto.
10158         * tree-eh.c: Ditto.
10159         * tree-emutls.c: Ditto.
10160         * tree-inline.c: Ditto.
10161         * tree-nested.c: Ditto.
10162         * tree-pretty-print.c: Ditto.
10163         * tree-profile.c: Ditto.
10164         * tree-sra.c: Ditto.
10165         * tree-ssa-alias.c: Ditto.
10166         * tree-ssa-loop-ivcanon.c: Ditto.
10167         * tree-ssa-loop-ivopts.c: Ditto.
10168         * tree-ssa-pre.c: Ditto.
10169         * tree-ssa-structalias.c: Ditto.
10170         * tree-streamer.c: Ditto.
10171         * tree-streamer-in.c: Ditto.
10172         * tree-streamer-out.c: Ditto.
10173         * tree-switch-conversion.c: Ditto.
10174         * tree-tailcall.c: Ditto.
10175         * tree-vect-data-refs.c: Ditto.
10176         * tree-vectorizer.c: Ditto.
10177         * tree-vect-stmts.c: Ditto.
10178         * tsan.c: Ditto.
10179         * ubsan.c: Ditto.
10180         * value-prof.c: Ditto.
10181         * varasm.c: Ditto.
10182         * varpool.c: Ditto.
10183         * config/arm/arm.c: Ditto.
10184         * config/bfin/bfin.c: Ditto.
10185         * config/c6x/c6x.c: Ditto.
10186         * config/cris/cris.c: Ditto.
10187         * config/darwin.c: Ditto.
10188         * config/darwin-c.c: Ditto.
10189         * config/i386/i386.c: Ditto.
10190         * config/i386/winnt.c: Ditto.
10191         * config/microblaze/microblaze.c: Ditto.
10192         * config/mips/mips.c: Ditto.
10193         * config/rs6000/rs6000.c: Ditto.
10194         * config/rx/rx.c: Ditto.
10195
10196 2014-10-28  Richard Biener  <rguenther@suse.de>
10197
10198         * gimple-fold.h (follow_single_use_edges): Declare.
10199         * gimple-fold.c (follow_single_use_edges): New function.
10200         (gimple_fold_stmt_to_constant_1): Dispatch to gimple_simplify.
10201         * tree-ssa-propagate.c
10202         (substitute_and_fold_dom_walker::before_dom_children): Allow
10203         following single-use edges when folding stmts we propagated into.
10204
10205 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10206             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10207             Anna Tikhonova  <anna.tikhonova@intel.com>
10208             Ilya Tocar  <ilya.tocar@intel.com>
10209             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10210             Ilya Verbin  <ilya.verbin@intel.com>
10211             Kirill Yukhin  <kirill.yukhin@intel.com>
10212             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10213
10214         * config/i386/avx512bwintrin.h: New.
10215         * config/i386/avx512dqintrin.h: Ditto.
10216         * config/i386/avx512vlbwintrin.h: Ditto.
10217         * config/i386/avx512vldqintrin.h: Ditto.
10218         * config/i386/avx512vlintrin.h: Ditto.
10219         * config/i386/immintrin.h: Include avx512vlintrin.h, avx512bwintrin.h,
10220         avx512dqintrin.h, avx512vlbwintrin.h, avx512vldqintrin.h.
10221
10222 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10223             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10224             Anna Tikhonova  <anna.tikhonova@intel.com>
10225             Ilya Tocar  <ilya.tocar@intel.com>
10226             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10227             Ilya Verbin  <ilya.verbin@intel.com>
10228             Kirill Yukhin  <kirill.yukhin@intel.com>
10229             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10230
10231         * config/i386/i386.c
10232         (ix86_expand_args_builtin): Handle avx_vpermilv4df_mask,
10233         avx_shufpd256_mask, avx_vpermilv2df_mask.
10234
10235 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10236             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10237             Anna Tikhonova  <anna.tikhonova@intel.com>
10238             Ilya Tocar  <ilya.tocar@intel.com>
10239             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10240             Ilya Verbin  <ilya.verbin@intel.com>
10241             Kirill Yukhin  <kirill.yukhin@intel.com>
10242             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10243
10244         * config/i386/i386.c
10245         (ix86_init_mmx_sse_builtins):
10246         Define __builtin_ia32_gather3siv2df, __builtin_ia32_gather3siv4df,
10247         __builtin_ia32_gather3div2df, __builtin_ia32_gather3div4df,
10248         __builtin_ia32_gather3siv4sf, __builtin_ia32_gather3siv8sf,
10249         __builtin_ia32_gather3div4sf, __builtin_ia32_gather3div8sf,
10250         __builtin_ia32_gather3siv2di, __builtin_ia32_gather3siv4di,
10251         __builtin_ia32_gather3div2di, __builtin_ia32_gather3div4di,
10252         __builtin_ia32_gather3siv4si, __builtin_ia32_gather3siv8si,
10253         __builtin_ia32_gather3div4si, __builtin_ia32_gather3div8si,
10254         __builtin_ia32_gather3altsiv4df, __builtin_ia32_gather3altdiv8sf,
10255         __builtin_ia32_gather3altsiv4di, __builtin_ia32_gather3altdiv8si,
10256         __builtin_ia32_scattersiv8sf, __builtin_ia32_scattersiv4sf,
10257         __builtin_ia32_scattersiv4df, __builtin_ia32_scattersiv2df,
10258         __builtin_ia32_scatterdiv8sf, __builtin_ia32_scatterdiv4sf,
10259         __builtin_ia32_scatterdiv4df, __builtin_ia32_scatterdiv2df,
10260         __builtin_ia32_scattersiv8si, __builtin_ia32_scattersiv4si,
10261         __builtin_ia32_scattersiv4di, __builtin_ia32_scattersiv2di,
10262         __builtin_ia32_scatterdiv8si, __builtin_ia32_scatterdiv4si,
10263         __builtin_ia32_scatterdiv4di, __builtin_ia32_scatterdiv2di.
10264
10265 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10266             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10267             Anna Tikhonova  <anna.tikhonova@intel.com>
10268             Ilya Tocar  <ilya.tocar@intel.com>
10269             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10270             Ilya Verbin  <ilya.verbin@intel.com>
10271             Kirill Yukhin  <kirill.yukhin@intel.com>
10272             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10273
10274         * config/i386/i386.c
10275         (ix86_builtins): Add IX86_BUILTIN_GATHER3ALTSIV4DF,
10276         IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTSIV4DI,
10277         IX86_BUILTIN_GATHER3ALTDIV8SI.
10278         (ix86_expand_builtin):
10279         Handle IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTDIV8SI,
10280         IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV4DI,
10281         IX86_BUILTIN_SCATTERDIV2DF, IX86_BUILTIN_SCATTERDIV4DF,
10282         IX86_BUILTIN_GATHER3ALTSIV4DI, IX86_BUILTIN_GATHER3ALTSIV4DF,
10283         IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
10284         IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3DIV8SI,
10285         IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV4DI,
10286         IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3SIV8SF,
10287         IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
10288         IX86_BUILTIN_GATHER3DIV2DI, IX86_BUILTIN_GATHER3DIV4DI,
10289         IX86_BUILTIN_SCATTERDIV4SF, IX86_BUILTIN_SCATTERSIV2DI,
10290         IX86_BUILTIN_GATHER3SIV2DI, IX86_BUILTIN_GATHER3SIV4SI,
10291         IX86_BUILTIN_GATHER3SIV4SF, IX86_BUILTIN_GATHER3SIV2DF,
10292         IX86_BUILTIN_SCATTERSIV2DF, IX86_BUILTIN_SCATTERDIV4SI,
10293         IX86_BUILTIN_SCATTERSIV4SF, IX86_BUILTIN_SCATTERSIV4SI,
10294         IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
10295         IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV8SF,
10296         IX86_BUILTIN_GATHER3DIV4SF, IX86_BUILTIN_SCATTERDIV8SF.
10297         (ix86_vectorize_builtin_gather): Update V2DFmode, V4DFmode, V2DImode,
10298         V4DImode, V4SFmode, V8SFmode, V4SImode, V8SImode.
10299
10300 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10301             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10302             Anna Tikhonova  <anna.tikhonova@intel.com>
10303             Ilya Tocar  <ilya.tocar@intel.com>
10304             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10305             Ilya Verbin  <ilya.verbin@intel.com>
10306             Kirill Yukhin  <kirill.yukhin@intel.com>
10307             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10308
10309         * config/i386/i386-builtin-types.def
10310         (SHORT): New.
10311         (V32HI): Ditto.
10312         (V12QI): Ditto.
10313         (V14QI): Ditto.
10314         (V32SI): Ditto.
10315         (V8UDI): Ditto.
10316         (V16USI): Ditto.
10317         (V32UHI): Ditto.
10318         (PSHORT): Ditto.
10319         (PV32QI): Ditto.
10320         (PV32HI): Ditto.
10321         (PV64QI): Ditto.
10322         (PCV8HI): Ditto.
10323         (PCV16QI): Ditto.
10324         (PCV16HI): Ditto.
10325         (PCV32QI): Ditto.
10326         (PCV32HI): Ditto.
10327         (PCV64QI): Ditto.
10328         (V4SF_FTYPE_V2DF_V4SF_QI): Ditto.
10329         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
10330         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
10331         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
10332         (V16SF_FTYPE_V16HI): Ditto.
10333         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
10334         (V16SF_FTYPE_V16SI): Ditto.
10335         (V4DI_FTYPE_V4DI): Ditto.
10336         (V16SI_FTYPE_V16SF): Ditto.
10337         (V8DI_FTYPE_PV2DI): Ditto.
10338         (V8DF_FTYPE_PV2DF): Ditto.
10339         (V4DI_FTYPE_PV2DI): Ditto.
10340         (V4DF_FTYPE_PV2DF): Ditto.
10341         (V16SI_FTYPE_PV2SI): Ditto.
10342         (V16SF_FTYPE_PV2SF): Ditto.
10343         (V8SF_FTYPE_FLOAT): Ditto.
10344         (V4SF_FTYPE_FLOAT): Ditto.
10345         (V4DF_FTYPE_DOUBLE): Ditto.
10346         (V8SF_FTYPE_PV4SF): Ditto.
10347         (V8SI_FTYPE_PV4SI): Ditto.
10348         (V4SI_FTYPE_PV2SI): Ditto.
10349         (V8SF_FTYPE_PV2SF): Ditto.
10350         (V8SI_FTYPE_PV2SI): Ditto.
10351         (V16SF_FTYPE_PV8SF): Ditto.
10352         (V16SI_FTYPE_PV8SI): Ditto.
10353         (V8DI_FTYPE_V8SF): Ditto.
10354         (V4DI_FTYPE_V4SF): Ditto.
10355         (V2DI_FTYPE_V4SF): Ditto.
10356         (V64QI_FTYPE_QI): Ditto.
10357         (V32HI_FTYPE_HI): Ditto.
10358         (V16UHI_FTYPE_V16UHI): Ditto.
10359         (V32UHI_FTYPE_V32UHI): Ditto.
10360         (V2UDI_FTYPE_V2UDI): Ditto.
10361         (V4UDI_FTYPE_V4UDI): Ditto.
10362         (V8UDI_FTYPE_V8UDI): Ditto.
10363         (V4USI_FTYPE_V4USI): Ditto.
10364         (V16USI_FTYPE_V16USI): Ditto.
10365         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
10366         (V2DF_FTYPE_V8DF_INT): Ditto.
10367         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
10368         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
10369         (V8DF_FTYPE_V8DF_INT): Ditto.
10370         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
10371         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
10372         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
10373         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
10374         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
10375         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
10376         (V8DI_FTYPE_V8DI_INT): Ditto.
10377         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
10378         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
10379         (V8SF_FTYPE_V16SF_INT): Ditto.
10380         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
10381         (V64QI_FTYPE_V32HI_V32HI): Ditto.
10382         (V32HI_FTYPE_V16SI_V16SI): Ditto.
10383         (V8DF_FTYPE_V8DF_V2DF_INT): Ditto.
10384         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
10385         (V8DF_FTYPE_V8DF_V8DF_INT): Ditto.
10386         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT): Ditto.
10387         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT): Ditto.
10388         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
10389         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
10390         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
10391         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT): Ditto.
10392         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
10393         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
10394         (V32HI_FTYPE_V64QI_V64QI): Ditto.
10395         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
10396         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
10397         (V32HI_FTYPE_V32HI_V32HI): Ditto.
10398         (V32HI_FTYPE_V32HI_INT): Ditto.
10399         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
10400         (V16SI_FTYPE_V32HI_V32HI): Ditto.
10401         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
10402         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
10403         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
10404         (V8SI_FTYPE_V16SI_INT): Ditto.
10405         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
10406         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
10407         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
10408         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
10409         (V8DI_FTYPE_V8DI_V4DI_INT): Ditto.
10410         (V8DI_FTYPE_V8DI_V2DI_INT): Ditto.
10411         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
10412         (V8DI_FTYPE_V16SI_V16SI): Ditto.
10413         (V8DI_FTYPE_V64QI_V64QI): Ditto.
10414         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
10415         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
10416         (V2DI_FTYPE_V8DI_INT): Ditto.
10417         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
10418         (QI_FTYPE_QI): Ditto.
10419         (SI_FTYPE_SI): Ditto.
10420         (DI_FTYPE_DI): Ditto.
10421         (HI_FTYPE_V16QI): Ditto.
10422         (SI_FTYPE_V32QI): Ditto.
10423         (DI_FTYPE_V64QI): Ditto.
10424         (QI_FTYPE_V8HI): Ditto.
10425         (HI_FTYPE_V16HI): Ditto.
10426         (SI_FTYPE_V32HI): Ditto.
10427         (QI_FTYPE_V4SI): Ditto.
10428         (QI_FTYPE_V8SI): Ditto.
10429         (HI_FTYPE_V16SI): Ditto.
10430         (QI_FTYPE_V2DI): Ditto.
10431         (QI_FTYPE_V4DI): Ditto.
10432         (QI_FTYPE_V8DI): Ditto.
10433         (V16QI_FTYPE_HI): Ditto.
10434         (V32QI_FTYPE_SI): Ditto.
10435         (V64QI_FTYPE_DI): Ditto.
10436         (V8HI_FTYPE_QI): Ditto.
10437         (V16HI_FTYPE_HI): Ditto.
10438         (V32HI_FTYPE_SI): Ditto.
10439         (V4SI_FTYPE_QI): Ditto.
10440         (V4SI_FTYPE_HI): Ditto.
10441         (V8SI_FTYPE_QI): Ditto.
10442         (V8SI_FTYPE_HI): Ditto.
10443         (V2DI_FTYPE_QI): Ditto.
10444         (V4DI_FTYPE_QI): Ditto.
10445         (QI_FTYPE_QI_QI): Ditto.
10446         (SI_FTYPE_SI_SI): Ditto.
10447         (DI_FTYPE_DI_DI): Ditto.
10448         (QI_FTYPE_QI_INT): Ditto.
10449         (SI_FTYPE_SI_INT): Ditto.
10450         (DI_FTYPE_DI_INT): Ditto.
10451         (HI_FTYPE_V16QI_V16QI): Ditto.
10452         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
10453         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
10454         (SI_FTYPE_V32QI_V32QI): Ditto.
10455         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
10456         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
10457         (DI_FTYPE_V64QI_V64QI): Ditto.
10458         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
10459         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
10460         (QI_FTYPE_V8HI_V8HI): Ditto.
10461         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
10462         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
10463         (HI_FTYPE_V16HI_V16HI): Ditto.
10464         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
10465         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
10466         (SI_FTYPE_V32HI_V32HI): Ditto.
10467         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
10468         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
10469         (QI_FTYPE_V4SI_V4SI): Ditto.
10470         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
10471         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
10472         (QI_FTYPE_V8SI_V8SI): Ditto.
10473         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
10474         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
10475         (QI_FTYPE_V2DI_V2DI): Ditto.
10476         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
10477         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
10478         (QI_FTYPE_V4DI_V4DI): Ditto.
10479         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
10480         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
10481         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
10482         (V4DF_FTYPE_V4DF_V4DI_INT): Ditto.
10483         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
10484         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
10485         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
10486         (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
10487         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
10488         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
10489         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
10490         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
10491         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
10492         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
10493         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
10494         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
10495         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
10496         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
10497         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
10498         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
10499         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
10500         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
10501         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
10502         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
10503         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
10504         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
10505         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
10506         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
10507         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
10508         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
10509         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
10510         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
10511         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
10512         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
10513         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
10514         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
10515         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
10516         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
10517         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
10518         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
10519         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
10520         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
10521         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
10522         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
10523         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
10524         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
10525         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
10526         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
10527         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
10528         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
10529         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
10530         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
10531         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
10532         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
10533         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
10534         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
10535         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
10536         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
10537         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
10538         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
10539         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
10540         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
10541         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
10542         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
10543         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
10544         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
10545         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
10546         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
10547         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
10548         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
10549         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
10550         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
10551         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
10552         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
10553         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
10554         (V32HI_FTYPE_V64QI_V64QI_INT): Ditto.
10555         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
10556         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
10557         (V16HI_FTYPE_V32QI_V32QI_INT): Ditto.
10558         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
10559         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
10560         (V8HI_FTYPE_V16QI_V16QI_INT): Ditto.
10561         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
10562         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
10563         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
10564         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
10565         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
10566         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
10567         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
10568         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
10569         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
10570         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
10571         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
10572         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
10573         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
10574         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
10575         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
10576         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
10577         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
10578         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
10579         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
10580         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
10581         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
10582         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
10583         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
10584         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
10585         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
10586         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
10587         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
10588         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
10589         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
10590         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
10591         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
10592         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
10593         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
10594         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
10595         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
10596         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
10597         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
10598         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
10599         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
10600         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
10601         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
10602         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
10603         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
10604         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
10605         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
10606         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
10607         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
10608         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
10609         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
10610         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
10611         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
10612         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
10613         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
10614         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
10615         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
10616         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
10617         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
10618         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
10619         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
10620         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
10621         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
10622         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
10623         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
10624         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
10625         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
10626         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
10627         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
10628         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
10629         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
10630         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
10631         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
10632         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
10633         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
10634         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
10635         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
10636         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
10637         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
10638         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
10639         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
10640         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
10641         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
10642         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
10643         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
10644         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
10645         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
10646         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
10647         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
10648         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
10649         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
10650         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
10651         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
10652         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
10653         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
10654         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
10655         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
10656         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
10657         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
10658         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
10659         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
10660         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
10661         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
10662         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
10663         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
10664         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
10665         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
10666         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
10667         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
10668         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
10669         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
10670         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
10671         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
10672         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
10673         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
10674         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
10675         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
10676         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
10677         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
10678         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
10679         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
10680         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
10681         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
10682         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
10683         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
10684         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
10685         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
10686         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
10687         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
10688         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
10689         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
10690         (QI_FTYPE_V8DF_INT): Ditto.
10691         (QI_FTYPE_V4DF_INT): Ditto.
10692         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
10693         (QI_FTYPE_V2DF_INT): Ditto.
10694         (HI_FTYPE_V16SF_INT): Ditto.
10695         (QI_FTYPE_V8SF_INT): Ditto.
10696         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
10697         (QI_FTYPE_V4SF_INT): Ditto.
10698         (QI_FTYPE_V8DF_INT_QI): Ditto.
10699         (QI_FTYPE_V4DF_INT_QI): Ditto.
10700         (QI_FTYPE_V2DF_INT_QI): Ditto.
10701         (HI_FTYPE_V16SF_INT_HI): Ditto.
10702         (QI_FTYPE_V8SF_INT_QI): Ditto.
10703         (QI_FTYPE_V4SF_INT_QI): Ditto.
10704         (V8DI_FTYPE_V8DF_V8DI_QI_INT): Ditto.
10705         (V8DI_FTYPE_V8SF_V8DI_QI_INT): Ditto.
10706         (V8DF_FTYPE_V8DI_V8DF_QI_INT): Ditto.
10707         (V8SF_FTYPE_V8DI_V8SF_QI_INT): Ditto.
10708         (V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_QI_INT): Ditto.
10709         (V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_QI_INT): Ditto.
10710         (V4DF_FTYPE_V4DF_PCDOUBLE_V8SI_QI_INT): Ditto.
10711         (V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_QI_INT): Ditto.
10712         (V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_QI_INT): Ditto.
10713         (V4SF_FTYPE_V4SF_PCFLOAT_V4SI_QI_INT): Ditto.
10714         (V8SF_FTYPE_V8SF_PCFLOAT_V8SI_QI_INT): Ditto.
10715         (V4SF_FTYPE_V4SF_PCFLOAT_V2DI_QI_INT): Ditto.
10716         (V4SF_FTYPE_V4SF_PCFLOAT_V4DI_QI_INT): Ditto.
10717         (V8SF_FTYPE_V8SF_PCFLOAT_V4DI_QI_INT): Ditto.
10718         (V2DI_FTYPE_V2DI_PCINT64_V4SI_QI_INT): Ditto.
10719         (V4DI_FTYPE_V4DI_PCINT64_V4SI_QI_INT): Ditto.
10720         (V4DI_FTYPE_V4DI_PCINT64_V8SI_QI_INT): Ditto.
10721         (V2DI_FTYPE_V2DI_PCINT64_V2DI_QI_INT): Ditto.
10722         (V4DI_FTYPE_V4DI_PCINT64_V4DI_QI_INT): Ditto.
10723         (V4SI_FTYPE_V4SI_PCINT_V4SI_QI_INT): Ditto.
10724         (V8SI_FTYPE_V8SI_PCINT_V8SI_QI_INT): Ditto.
10725         (V4SI_FTYPE_V4SI_PCINT_V2DI_QI_INT): Ditto.
10726         (V4SI_FTYPE_V4SI_PCINT_V4DI_QI_INT): Ditto.
10727         (V8SI_FTYPE_V8SI_PCINT_V4DI_QI_INT): Ditto.
10728         (VOID_FTYPE_PFLOAT_QI_V8SI_V8SF_INT): Ditto.
10729         (VOID_FTYPE_PFLOAT_QI_V4SI_V4SF_INT): Ditto.
10730         (VOID_FTYPE_PDOUBLE_QI_V4SI_V4DF_INT): Ditto.
10731         (VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT): Ditto.
10732         (VOID_FTYPE_PFLOAT_QI_V4DI_V4SF_INT): Ditto.
10733         (VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT): Ditto.
10734         (VOID_FTYPE_PDOUBLE_QI_V4DI_V4DF_INT): Ditto.
10735         (VOID_FTYPE_PDOUBLE_QI_V2DI_V2DF_INT): Ditto.
10736         (VOID_FTYPE_PINT_QI_V8SI_V8SI_INT): Ditto.
10737         (VOID_FTYPE_PINT_QI_V4SI_V4SI_INT): Ditto.
10738         (VOID_FTYPE_PLONGLONG_QI_V4SI_V4DI_INT): Ditto.
10739         (VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT): Ditto.
10740         (VOID_FTYPE_PINT_QI_V4DI_V4SI_INT): Ditto.
10741         (VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): Ditto.
10742         (VOID_FTYPE_PLONGLONG_QI_V4DI_V4DI_INT): Ditto.
10743         (VOID_FTYPE_PLONGLONG_QI_V2DI_V2DI_INT): Ditto.
10744         (V8DI_FTYPE_V8DI_INT): Ditto.
10745         (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
10746         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
10747         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
10748         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
10749         (V2DF_FTYPE_ V2DF_ V2DF_ V2DI_ INT_ QI): Remove.
10750         (V4SF_FTYPE_ V4SF_ V2DF_ V4SF_ QI): Ditto.
10751         (V4SF_FTYPE_ V4SF_ V4SF_ V4SF_ QI): Ditto.
10752         (V2DF_FTYPE_ PCDOUBLE_ V2DF_ QI): Ditto.
10753         (V4SF_FTYPE_ PCFLOAT_ V4SF_ QI): Ditto.
10754         (V16QI_FTYPE_ V16SI_ V16QI_ HI): Ditto.
10755         (V16QI_FTYPE_ V8DI_ V16QI_ QI): Ditto.
10756         (V4SF_FTYPE_ V4SF_ V4SF_ INT_ V4SF_ QI): Ditto.
10757         (V2DF_FTYPE_ V2DF_ V2DF_ INT_ V2DF_ QI): Ditto.
10758         (V8DI_FTYPE_ V16SI_ V16SI_ V8DI_ QI): Ditto.
10759         * config/i386/i386.c (ix86_builtins):
10760         Add IX86_BUILTIN_PMOVUSQD256_MEM, IX86_BUILTIN_PMOVUSQD128_MEM,
10761         IX86_BUILTIN_PMOVSQD256_MEM, IX86_BUILTIN_PMOVSQD128_MEM,
10762         IX86_BUILTIN_PMOVQD256_MEM, IX86_BUILTIN_PMOVQD128_MEM,
10763         IX86_BUILTIN_PMOVUSQW256_MEM, IX86_BUILTIN_PMOVUSQW128_MEM,
10764         IX86_BUILTIN_PMOVSQW256_MEM, IX86_BUILTIN_PMOVSQW128_MEM,
10765         IX86_BUILTIN_PMOVQW256_MEM, IX86_BUILTIN_PMOVQW128_MEM,
10766         IX86_BUILTIN_PMOVUSQB256_MEM, IX86_BUILTIN_PMOVUSQB128_MEM,
10767         IX86_BUILTIN_PMOVSQB256_MEM, IX86_BUILTIN_PMOVSQB128_MEM,
10768         IX86_BUILTIN_PMOVQB256_MEM, IX86_BUILTIN_PMOVQB128_MEM,
10769         IX86_BUILTIN_PMOVUSDW256_MEM, IX86_BUILTIN_PMOVUSDW128_MEM,
10770         IX86_BUILTIN_PMOVSDW256_MEM, IX86_BUILTIN_PMOVSDW128_MEM,
10771         IX86_BUILTIN_PMOVDW256_MEM, IX86_BUILTIN_PMOVDW128_MEM,
10772         IX86_BUILTIN_PMOVUSDB256_MEM, IX86_BUILTIN_PMOVUSDB128_MEM,
10773         IX86_BUILTIN_PMOVSDB256_MEM, IX86_BUILTIN_PMOVSDB128_MEM,
10774         IX86_BUILTIN_PMOVDB256_MEM, IX86_BUILTIN_PMOVDB128_MEM,
10775         IX86_BUILTIN_MOVDQA64LOAD256_MASK, IX86_BUILTIN_MOVDQA64LOAD128_MASK,
10776         IX86_BUILTIN_MOVDQA32LOAD256_MASK, IX86_BUILTIN_MOVDQA32LOAD128_MASK,
10777         IX86_BUILTIN_MOVDQA64STORE256_MASK, IX86_BUILTIN_MOVDQA64STORE128_MASK,
10778         IX86_BUILTIN_MOVDQA32STORE256_MASK, IX86_BUILTIN_MOVDQA32STORE128_MASK,
10779         IX86_BUILTIN_LOADAPD256_MASK, IX86_BUILTIN_LOADAPD128_MASK,
10780         IX86_BUILTIN_LOADAPS256_MASK, IX86_BUILTIN_LOADAPS128_MASK,
10781         IX86_BUILTIN_STOREAPD256_MASK, IX86_BUILTIN_STOREAPD128_MASK,
10782         IX86_BUILTIN_STOREAPS256_MASK, IX86_BUILTIN_STOREAPS128_MASK,
10783         IX86_BUILTIN_LOADUPD256_MASK, IX86_BUILTIN_LOADUPD128_MASK,
10784         IX86_BUILTIN_LOADUPS256_MASK, IX86_BUILTIN_LOADUPS128_MASK,
10785         IX86_BUILTIN_STOREUPD256_MASK, IX86_BUILTIN_STOREUPD128_MASK,
10786         IX86_BUILTIN_STOREUPS256_MASK, IX86_BUILTIN_STOREUPS128_MASK,
10787         IX86_BUILTIN_LOADDQUDI256_MASK, IX86_BUILTIN_LOADDQUDI128_MASK,
10788         IX86_BUILTIN_LOADDQUSI256_MASK, IX86_BUILTIN_LOADDQUSI128_MASK,
10789         IX86_BUILTIN_LOADDQUHI256_MASK, IX86_BUILTIN_LOADDQUHI128_MASK,
10790         IX86_BUILTIN_LOADDQUQI256_MASK, IX86_BUILTIN_LOADDQUQI128_MASK,
10791         IX86_BUILTIN_STOREDQUDI256_MASK, IX86_BUILTIN_STOREDQUDI128_MASK,
10792         IX86_BUILTIN_STOREDQUSI256_MASK, IX86_BUILTIN_STOREDQUSI128_MASK,
10793         IX86_BUILTIN_STOREDQUHI256_MASK, IX86_BUILTIN_STOREDQUHI128_MASK,
10794         IX86_BUILTIN_STOREDQUQI256_MASK, IX86_BUILTIN_STOREDQUQI128_MASK,
10795         IX86_BUILTIN_COMPRESSPDSTORE256, IX86_BUILTIN_COMPRESSPDSTORE128,
10796         IX86_BUILTIN_COMPRESSPSSTORE256, IX86_BUILTIN_COMPRESSPSSTORE128,
10797         IX86_BUILTIN_PCOMPRESSQSTORE256, IX86_BUILTIN_PCOMPRESSQSTORE128,
10798         IX86_BUILTIN_PCOMPRESSDSTORE256, IX86_BUILTIN_PCOMPRESSDSTORE128,
10799         IX86_BUILTIN_EXPANDPDLOAD256, IX86_BUILTIN_EXPANDPDLOAD128,
10800         IX86_BUILTIN_EXPANDPSLOAD256, IX86_BUILTIN_EXPANDPSLOAD128,
10801         IX86_BUILTIN_PEXPANDQLOAD256, IX86_BUILTIN_PEXPANDQLOAD128,
10802         IX86_BUILTIN_PEXPANDDLOAD256, IX86_BUILTIN_PEXPANDDLOAD128,
10803         IX86_BUILTIN_EXPANDPDLOAD256Z, IX86_BUILTIN_EXPANDPDLOAD128Z,
10804         IX86_BUILTIN_EXPANDPSLOAD256Z, IX86_BUILTIN_EXPANDPSLOAD128Z,
10805         IX86_BUILTIN_PEXPANDQLOAD256Z, IX86_BUILTIN_PEXPANDQLOAD128Z,
10806         IX86_BUILTIN_PEXPANDDLOAD256Z, IX86_BUILTIN_PEXPANDDLOAD128Z,
10807         IX86_BUILTIN_PALIGNR256_MASK, IX86_BUILTIN_PALIGNR128_MASK,
10808         IX86_BUILTIN_MOVDQA64_256_MASK, IX86_BUILTIN_MOVDQA64_128_MASK,
10809         IX86_BUILTIN_MOVDQA32_256_MASK, IX86_BUILTIN_MOVDQA32_128_MASK,
10810         IX86_BUILTIN_MOVAPD256_MASK, IX86_BUILTIN_MOVAPD128_MASK,
10811         IX86_BUILTIN_MOVAPS256_MASK, IX86_BUILTIN_MOVAPS128_MASK,
10812         IX86_BUILTIN_MOVDQUHI256_MASK, IX86_BUILTIN_MOVDQUHI128_MASK,
10813         IX86_BUILTIN_MOVDQUQI256_MASK, IX86_BUILTIN_MOVDQUQI128_MASK,
10814         IX86_BUILTIN_MINPS128_MASK, IX86_BUILTIN_MAXPS128_MASK,
10815         IX86_BUILTIN_MINPD128_MASK, IX86_BUILTIN_MAXPD128_MASK,
10816         IX86_BUILTIN_MAXPD256_MASK, IX86_BUILTIN_MAXPS256_MASK,
10817         IX86_BUILTIN_MINPD256_MASK, IX86_BUILTIN_MINPS256_MASK,
10818         IX86_BUILTIN_MULPS128_MASK, IX86_BUILTIN_DIVPS128_MASK,
10819         IX86_BUILTIN_MULPD128_MASK, IX86_BUILTIN_DIVPD128_MASK,
10820         IX86_BUILTIN_DIVPD256_MASK, IX86_BUILTIN_DIVPS256_MASK,
10821         IX86_BUILTIN_MULPD256_MASK, IX86_BUILTIN_MULPS256_MASK,
10822         IX86_BUILTIN_ADDPD128_MASK, IX86_BUILTIN_ADDPD256_MASK,
10823         IX86_BUILTIN_ADDPS128_MASK, IX86_BUILTIN_ADDPS256_MASK,
10824         IX86_BUILTIN_SUBPD128_MASK, IX86_BUILTIN_SUBPD256_MASK,
10825         IX86_BUILTIN_SUBPS128_MASK, IX86_BUILTIN_SUBPS256_MASK,
10826         IX86_BUILTIN_XORPD256_MASK, IX86_BUILTIN_XORPD128_MASK,
10827         IX86_BUILTIN_XORPS256_MASK, IX86_BUILTIN_XORPS128_MASK,
10828         IX86_BUILTIN_ORPD256_MASK, IX86_BUILTIN_ORPD128_MASK,
10829         IX86_BUILTIN_ORPS256_MASK, IX86_BUILTIN_ORPS128_MASK,
10830         IX86_BUILTIN_BROADCASTF32x2_256, IX86_BUILTIN_BROADCASTI32x2_256,
10831         IX86_BUILTIN_BROADCASTI32x2_128, IX86_BUILTIN_BROADCASTF64X2_256,
10832         IX86_BUILTIN_BROADCASTI64X2_256, IX86_BUILTIN_BROADCASTF32X4_256,
10833         IX86_BUILTIN_BROADCASTI32X4_256, IX86_BUILTIN_EXTRACTF32X4_256,
10834         IX86_BUILTIN_EXTRACTI32X4_256, IX86_BUILTIN_DBPSADBW256,
10835         IX86_BUILTIN_DBPSADBW128, IX86_BUILTIN_CVTTPD2QQ256,
10836         IX86_BUILTIN_CVTTPD2QQ128, IX86_BUILTIN_CVTTPD2UQQ256,
10837         IX86_BUILTIN_CVTTPD2UQQ128, IX86_BUILTIN_CVTPD2QQ256,
10838         IX86_BUILTIN_CVTPD2QQ128, IX86_BUILTIN_CVTPD2UQQ256,
10839         IX86_BUILTIN_CVTPD2UQQ128, IX86_BUILTIN_CVTPD2UDQ256_MASK,
10840         IX86_BUILTIN_CVTPD2UDQ128_MASK, IX86_BUILTIN_CVTTPS2QQ256,
10841         IX86_BUILTIN_CVTTPS2QQ128, IX86_BUILTIN_CVTTPS2UQQ256,
10842         IX86_BUILTIN_CVTTPS2UQQ128, IX86_BUILTIN_CVTTPS2DQ256_MASK,
10843         IX86_BUILTIN_CVTTPS2DQ128_MASK, IX86_BUILTIN_CVTTPS2UDQ256,
10844         IX86_BUILTIN_CVTTPS2UDQ128, IX86_BUILTIN_CVTTPD2DQ256_MASK,
10845         IX86_BUILTIN_CVTTPD2DQ128_MASK, IX86_BUILTIN_CVTTPD2UDQ256_MASK,
10846         IX86_BUILTIN_CVTTPD2UDQ128_MASK, IX86_BUILTIN_CVTPD2DQ256_MASK,
10847         IX86_BUILTIN_CVTPD2DQ128_MASK, IX86_BUILTIN_CVTDQ2PD256_MASK,
10848         IX86_BUILTIN_CVTDQ2PD128_MASK, IX86_BUILTIN_CVTUDQ2PD256_MASK,
10849         IX86_BUILTIN_CVTUDQ2PD128_MASK, IX86_BUILTIN_CVTDQ2PS256_MASK,
10850         IX86_BUILTIN_CVTDQ2PS128_MASK, IX86_BUILTIN_CVTUDQ2PS256_MASK,
10851         IX86_BUILTIN_CVTUDQ2PS128_MASK, IX86_BUILTIN_CVTPS2PD256_MASK,
10852         IX86_BUILTIN_CVTPS2PD128_MASK, IX86_BUILTIN_PBROADCASTB256_MASK,
10853         IX86_BUILTIN_PBROADCASTB256_GPR_MASK, IX86_BUILTIN_PBROADCASTB128_MASK,
10854         IX86_BUILTIN_PBROADCASTB128_GPR_MASK, IX86_BUILTIN_PBROADCASTW256_MASK,
10855         IX86_BUILTIN_PBROADCASTW256_GPR_MASK, IX86_BUILTIN_PBROADCASTW128_MASK,
10856         IX86_BUILTIN_PBROADCASTW128_GPR_MASK, IX86_BUILTIN_PBROADCASTD256_MASK,
10857         IX86_BUILTIN_PBROADCASTD256_GPR_MASK, IX86_BUILTIN_PBROADCASTD128_MASK,
10858         IX86_BUILTIN_PBROADCASTD128_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MASK,
10859         IX86_BUILTIN_PBROADCASTQ256_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
10860         IX86_BUILTIN_PBROADCASTQ128_MASK, IX86_BUILTIN_PBROADCASTQ128_GPR_MASK,
10861         IX86_BUILTIN_PBROADCASTQ128_MEM_MASK, IX86_BUILTIN_BROADCASTSS256,
10862         IX86_BUILTIN_BROADCASTSS128, IX86_BUILTIN_BROADCASTSD256,
10863         IX86_BUILTIN_EXTRACTF64X2_256, IX86_BUILTIN_EXTRACTI64X2_256,
10864         IX86_BUILTIN_INSERTF32X4_256, IX86_BUILTIN_INSERTI32X4_256,
10865         IX86_BUILTIN_PMOVSXBW256_MASK, IX86_BUILTIN_PMOVSXBW128_MASK,
10866         IX86_BUILTIN_PMOVSXBD256_MASK, IX86_BUILTIN_PMOVSXBD128_MASK,
10867         IX86_BUILTIN_PMOVSXBQ256_MASK, IX86_BUILTIN_PMOVSXBQ128_MASK,
10868         IX86_BUILTIN_PMOVSXWD256_MASK, IX86_BUILTIN_PMOVSXWD128_MASK,
10869         IX86_BUILTIN_PMOVSXWQ256_MASK, IX86_BUILTIN_PMOVSXWQ128_MASK,
10870         IX86_BUILTIN_PMOVSXDQ256_MASK, IX86_BUILTIN_PMOVSXDQ128_MASK,
10871         IX86_BUILTIN_PMOVZXBW256_MASK, IX86_BUILTIN_PMOVZXBW128_MASK,
10872         IX86_BUILTIN_PMOVZXBD256_MASK, IX86_BUILTIN_PMOVZXBD128_MASK,
10873         IX86_BUILTIN_PMOVZXBQ256_MASK, IX86_BUILTIN_PMOVZXBQ128_MASK,
10874         IX86_BUILTIN_PMOVZXWD256_MASK, IX86_BUILTIN_PMOVZXWD128_MASK,
10875         IX86_BUILTIN_PMOVZXWQ256_MASK, IX86_BUILTIN_PMOVZXWQ128_MASK,
10876         IX86_BUILTIN_PMOVZXDQ256_MASK, IX86_BUILTIN_PMOVZXDQ128_MASK,
10877         IX86_BUILTIN_REDUCEPD256_MASK, IX86_BUILTIN_REDUCEPD128_MASK,
10878         IX86_BUILTIN_REDUCEPS256_MASK, IX86_BUILTIN_REDUCEPS128_MASK,
10879         IX86_BUILTIN_REDUCESD_MASK, IX86_BUILTIN_REDUCESS_MASK,
10880         IX86_BUILTIN_VPERMVARHI256_MASK, IX86_BUILTIN_VPERMVARHI128_MASK,
10881         IX86_BUILTIN_VPERMT2VARHI256, IX86_BUILTIN_VPERMT2VARHI256_MASKZ,
10882         IX86_BUILTIN_VPERMT2VARHI128, IX86_BUILTIN_VPERMT2VARHI128_MASKZ,
10883         IX86_BUILTIN_VPERMI2VARHI256, IX86_BUILTIN_VPERMI2VARHI128,
10884         IX86_BUILTIN_RCP14PD256, IX86_BUILTIN_RCP14PD128,
10885         IX86_BUILTIN_RCP14PS256, IX86_BUILTIN_RCP14PS128,
10886         IX86_BUILTIN_RSQRT14PD256_MASK, IX86_BUILTIN_RSQRT14PD128_MASK,
10887         IX86_BUILTIN_RSQRT14PS256_MASK, IX86_BUILTIN_RSQRT14PS128_MASK,
10888         IX86_BUILTIN_SQRTPD256_MASK, IX86_BUILTIN_SQRTPD128_MASK,
10889         IX86_BUILTIN_SQRTPS256_MASK, IX86_BUILTIN_SQRTPS128_MASK,
10890         IX86_BUILTIN_PADDB128_MASK, IX86_BUILTIN_PADDW128_MASK,
10891         IX86_BUILTIN_PADDD128_MASK, IX86_BUILTIN_PADDQ128_MASK,
10892         IX86_BUILTIN_PSUBB128_MASK, IX86_BUILTIN_PSUBW128_MASK,
10893         IX86_BUILTIN_PSUBD128_MASK, IX86_BUILTIN_PSUBQ128_MASK,
10894         IX86_BUILTIN_PADDSB128_MASK, IX86_BUILTIN_PADDSW128_MASK,
10895         IX86_BUILTIN_PSUBSB128_MASK, IX86_BUILTIN_PSUBSW128_MASK,
10896         IX86_BUILTIN_PADDUSB128_MASK, IX86_BUILTIN_PADDUSW128_MASK,
10897         IX86_BUILTIN_PSUBUSB128_MASK, IX86_BUILTIN_PSUBUSW128_MASK,
10898         IX86_BUILTIN_PADDB256_MASK, IX86_BUILTIN_PADDW256_MASK,
10899         IX86_BUILTIN_PADDD256_MASK, IX86_BUILTIN_PADDQ256_MASK,
10900         IX86_BUILTIN_PADDSB256_MASK, IX86_BUILTIN_PADDSW256_MASK,
10901         IX86_BUILTIN_PADDUSB256_MASK, IX86_BUILTIN_PADDUSW256_MASK,
10902         IX86_BUILTIN_PSUBB256_MASK, IX86_BUILTIN_PSUBW256_MASK,
10903         IX86_BUILTIN_PSUBD256_MASK, IX86_BUILTIN_PSUBQ256_MASK,
10904         IX86_BUILTIN_PSUBSB256_MASK, IX86_BUILTIN_PSUBSW256_MASK,
10905         IX86_BUILTIN_PSUBUSB256_MASK, IX86_BUILTIN_PSUBUSW256_MASK,
10906         IX86_BUILTIN_SHUF_F64x2_256, IX86_BUILTIN_SHUF_I64x2_256,
10907         IX86_BUILTIN_SHUF_I32x4_256, IX86_BUILTIN_SHUF_F32x4_256,
10908         IX86_BUILTIN_PMOVWB128, IX86_BUILTIN_PMOVWB256,
10909         IX86_BUILTIN_PMOVSWB128, IX86_BUILTIN_PMOVSWB256,
10910         IX86_BUILTIN_PMOVUSWB128, IX86_BUILTIN_PMOVUSWB256,
10911         IX86_BUILTIN_PMOVDB128, IX86_BUILTIN_PMOVDB256,
10912         IX86_BUILTIN_PMOVSDB128, IX86_BUILTIN_PMOVSDB256,
10913         IX86_BUILTIN_PMOVUSDB128, IX86_BUILTIN_PMOVUSDB256,
10914         IX86_BUILTIN_PMOVDW128, IX86_BUILTIN_PMOVDW256,
10915         IX86_BUILTIN_PMOVSDW128, IX86_BUILTIN_PMOVSDW256,
10916         IX86_BUILTIN_PMOVUSDW128, IX86_BUILTIN_PMOVUSDW256,
10917         IX86_BUILTIN_PMOVQB128, IX86_BUILTIN_PMOVQB256,
10918         IX86_BUILTIN_PMOVSQB128, IX86_BUILTIN_PMOVSQB256,
10919         IX86_BUILTIN_PMOVUSQB128, IX86_BUILTIN_PMOVUSQB256,
10920         IX86_BUILTIN_PMOVQW128, IX86_BUILTIN_PMOVQW256,
10921         IX86_BUILTIN_PMOVSQW128, IX86_BUILTIN_PMOVSQW256,
10922         IX86_BUILTIN_PMOVUSQW128, IX86_BUILTIN_PMOVUSQW256,
10923         IX86_BUILTIN_PMOVQD128, IX86_BUILTIN_PMOVQD256,
10924         IX86_BUILTIN_PMOVSQD128, IX86_BUILTIN_PMOVSQD256,
10925         IX86_BUILTIN_PMOVUSQD128, IX86_BUILTIN_PMOVUSQD256,
10926         IX86_BUILTIN_RANGEPD256, IX86_BUILTIN_RANGEPD128,
10927         IX86_BUILTIN_RANGEPS256, IX86_BUILTIN_RANGEPS128,
10928         IX86_BUILTIN_GETEXPPS256, IX86_BUILTIN_GETEXPPD256,
10929         IX86_BUILTIN_GETEXPPS128, IX86_BUILTIN_GETEXPPD128,
10930         IX86_BUILTIN_FIXUPIMMPD256_MASK, IX86_BUILTIN_FIXUPIMMPD256_MASKZ,
10931         IX86_BUILTIN_FIXUPIMMPS256_MASK, IX86_BUILTIN_FIXUPIMMPS256_MASKZ,
10932         IX86_BUILTIN_FIXUPIMMPD128_MASK, IX86_BUILTIN_FIXUPIMMPD128_MASKZ,
10933         IX86_BUILTIN_FIXUPIMMPS128_MASK, IX86_BUILTIN_FIXUPIMMPS128_MASKZ,
10934         IX86_BUILTIN_PABSQ256, IX86_BUILTIN_PABSQ128,
10935         IX86_BUILTIN_PABSD256_MASK, IX86_BUILTIN_PABSD128_MASK,
10936         IX86_BUILTIN_PMULHRSW256_MASK, IX86_BUILTIN_PMULHRSW128_MASK,
10937         IX86_BUILTIN_PMULHUW128_MASK, IX86_BUILTIN_PMULHUW256_MASK,
10938         IX86_BUILTIN_PMULHW256_MASK, IX86_BUILTIN_PMULHW128_MASK,
10939         IX86_BUILTIN_PMULLW256_MASK, IX86_BUILTIN_PMULLW128_MASK,
10940         IX86_BUILTIN_PMULLQ256, IX86_BUILTIN_PMULLQ128,
10941         IX86_BUILTIN_ANDPD256_MASK, IX86_BUILTIN_ANDPD128_MASK,
10942         IX86_BUILTIN_ANDPS256_MASK, IX86_BUILTIN_ANDPS128_MASK,
10943         IX86_BUILTIN_ANDNPD256_MASK, IX86_BUILTIN_ANDNPD128_MASK,
10944         IX86_BUILTIN_ANDNPS256_MASK, IX86_BUILTIN_ANDNPS128_MASK,
10945         IX86_BUILTIN_PSLLWI128_MASK, IX86_BUILTIN_PSLLDI128_MASK,
10946         IX86_BUILTIN_PSLLQI128_MASK, IX86_BUILTIN_PSLLW128_MASK,
10947         IX86_BUILTIN_PSLLD128_MASK, IX86_BUILTIN_PSLLQ128_MASK,
10948         IX86_BUILTIN_PSLLWI256_MASK , IX86_BUILTIN_PSLLW256_MASK,
10949         IX86_BUILTIN_PSLLDI256_MASK, IX86_BUILTIN_PSLLD256_MASK,
10950         IX86_BUILTIN_PSLLQI256_MASK, IX86_BUILTIN_PSLLQ256_MASK,
10951         IX86_BUILTIN_PSRADI128_MASK, IX86_BUILTIN_PSRAD128_MASK,
10952         IX86_BUILTIN_PSRADI256_MASK, IX86_BUILTIN_PSRAD256_MASK,
10953         IX86_BUILTIN_PSRAQI128_MASK, IX86_BUILTIN_PSRAQ128_MASK,
10954         IX86_BUILTIN_PSRAQI256_MASK, IX86_BUILTIN_PSRAQ256_MASK,
10955         IX86_BUILTIN_PANDD256, IX86_BUILTIN_PANDD128,
10956         IX86_BUILTIN_PSRLDI128_MASK, IX86_BUILTIN_PSRLD128_MASK,
10957         IX86_BUILTIN_PSRLDI256_MASK, IX86_BUILTIN_PSRLD256_MASK,
10958         IX86_BUILTIN_PSRLQI128_MASK, IX86_BUILTIN_PSRLQ128_MASK,
10959         IX86_BUILTIN_PSRLQI256_MASK, IX86_BUILTIN_PSRLQ256_MASK,
10960         IX86_BUILTIN_PANDQ256, IX86_BUILTIN_PANDQ128,
10961         IX86_BUILTIN_PANDND256, IX86_BUILTIN_PANDND128,
10962         IX86_BUILTIN_PANDNQ256, IX86_BUILTIN_PANDNQ128,
10963         IX86_BUILTIN_PORD256, IX86_BUILTIN_PORD128,
10964         IX86_BUILTIN_PORQ256, IX86_BUILTIN_PORQ128,
10965         IX86_BUILTIN_PXORD256, IX86_BUILTIN_PXORD128,
10966         IX86_BUILTIN_PXORQ256, IX86_BUILTIN_PXORQ128,
10967         IX86_BUILTIN_PACKSSWB256_MASK, IX86_BUILTIN_PACKSSWB128_MASK,
10968         IX86_BUILTIN_PACKUSWB256_MASK, IX86_BUILTIN_PACKUSWB128_MASK,
10969         IX86_BUILTIN_RNDSCALEPS256, IX86_BUILTIN_RNDSCALEPD256,
10970         IX86_BUILTIN_RNDSCALEPS128, IX86_BUILTIN_RNDSCALEPD128,
10971         IX86_BUILTIN_VTERNLOGQ256_MASK, IX86_BUILTIN_VTERNLOGQ256_MASKZ,
10972         IX86_BUILTIN_VTERNLOGD256_MASK, IX86_BUILTIN_VTERNLOGD256_MASKZ,
10973         IX86_BUILTIN_VTERNLOGQ128_MASK, IX86_BUILTIN_VTERNLOGQ128_MASKZ,
10974         IX86_BUILTIN_VTERNLOGD128_MASK, IX86_BUILTIN_VTERNLOGD128_MASKZ,
10975         IX86_BUILTIN_SCALEFPD256, IX86_BUILTIN_SCALEFPS256,
10976         IX86_BUILTIN_SCALEFPD128, IX86_BUILTIN_SCALEFPS128,
10977         IX86_BUILTIN_VFMADDPD256_MASK, IX86_BUILTIN_VFMADDPD256_MASK3,
10978         IX86_BUILTIN_VFMADDPD256_MASKZ, IX86_BUILTIN_VFMADDPD128_MASK,
10979         IX86_BUILTIN_VFMADDPD128_MASK3, IX86_BUILTIN_VFMADDPD128_MASKZ,
10980         IX86_BUILTIN_VFMADDPS256_MASK, IX86_BUILTIN_VFMADDPS256_MASK3,
10981         IX86_BUILTIN_VFMADDPS256_MASKZ, IX86_BUILTIN_VFMADDPS128_MASK,
10982         IX86_BUILTIN_VFMADDPS128_MASK3, IX86_BUILTIN_VFMADDPS128_MASKZ,
10983         IX86_BUILTIN_VFMSUBPD256_MASK3, IX86_BUILTIN_VFMSUBPD128_MASK3,
10984         IX86_BUILTIN_VFMSUBPS256_MASK3, IX86_BUILTIN_VFMSUBPS128_MASK3,
10985         IX86_BUILTIN_VFNMADDPD256_MASK, IX86_BUILTIN_VFNMADDPD128_MASK,
10986         IX86_BUILTIN_VFNMADDPS256_MASK, IX86_BUILTIN_VFNMADDPS128_MASK,
10987         IX86_BUILTIN_VFNMSUBPD256_MASK, IX86_BUILTIN_VFNMSUBPD256_MASK3,
10988         IX86_BUILTIN_VFNMSUBPD128_MASK, IX86_BUILTIN_VFNMSUBPD128_MASK3,
10989         IX86_BUILTIN_VFNMSUBPS256_MASK, IX86_BUILTIN_VFNMSUBPS256_MASK3,
10990         IX86_BUILTIN_VFNMSUBPS128_MASK, IX86_BUILTIN_VFNMSUBPS128_MASK3,
10991         IX86_BUILTIN_VFMADDSUBPD256_MASK, IX86_BUILTIN_VFMADDSUBPD256_MASK3,
10992         IX86_BUILTIN_VFMADDSUBPD256_MASKZ, IX86_BUILTIN_VFMADDSUBPD128_MASK,
10993         IX86_BUILTIN_VFMADDSUBPD128_MASK3, IX86_BUILTIN_VFMADDSUBPD128_MASKZ,
10994         IX86_BUILTIN_VFMADDSUBPS256_MASK, IX86_BUILTIN_VFMADDSUBPS256_MASK3,
10995         IX86_BUILTIN_VFMADDSUBPS256_MASKZ, IX86_BUILTIN_VFMADDSUBPS128_MASK,
10996         IX86_BUILTIN_VFMADDSUBPS128_MASK3, IX86_BUILTIN_VFMADDSUBPS128_MASKZ,
10997         IX86_BUILTIN_VFMSUBADDPD256_MASK3, IX86_BUILTIN_VFMSUBADDPD128_MASK3,
10998         IX86_BUILTIN_VFMSUBADDPS256_MASK3, IX86_BUILTIN_VFMSUBADDPS128_MASK3,
10999         IX86_BUILTIN_INSERTF64X2_256, IX86_BUILTIN_INSERTI64X2_256,
11000         IX86_BUILTIN_PSRAVV16HI, IX86_BUILTIN_PSRAVV8HI,
11001         IX86_BUILTIN_PMADDUBSW256_MASK, IX86_BUILTIN_PMADDUBSW128_MASK,
11002         IX86_BUILTIN_PMADDWD256_MASK, IX86_BUILTIN_PMADDWD128_MASK,
11003         IX86_BUILTIN_PSRLVV16HI, IX86_BUILTIN_PSRLVV8HI,
11004         IX86_BUILTIN_CVTPS2DQ256_MASK, IX86_BUILTIN_CVTPS2DQ128_MASK,
11005         IX86_BUILTIN_CVTPS2UDQ256, IX86_BUILTIN_CVTPS2UDQ128,
11006         IX86_BUILTIN_CVTPS2QQ256, IX86_BUILTIN_CVTPS2QQ128,
11007         IX86_BUILTIN_CVTPS2UQQ256, IX86_BUILTIN_CVTPS2UQQ128,
11008         IX86_BUILTIN_GETMANTPS256, IX86_BUILTIN_GETMANTPS128,
11009         IX86_BUILTIN_GETMANTPD256, IX86_BUILTIN_GETMANTPD128,
11010         IX86_BUILTIN_MOVDDUP256_MASK, IX86_BUILTIN_MOVDDUP128_MASK,
11011         IX86_BUILTIN_MOVSHDUP256_MASK, IX86_BUILTIN_MOVSHDUP128_MASK,
11012         IX86_BUILTIN_MOVSLDUP256_MASK, IX86_BUILTIN_MOVSLDUP128_MASK,
11013         IX86_BUILTIN_CVTQQ2PS256, IX86_BUILTIN_CVTQQ2PS128,
11014         IX86_BUILTIN_CVTUQQ2PS256, IX86_BUILTIN_CVTUQQ2PS128,
11015         IX86_BUILTIN_CVTQQ2PD256, IX86_BUILTIN_CVTQQ2PD128,
11016         IX86_BUILTIN_CVTUQQ2PD256, IX86_BUILTIN_CVTUQQ2PD128,
11017         IX86_BUILTIN_VPERMT2VARQ256, IX86_BUILTIN_VPERMT2VARQ256_MASKZ,
11018         IX86_BUILTIN_VPERMT2VARD256, IX86_BUILTIN_VPERMT2VARD256_MASKZ,
11019         IX86_BUILTIN_VPERMI2VARQ256, IX86_BUILTIN_VPERMI2VARD256,
11020         IX86_BUILTIN_VPERMT2VARPD256, IX86_BUILTIN_VPERMT2VARPD256_MASKZ,
11021         IX86_BUILTIN_VPERMT2VARPS256, IX86_BUILTIN_VPERMT2VARPS256_MASKZ,
11022         IX86_BUILTIN_VPERMI2VARPD256, IX86_BUILTIN_VPERMI2VARPS256,
11023         IX86_BUILTIN_VPERMT2VARQ128, IX86_BUILTIN_VPERMT2VARQ128_MASKZ,
11024         IX86_BUILTIN_VPERMT2VARD128, IX86_BUILTIN_VPERMT2VARD128_MASKZ,
11025         IX86_BUILTIN_VPERMI2VARQ128, IX86_BUILTIN_VPERMI2VARD128,
11026         IX86_BUILTIN_VPERMT2VARPD128, IX86_BUILTIN_VPERMT2VARPD128_MASKZ,
11027         IX86_BUILTIN_VPERMT2VARPS128, IX86_BUILTIN_VPERMT2VARPS128_MASKZ,
11028         IX86_BUILTIN_VPERMI2VARPD128, IX86_BUILTIN_VPERMI2VARPS128,
11029         IX86_BUILTIN_PSHUFB256_MASK, IX86_BUILTIN_PSHUFB128_MASK,
11030         IX86_BUILTIN_PSHUFHW256_MASK, IX86_BUILTIN_PSHUFHW128_MASK,
11031         IX86_BUILTIN_PSHUFLW256_MASK, IX86_BUILTIN_PSHUFLW128_MASK,
11032         IX86_BUILTIN_PSHUFD256_MASK, IX86_BUILTIN_PSHUFD128_MASK,
11033         IX86_BUILTIN_SHUFPD256_MASK, IX86_BUILTIN_SHUFPD128_MASK,
11034         IX86_BUILTIN_SHUFPS256_MASK, IX86_BUILTIN_SHUFPS128_MASK,
11035         IX86_BUILTIN_PROLVQ256, IX86_BUILTIN_PROLVQ128,
11036         IX86_BUILTIN_PROLQ256, IX86_BUILTIN_PROLQ128,
11037         IX86_BUILTIN_PRORVQ256, IX86_BUILTIN_PRORVQ128,
11038         IX86_BUILTIN_PRORQ256, IX86_BUILTIN_PRORQ128,
11039         IX86_BUILTIN_PSRAVQ128, IX86_BUILTIN_PSRAVQ256,
11040         IX86_BUILTIN_PSLLVV4DI_MASK, IX86_BUILTIN_PSLLVV2DI_MASK,
11041         IX86_BUILTIN_PSLLVV8SI_MASK, IX86_BUILTIN_PSLLVV4SI_MASK,
11042         IX86_BUILTIN_PSRAVV8SI_MASK, IX86_BUILTIN_PSRAVV4SI_MASK,
11043         IX86_BUILTIN_PSRLVV4DI_MASK, IX86_BUILTIN_PSRLVV2DI_MASK,
11044         IX86_BUILTIN_PSRLVV8SI_MASK, IX86_BUILTIN_PSRLVV4SI_MASK,
11045         IX86_BUILTIN_PSRAWI256_MASK, IX86_BUILTIN_PSRAW256_MASK,
11046         IX86_BUILTIN_PSRAWI128_MASK, IX86_BUILTIN_PSRAW128_MASK,
11047         IX86_BUILTIN_PSRLWI256_MASK, IX86_BUILTIN_PSRLW256_MASK,
11048         IX86_BUILTIN_PSRLWI128_MASK, IX86_BUILTIN_PSRLW128_MASK,
11049         IX86_BUILTIN_PRORVD256, IX86_BUILTIN_PROLVD256,
11050         IX86_BUILTIN_PRORD256, IX86_BUILTIN_PROLD256,
11051         IX86_BUILTIN_PRORVD128, IX86_BUILTIN_PROLVD128,
11052         IX86_BUILTIN_PRORD128, IX86_BUILTIN_PROLD128,
11053         IX86_BUILTIN_FPCLASSPD256, IX86_BUILTIN_FPCLASSPD128,
11054         IX86_BUILTIN_FPCLASSSD, IX86_BUILTIN_FPCLASSPS256,
11055         IX86_BUILTIN_FPCLASSPS128, IX86_BUILTIN_FPCLASSSS,
11056         IX86_BUILTIN_CVTB2MASK128, IX86_BUILTIN_CVTB2MASK256,
11057         IX86_BUILTIN_CVTW2MASK128, IX86_BUILTIN_CVTW2MASK256,
11058         IX86_BUILTIN_CVTD2MASK128, IX86_BUILTIN_CVTD2MASK256,
11059         IX86_BUILTIN_CVTQ2MASK128, IX86_BUILTIN_CVTQ2MASK256,
11060         IX86_BUILTIN_CVTMASK2B128, IX86_BUILTIN_CVTMASK2B256,
11061         IX86_BUILTIN_CVTMASK2W128, IX86_BUILTIN_CVTMASK2W256,
11062         IX86_BUILTIN_CVTMASK2D128, IX86_BUILTIN_CVTMASK2D256,
11063         IX86_BUILTIN_CVTMASK2Q128, IX86_BUILTIN_CVTMASK2Q256,
11064         IX86_BUILTIN_PCMPEQB128_MASK, IX86_BUILTIN_PCMPEQB256_MASK,
11065         IX86_BUILTIN_PCMPEQW128_MASK, IX86_BUILTIN_PCMPEQW256_MASK,
11066         IX86_BUILTIN_PCMPEQD128_MASK, IX86_BUILTIN_PCMPEQD256_MASK,
11067         IX86_BUILTIN_PCMPEQQ128_MASK, IX86_BUILTIN_PCMPEQQ256_MASK,
11068         IX86_BUILTIN_PCMPGTB128_MASK, IX86_BUILTIN_PCMPGTB256_MASK,
11069         IX86_BUILTIN_PCMPGTW128_MASK, IX86_BUILTIN_PCMPGTW256_MASK,
11070         IX86_BUILTIN_PCMPGTD128_MASK, IX86_BUILTIN_PCMPGTD256_MASK,
11071         IX86_BUILTIN_PCMPGTQ128_MASK, IX86_BUILTIN_PCMPGTQ256_MASK,
11072         IX86_BUILTIN_PTESTMB128, IX86_BUILTIN_PTESTMB256,
11073         IX86_BUILTIN_PTESTMW128, IX86_BUILTIN_PTESTMW256,
11074         IX86_BUILTIN_PTESTMD128, IX86_BUILTIN_PTESTMD256,
11075         IX86_BUILTIN_PTESTMQ128, IX86_BUILTIN_PTESTMQ256,
11076         IX86_BUILTIN_PTESTNMB128, IX86_BUILTIN_PTESTNMB256,
11077         IX86_BUILTIN_PTESTNMW128, IX86_BUILTIN_PTESTNMW256,
11078         IX86_BUILTIN_PTESTNMD128, IX86_BUILTIN_PTESTNMD256,
11079         IX86_BUILTIN_PTESTNMQ128, IX86_BUILTIN_PTESTNMQ256,
11080         IX86_BUILTIN_PBROADCASTMB128, IX86_BUILTIN_PBROADCASTMB256,
11081         IX86_BUILTIN_PBROADCASTMW128, IX86_BUILTIN_PBROADCASTMW256,
11082         IX86_BUILTIN_COMPRESSPD256, IX86_BUILTIN_COMPRESSPD128,
11083         IX86_BUILTIN_COMPRESSPS256, IX86_BUILTIN_COMPRESSPS128,
11084         IX86_BUILTIN_PCOMPRESSQ256, IX86_BUILTIN_PCOMPRESSQ128,
11085         IX86_BUILTIN_PCOMPRESSD256, IX86_BUILTIN_PCOMPRESSD128,
11086         IX86_BUILTIN_EXPANDPD256, IX86_BUILTIN_EXPANDPD128,
11087         IX86_BUILTIN_EXPANDPS256, IX86_BUILTIN_EXPANDPS128,
11088         IX86_BUILTIN_PEXPANDQ256, IX86_BUILTIN_PEXPANDQ128,
11089         IX86_BUILTIN_PEXPANDD256, IX86_BUILTIN_PEXPANDD128,
11090         IX86_BUILTIN_EXPANDPD256Z, IX86_BUILTIN_EXPANDPD128Z,
11091         IX86_BUILTIN_EXPANDPS256Z, IX86_BUILTIN_EXPANDPS128Z,
11092         IX86_BUILTIN_PEXPANDQ256Z, IX86_BUILTIN_PEXPANDQ128Z,
11093         IX86_BUILTIN_PEXPANDD256Z, IX86_BUILTIN_PEXPANDD128Z,
11094         IX86_BUILTIN_PMAXSD256_MASK, IX86_BUILTIN_PMINSD256_MASK,
11095         IX86_BUILTIN_PMAXUD256_MASK, IX86_BUILTIN_PMINUD256_MASK,
11096         IX86_BUILTIN_PMAXSD128_MASK, IX86_BUILTIN_PMINSD128_MASK,
11097         IX86_BUILTIN_PMAXUD128_MASK, IX86_BUILTIN_PMINUD128_MASK,
11098         IX86_BUILTIN_PMAXSQ256_MASK, IX86_BUILTIN_PMINSQ256_MASK,
11099         IX86_BUILTIN_PMAXUQ256_MASK, IX86_BUILTIN_PMINUQ256_MASK,
11100         IX86_BUILTIN_PMAXSQ128_MASK, IX86_BUILTIN_PMINSQ128_MASK,
11101         IX86_BUILTIN_PMAXUQ128_MASK, IX86_BUILTIN_PMINUQ128_MASK,
11102         IX86_BUILTIN_PMINSB256_MASK, IX86_BUILTIN_PMINUB256_MASK,
11103         IX86_BUILTIN_PMAXSB256_MASK, IX86_BUILTIN_PMAXUB256_MASK,
11104         IX86_BUILTIN_PMINSB128_MASK, IX86_BUILTIN_PMINUB128_MASK,
11105         IX86_BUILTIN_PMAXSB128_MASK, IX86_BUILTIN_PMAXUB128_MASK,
11106         IX86_BUILTIN_PMINSW256_MASK, IX86_BUILTIN_PMINUW256_MASK,
11107         IX86_BUILTIN_PMAXSW256_MASK, IX86_BUILTIN_PMAXUW256_MASK,
11108         IX86_BUILTIN_PMINSW128_MASK, IX86_BUILTIN_PMINUW128_MASK,
11109         IX86_BUILTIN_PMAXSW128_MASK, IX86_BUILTIN_PMAXUW128_MASK,
11110         IX86_BUILTIN_VPCONFLICTQ256, IX86_BUILTIN_VPCONFLICTD256,
11111         IX86_BUILTIN_VPCLZCNTQ256, IX86_BUILTIN_VPCLZCNTD256,
11112         IX86_BUILTIN_UNPCKHPD256_MASK, IX86_BUILTIN_UNPCKHPD128_MASK,
11113         IX86_BUILTIN_UNPCKHPS256_MASK, IX86_BUILTIN_UNPCKHPS128_MASK,
11114         IX86_BUILTIN_UNPCKLPD256_MASK, IX86_BUILTIN_UNPCKLPD128_MASK,
11115         IX86_BUILTIN_UNPCKLPS256_MASK, IX86_BUILTIN_VPCONFLICTQ128,
11116         IX86_BUILTIN_VPCONFLICTD128, IX86_BUILTIN_VPCLZCNTQ128,
11117         IX86_BUILTIN_VPCLZCNTD128, IX86_BUILTIN_UNPCKLPS128_MASK,
11118         IX86_BUILTIN_ALIGND256, IX86_BUILTIN_ALIGNQ256,
11119         IX86_BUILTIN_ALIGND128, IX86_BUILTIN_ALIGNQ128,
11120         IX86_BUILTIN_CVTPS2PH256_MASK, IX86_BUILTIN_CVTPS2PH_MASK,
11121         IX86_BUILTIN_CVTPH2PS_MASK, IX86_BUILTIN_CVTPH2PS256_MASK,
11122         IX86_BUILTIN_PUNPCKHDQ128_MASK, IX86_BUILTIN_PUNPCKHDQ256_MASK,
11123         IX86_BUILTIN_PUNPCKHQDQ128_MASK, IX86_BUILTIN_PUNPCKHQDQ256_MASK,
11124         IX86_BUILTIN_PUNPCKLDQ128_MASK, IX86_BUILTIN_PUNPCKLDQ256_MASK,
11125         IX86_BUILTIN_PUNPCKLQDQ128_MASK, IX86_BUILTIN_PUNPCKLQDQ256_MASK,
11126         IX86_BUILTIN_PUNPCKHBW128_MASK, IX86_BUILTIN_PUNPCKHBW256_MASK,
11127         IX86_BUILTIN_PUNPCKHWD128_MASK, IX86_BUILTIN_PUNPCKHWD256_MASK,
11128         IX86_BUILTIN_PUNPCKLBW128_MASK, IX86_BUILTIN_PUNPCKLBW256_MASK,
11129         IX86_BUILTIN_PUNPCKLWD128_MASK, IX86_BUILTIN_PUNPCKLWD256_MASK,
11130         IX86_BUILTIN_PSLLVV16HI, IX86_BUILTIN_PSLLVV8HI,
11131         IX86_BUILTIN_PACKSSDW256_MASK, IX86_BUILTIN_PACKSSDW128_MASK,
11132         IX86_BUILTIN_PACKUSDW256_MASK, IX86_BUILTIN_PACKUSDW128_MASK,
11133         IX86_BUILTIN_PAVGB256_MASK, IX86_BUILTIN_PAVGW256_MASK,
11134         IX86_BUILTIN_PAVGB128_MASK, IX86_BUILTIN_PAVGW128_MASK,
11135         IX86_BUILTIN_VPERMVARSF256_MASK, IX86_BUILTIN_VPERMVARDF256_MASK,
11136         IX86_BUILTIN_VPERMDF256_MASK, IX86_BUILTIN_PABSB256_MASK,
11137         IX86_BUILTIN_PABSB128_MASK, IX86_BUILTIN_PABSW256_MASK,
11138         IX86_BUILTIN_PABSW128_MASK, IX86_BUILTIN_VPERMILVARPD_MASK,
11139         IX86_BUILTIN_VPERMILVARPS_MASK, IX86_BUILTIN_VPERMILVARPD256_MASK,
11140         IX86_BUILTIN_VPERMILVARPS256_MASK, IX86_BUILTIN_VPERMILPD_MASK,
11141         IX86_BUILTIN_VPERMILPS_MASK, IX86_BUILTIN_VPERMILPD256_MASK,
11142         IX86_BUILTIN_VPERMILPS256_MASK, IX86_BUILTIN_BLENDMQ256,
11143         IX86_BUILTIN_BLENDMD256, IX86_BUILTIN_BLENDMPD256,
11144         IX86_BUILTIN_BLENDMPS256, IX86_BUILTIN_BLENDMQ128,
11145         IX86_BUILTIN_BLENDMD128, IX86_BUILTIN_BLENDMPD128,
11146         IX86_BUILTIN_BLENDMPS128, IX86_BUILTIN_BLENDMW256,
11147         IX86_BUILTIN_BLENDMB256, IX86_BUILTIN_BLENDMW128,
11148         IX86_BUILTIN_BLENDMB128, IX86_BUILTIN_PMULLD256_MASK,
11149         IX86_BUILTIN_PMULLD128_MASK, IX86_BUILTIN_PMULUDQ256_MASK,
11150         IX86_BUILTIN_PMULDQ256_MASK, IX86_BUILTIN_PMULDQ128_MASK,
11151         IX86_BUILTIN_PMULUDQ128_MASK, IX86_BUILTIN_CVTPD2PS256_MASK,
11152         IX86_BUILTIN_CVTPD2PS_MASK, IX86_BUILTIN_VPERMVARSI256_MASK,
11153         IX86_BUILTIN_VPERMVARDI256_MASK, IX86_BUILTIN_VPERMDI256_MASK,
11154         IX86_BUILTIN_CMPQ256, IX86_BUILTIN_CMPD256,
11155         IX86_BUILTIN_UCMPQ256, IX86_BUILTIN_UCMPD256,
11156         IX86_BUILTIN_CMPB256, IX86_BUILTIN_CMPW256,
11157         IX86_BUILTIN_UCMPB256, IX86_BUILTIN_UCMPW256,
11158         IX86_BUILTIN_CMPPD256_MASK, IX86_BUILTIN_CMPPS256_MASK,
11159         IX86_BUILTIN_CMPQ128, IX86_BUILTIN_CMPD128,
11160         IX86_BUILTIN_UCMPQ128, IX86_BUILTIN_UCMPD128,
11161         IX86_BUILTIN_CMPB128, IX86_BUILTIN_CMPW128,
11162         IX86_BUILTIN_UCMPB128, IX86_BUILTIN_UCMPW128,
11163         IX86_BUILTIN_CMPPD128_MASK, IX86_BUILTIN_CMPPS128_MASK,
11164         IX86_BUILTIN_GATHER3SIV8SF, IX86_BUILTIN_GATHER3SIV4SF,
11165         IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV2DF,
11166         IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3DIV4SF,
11167         IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
11168         IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3SIV4SI,
11169         IX86_BUILTIN_GATHER3SIV4DI, IX86_BUILTIN_GATHER3SIV2DI,
11170         IX86_BUILTIN_GATHER3DIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
11171         IX86_BUILTIN_GATHER3DIV4DI, IX86_BUILTIN_GATHER3DIV2DI,
11172         IX86_BUILTIN_SCATTERSIV8SF, IX86_BUILTIN_SCATTERSIV4SF,
11173         IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV2DF,
11174         IX86_BUILTIN_SCATTERDIV8SF, IX86_BUILTIN_SCATTERDIV4SF,
11175         IX86_BUILTIN_SCATTERDIV4DF, IX86_BUILTIN_SCATTERDIV2DF,
11176         IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV4SI,
11177         IX86_BUILTIN_SCATTERSIV4DI, IX86_BUILTIN_SCATTERSIV2DI,
11178         IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_SCATTERDIV4SI,
11179         IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
11180         IX86_BUILTIN_RANGESD128, IX86_BUILTIN_RANGESS128,
11181         IX86_BUILTIN_KUNPCKWD, IX86_BUILTIN_KUNPCKDQ,
11182         IX86_BUILTIN_BROADCASTF32x2_512, IX86_BUILTIN_BROADCASTI32x2_512,
11183         IX86_BUILTIN_BROADCASTF64X2_512, IX86_BUILTIN_BROADCASTI64X2_512,
11184         IX86_BUILTIN_BROADCASTF32X8_512, IX86_BUILTIN_BROADCASTI32X8_512,
11185         IX86_BUILTIN_EXTRACTF64X2_512, IX86_BUILTIN_EXTRACTF32X8,
11186         IX86_BUILTIN_EXTRACTI64X2_512, IX86_BUILTIN_EXTRACTI32X8,
11187         IX86_BUILTIN_REDUCEPD512_MASK, IX86_BUILTIN_REDUCEPS512_MASK,
11188         IX86_BUILTIN_PMULLQ512, IX86_BUILTIN_XORPD512,
11189         IX86_BUILTIN_XORPS512, IX86_BUILTIN_ORPD512,
11190         IX86_BUILTIN_ORPS512, IX86_BUILTIN_ANDPD512,
11191         IX86_BUILTIN_ANDPS512, IX86_BUILTIN_ANDNPD512,
11192         IX86_BUILTIN_ANDNPS512, IX86_BUILTIN_INSERTF32X8,
11193         IX86_BUILTIN_INSERTI32X8, IX86_BUILTIN_INSERTF64X2_512,
11194         IX86_BUILTIN_INSERTI64X2_512, IX86_BUILTIN_FPCLASSPD512,
11195         IX86_BUILTIN_FPCLASSPS512, IX86_BUILTIN_CVTD2MASK512,
11196         IX86_BUILTIN_CVTQ2MASK512, IX86_BUILTIN_CVTMASK2D512,
11197         IX86_BUILTIN_CVTMASK2Q512, IX86_BUILTIN_CVTPD2QQ512,
11198         IX86_BUILTIN_CVTPS2QQ512, IX86_BUILTIN_CVTPD2UQQ512,
11199         IX86_BUILTIN_CVTPS2UQQ512, IX86_BUILTIN_CVTQQ2PS512,
11200         IX86_BUILTIN_CVTUQQ2PS512, IX86_BUILTIN_CVTQQ2PD512,
11201         IX86_BUILTIN_CVTUQQ2PD512, IX86_BUILTIN_CVTTPS2QQ512,
11202         IX86_BUILTIN_CVTTPS2UQQ512, IX86_BUILTIN_CVTTPD2QQ512,
11203         IX86_BUILTIN_CVTTPD2UQQ512, IX86_BUILTIN_RANGEPS512,
11204         IX86_BUILTIN_RANGEPD512, IX86_BUILTIN_PACKUSDW512,
11205         IX86_BUILTIN_PACKSSDW512, IX86_BUILTIN_LOADDQUHI512_MASK,
11206         IX86_BUILTIN_LOADDQUQI512_MASK, IX86_BUILTIN_PSLLDQ512,
11207         IX86_BUILTIN_PSRLDQ512, IX86_BUILTIN_STOREDQUHI512_MASK,
11208         IX86_BUILTIN_STOREDQUQI512_MASK, IX86_BUILTIN_PALIGNR512,
11209         IX86_BUILTIN_PALIGNR512_MASK, IX86_BUILTIN_MOVDQUHI512_MASK,
11210         IX86_BUILTIN_MOVDQUQI512_MASK, IX86_BUILTIN_PSADBW512,
11211         IX86_BUILTIN_DBPSADBW512, IX86_BUILTIN_PBROADCASTB512,
11212         IX86_BUILTIN_PBROADCASTB512_GPR, IX86_BUILTIN_PBROADCASTW512,
11213         IX86_BUILTIN_PBROADCASTW512_GPR, IX86_BUILTIN_PMOVSXBW512_MASK,
11214         IX86_BUILTIN_PMOVZXBW512_MASK, IX86_BUILTIN_VPERMVARHI512_MASK,
11215         IX86_BUILTIN_VPERMT2VARHI512, IX86_BUILTIN_VPERMT2VARHI512_MASKZ,
11216         IX86_BUILTIN_VPERMI2VARHI512, IX86_BUILTIN_PAVGB512,
11217         IX86_BUILTIN_PAVGW512, IX86_BUILTIN_PADDB512,
11218         IX86_BUILTIN_PSUBB512, IX86_BUILTIN_PSUBSB512,
11219         IX86_BUILTIN_PADDSB512, IX86_BUILTIN_PSUBUSB512,
11220         IX86_BUILTIN_PADDUSB512, IX86_BUILTIN_PSUBW512,
11221         IX86_BUILTIN_PADDW512, IX86_BUILTIN_PSUBSW512,
11222         IX86_BUILTIN_PADDSW512, IX86_BUILTIN_PSUBUSW512,
11223         IX86_BUILTIN_PADDUSW512, IX86_BUILTIN_PMAXUW512,
11224         IX86_BUILTIN_PMAXSW512, IX86_BUILTIN_PMINUW512,
11225         IX86_BUILTIN_PMINSW512, IX86_BUILTIN_PMAXUB512,
11226         IX86_BUILTIN_PMAXSB512, IX86_BUILTIN_PMINUB512,
11227         IX86_BUILTIN_PMINSB512, IX86_BUILTIN_PMOVWB512,
11228         IX86_BUILTIN_PMOVSWB512, IX86_BUILTIN_PMOVUSWB512,
11229         IX86_BUILTIN_PMULHRSW512_MASK, IX86_BUILTIN_PMULHUW512_MASK,
11230         IX86_BUILTIN_PMULHW512_MASK, IX86_BUILTIN_PMULLW512_MASK,
11231         IX86_BUILTIN_PSLLWI512_MASK, IX86_BUILTIN_PSLLW512_MASK,
11232         IX86_BUILTIN_PACKSSWB512, IX86_BUILTIN_PACKUSWB512,
11233         IX86_BUILTIN_PSRAVV32HI, IX86_BUILTIN_PMADDUBSW512_MASK,
11234         IX86_BUILTIN_PMADDWD512_MASK, IX86_BUILTIN_PSRLVV32HI,
11235         IX86_BUILTIN_PUNPCKHBW512, IX86_BUILTIN_PUNPCKHWD512,
11236         IX86_BUILTIN_PUNPCKLBW512, IX86_BUILTIN_PUNPCKLWD512,
11237         IX86_BUILTIN_PSHUFB512, IX86_BUILTIN_PSHUFHW512,
11238         IX86_BUILTIN_PSHUFLW512, IX86_BUILTIN_PSRAWI512,
11239         IX86_BUILTIN_PSRAW512, IX86_BUILTIN_PSRLWI512,
11240         IX86_BUILTIN_PSRLW512, IX86_BUILTIN_CVTB2MASK512,
11241         IX86_BUILTIN_CVTW2MASK512, IX86_BUILTIN_CVTMASK2B512,
11242         IX86_BUILTIN_CVTMASK2W512, IX86_BUILTIN_PCMPEQB512_MASK,
11243         IX86_BUILTIN_PCMPEQW512_MASK, IX86_BUILTIN_PCMPGTB512_MASK,
11244         IX86_BUILTIN_PCMPGTW512_MASK, IX86_BUILTIN_PTESTMB512,
11245         IX86_BUILTIN_PTESTMW512, IX86_BUILTIN_PTESTNMB512,
11246         IX86_BUILTIN_PTESTNMW512, IX86_BUILTIN_PSLLVV32HI,
11247         IX86_BUILTIN_PABSB512, IX86_BUILTIN_PABSW512,
11248         IX86_BUILTIN_BLENDMW512, IX86_BUILTIN_BLENDMB512,
11249         IX86_BUILTIN_CMPB512, IX86_BUILTIN_CMPW512,
11250         IX86_BUILTIN_UCMPB512, IX86_BUILTIN_UCMPW512.
11251         (bdesc_special_args):
11252         Add __builtin_ia32_loaddquhi512_mask, __builtin_ia32_loaddquqi512_mask,
11253         __builtin_ia32_storedquhi512_mask, __builtin_ia32_storedquqi512_mask,
11254         __builtin_ia32_loaddquhi256_mask, __builtin_ia32_loaddquhi128_mask,
11255         __builtin_ia32_loaddquqi256_mask, __builtin_ia32_loaddquqi128_mask,
11256         __builtin_ia32_movdqa64load256_mask, __builtin_ia32_movdqa64load128_mask,
11257         __builtin_ia32_movdqa32load256_mask, __builtin_ia32_movdqa32load128_mask,
11258         __builtin_ia32_movdqa64store256_mask, __builtin_ia32_movdqa64store128_mask,
11259         __builtin_ia32_movdqa32store256_mask, __builtin_ia32_movdqa32store128_mask,
11260         __builtin_ia32_loadapd256_mask, __builtin_ia32_loadapd128_mask,
11261         __builtin_ia32_loadaps256_mask, __builtin_ia32_loadaps128_mask,
11262         __builtin_ia32_storeapd256_mask, __builtin_ia32_storeapd128_mask,
11263         __builtin_ia32_storeaps256_mask, __builtin_ia32_storeaps128_mask,
11264         __builtin_ia32_loadupd256_mask, __builtin_ia32_loadupd128_mask,
11265         __builtin_ia32_loadups256_mask, __builtin_ia32_loadups128_mask,
11266         __builtin_ia32_storeupd256_mask, __builtin_ia32_storeupd128_mask,
11267         __builtin_ia32_storeups256_mask, __builtin_ia32_storeups128_mask,
11268         __builtin_ia32_loaddqudi256_mask, __builtin_ia32_loaddqudi128_mask,
11269         __builtin_ia32_loaddqusi256_mask, __builtin_ia32_loaddqusi128_mask,
11270         __builtin_ia32_storedqudi256_mask, __builtin_ia32_storedqudi128_mask,
11271         __builtin_ia32_storedqusi256_mask, __builtin_ia32_storedqusi128_mask,
11272         __builtin_ia32_storedquhi256_mask, __builtin_ia32_storedquhi128_mask,
11273         __builtin_ia32_storedquqi256_mask, __builtin_ia32_storedquqi128_mask,
11274         __builtin_ia32_compressstoredf256_mask, __builtin_ia32_compressstoredf128_mask,
11275         __builtin_ia32_compressstoresf256_mask, __builtin_ia32_compressstoresf128_mask,
11276         __builtin_ia32_compressstoredi256_mask, __builtin_ia32_compressstoredi128_mask,
11277         __builtin_ia32_compressstoresi256_mask, __builtin_ia32_compressstoresi128_mask,
11278         __builtin_ia32_expandloaddf256_mask, __builtin_ia32_expandloaddf128_mask,
11279         __builtin_ia32_expandloadsf256_mask, __builtin_ia32_expandloadsf128_mask,
11280         __builtin_ia32_expandloaddi256_mask, __builtin_ia32_expandloaddi128_mask,
11281         __builtin_ia32_expandloadsi256_mask, __builtin_ia32_expandloadsi128_mask,
11282         __builtin_ia32_expandloaddf256_maskz, __builtin_ia32_expandloaddf128_maskz,
11283         __builtin_ia32_expandloadsf256_maskz, __builtin_ia32_expandloadsf128_maskz,
11284         __builtin_ia32_expandloaddi256_maskz, __builtin_ia32_expandloaddi128_maskz,
11285         __builtin_ia32_expandloadsi256_maskz, __builtin_ia32_expandloadsi128_maskz,
11286         __builtin_ia32_pmovqd256mem_mask, __builtin_ia32_pmovqd128mem_mask,
11287         __builtin_ia32_pmovsqd256mem_mask, __builtin_ia32_pmovsqd128mem_mask,
11288         __builtin_ia32_pmovusqd256mem_mask, __builtin_ia32_pmovusqd128mem_mask,
11289         __builtin_ia32_pmovqw256mem_mask, __builtin_ia32_pmovqw128mem_mask,
11290         __builtin_ia32_pmovsqw256mem_mask, __builtin_ia32_pmovsqw128mem_mask,
11291         __builtin_ia32_pmovusqw256mem_mask, __builtin_ia32_pmovusqw128mem_mask,
11292         __builtin_ia32_pmovqb256mem_mask, __builtin_ia32_pmovqb128mem_mask,
11293         __builtin_ia32_pmovsqb256mem_mask, __builtin_ia32_pmovsqb128mem_mask,
11294         __builtin_ia32_pmovusqb256mem_mask, __builtin_ia32_pmovusqb128mem_mask,
11295         __builtin_ia32_pmovdb256mem_mask, __builtin_ia32_pmovdb128mem_mask,
11296         __builtin_ia32_pmovsdb256mem_mask, __builtin_ia32_pmovsdb128mem_mask,
11297         __builtin_ia32_pmovusdb256mem_mask, __builtin_ia32_pmovusdb128mem_mask,
11298         __builtin_ia32_pmovdw256mem_mask, __builtin_ia32_pmovdw128mem_mask,
11299         __builtin_ia32_pmovsdw256mem_mask, __builtin_ia32_pmovsdw128mem_mask,
11300         __builtin_ia32_pmovusdw256mem_mask, __builtin_ia32_pmovusdw128mem_mask,
11301         __builtin_ia32_palignr256_mask, __builtin_ia32_palignr128_mask,
11302         __builtin_ia32_movdqa64_256_mask, __builtin_ia32_movdqa64_128_mask,
11303         __builtin_ia32_movdqa32_256_mask, __builtin_ia32_movdqa32_128_mask,
11304         __builtin_ia32_movapd256_mask, __builtin_ia32_movapd128_mask,
11305         __builtin_ia32_movaps256_mask, __builtin_ia32_movaps128_mask,
11306         __builtin_ia32_movdquhi256_mask, __builtin_ia32_movdquhi128_mask,
11307         __builtin_ia32_movdquqi256_mask, __builtin_ia32_movdquqi128_mask,
11308         __builtin_ia32_minps_mask, __builtin_ia32_maxps_mask,
11309         __builtin_ia32_minpd_mask, __builtin_ia32_maxpd_mask,
11310         __builtin_ia32_maxpd256_mask, __builtin_ia32_maxps256_mask,
11311         __builtin_ia32_minpd256_mask, __builtin_ia32_minps256_mask,
11312         __builtin_ia32_mulps_mask, __builtin_ia32_divps_mask,
11313         __builtin_ia32_mulpd_mask, __builtin_ia32_divpd_mask,
11314         __builtin_ia32_divpd256_mask, __builtin_ia32_divps256_mask,
11315         __builtin_ia32_mulpd256_mask, __builtin_ia32_mulps256_mask,
11316         __builtin_ia32_addpd128_mask, __builtin_ia32_addpd256_mask,
11317         __builtin_ia32_addps128_mask, __builtin_ia32_addps256_mask,
11318         __builtin_ia32_subpd128_mask, __builtin_ia32_subpd256_mask,
11319         __builtin_ia32_subps128_mask, __builtin_ia32_subps256_mask,
11320         __builtin_ia32_xorpd256_mask, __builtin_ia32_xorpd128_mask,
11321         __builtin_ia32_xorps256_mask, __builtin_ia32_xorps128_mask,
11322         __builtin_ia32_orpd256_mask, __builtin_ia32_orpd128_mask,
11323         __builtin_ia32_orps256_mask, __builtin_ia32_orps128_mask,
11324         __builtin_ia32_broadcastf32x2_256_mask, __builtin_ia32_broadcasti32x2_256_mask,
11325         __builtin_ia32_broadcasti32x2_128_mask, __builtin_ia32_broadcastf64x2_256_mask,
11326         __builtin_ia32_broadcasti64x2_256_mask, __builtin_ia32_broadcastf32x4_256_mask,
11327         __builtin_ia32_broadcasti32x4_256_mask, __builtin_ia32_extractf32x4_256_mask,
11328         __builtin_ia32_extracti32x4_256_mask, __builtin_ia32_dbpsadbw256_mask,
11329         __builtin_ia32_dbpsadbw128_mask, __builtin_ia32_cvttpd2qq256_mask,
11330         __builtin_ia32_cvttpd2qq128_mask, __builtin_ia32_cvttpd2uqq256_mask,
11331         __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvtpd2qq256_mask,
11332         __builtin_ia32_cvtpd2qq128_mask, __builtin_ia32_cvtpd2uqq256_mask,
11333         __builtin_ia32_cvtpd2uqq128_mask, __builtin_ia32_cvtpd2udq256_mask,
11334         __builtin_ia32_cvtpd2udq128_mask, __builtin_ia32_cvttps2qq256_mask,
11335         __builtin_ia32_cvttps2qq128_mask, __builtin_ia32_cvttps2uqq256_mask,
11336         __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvttps2dq256_mask,
11337         __builtin_ia32_cvttps2dq128_mask, __builtin_ia32_cvttps2udq256_mask,
11338         __builtin_ia32_cvttps2udq128_mask, __builtin_ia32_cvttpd2dq256_mask,
11339         __builtin_ia32_cvttpd2dq128_mask, __builtin_ia32_cvttpd2udq256_mask,
11340         __builtin_ia32_cvttpd2udq128_mask, __builtin_ia32_cvtpd2dq256_mask,
11341         __builtin_ia32_cvtpd2dq128_mask, __builtin_ia32_cvtdq2pd256_mask,
11342         __builtin_ia32_cvtdq2pd128_mask, __builtin_ia32_cvtudq2pd256_mask,
11343         __builtin_ia32_cvtudq2pd128_mask, __builtin_ia32_cvtdq2ps256_mask,
11344         __builtin_ia32_cvtdq2ps128_mask, __builtin_ia32_cvtudq2ps256_mask,
11345         __builtin_ia32_cvtudq2ps128_mask, __builtin_ia32_cvtps2pd256_mask,
11346         __builtin_ia32_cvtps2pd128_mask, __builtin_ia32_pbroadcastb256_mask,
11347         __builtin_ia32_pbroadcastb256_gpr_mask, __builtin_ia32_pbroadcastb128_mask,
11348         __builtin_ia32_pbroadcastb128_gpr_mask, __builtin_ia32_pbroadcastw256_mask,
11349         __builtin_ia32_pbroadcastw256_gpr_mask, __builtin_ia32_pbroadcastw128_mask,
11350         __builtin_ia32_pbroadcastw128_gpr_mask, __builtin_ia32_pbroadcastd256_mask,
11351         __builtin_ia32_pbroadcastd256_gpr_mask, __builtin_ia32_pbroadcastd128_mask,
11352         __builtin_ia32_pbroadcastd128_gpr_mask, __builtin_ia32_pbroadcastq256_mask,
11353         __builtin_ia32_pbroadcastq256_gpr_mask, __builtin_ia32_pbroadcastq256_mem_mask,
11354         __builtin_ia32_pbroadcastq128_mask, __builtin_ia32_pbroadcastq128_gpr_mask,
11355         __builtin_ia32_pbroadcastq128_mem_mask, __builtin_ia32_broadcastss256_mask,
11356         __builtin_ia32_broadcastss128_mask, __builtin_ia32_broadcastsd256_mask,
11357         __builtin_ia32_extractf64x2_256_mask, __builtin_ia32_extracti64x2_256_mask,
11358         __builtin_ia32_insertf32x4_256_mask, __builtin_ia32_inserti32x4_256_mask,
11359         __builtin_ia32_pmovsxbw256_mask, __builtin_ia32_pmovsxbw128_mask,
11360         __builtin_ia32_pmovsxbd256_mask, __builtin_ia32_pmovsxbd128_mask,
11361         __builtin_ia32_pmovsxbq256_mask, __builtin_ia32_pmovsxbq128_mask,
11362         __builtin_ia32_pmovsxwd256_mask, __builtin_ia32_pmovsxwd128_mask,
11363         __builtin_ia32_pmovsxwq256_mask, __builtin_ia32_pmovsxwq128_mask,
11364         __builtin_ia32_pmovsxdq256_mask, __builtin_ia32_pmovsxdq128_mask,
11365         __builtin_ia32_pmovzxbw256_mask, __builtin_ia32_pmovzxbw128_mask,
11366         __builtin_ia32_pmovzxbd256_mask, __builtin_ia32_pmovzxbd128_mask,
11367         __builtin_ia32_pmovzxbq256_mask, __builtin_ia32_pmovzxbq128_mask,
11368         __builtin_ia32_pmovzxwd256_mask, __builtin_ia32_pmovzxwd128_mask,
11369         __builtin_ia32_pmovzxwq256_mask, __builtin_ia32_pmovzxwq128_mask,
11370         __builtin_ia32_pmovzxdq256_mask, __builtin_ia32_pmovzxdq128_mask,
11371         __builtin_ia32_reducepd256_mask, __builtin_ia32_reducepd128_mask,
11372         __builtin_ia32_reduceps256_mask, __builtin_ia32_reduceps128_mask,
11373         __builtin_ia32_reducesd, __builtin_ia32_reducess,
11374         __builtin_ia32_permvarhi256_mask, __builtin_ia32_permvarhi128_mask,
11375         __builtin_ia32_vpermt2varhi256_mask, __builtin_ia32_vpermt2varhi256_maskz,
11376         __builtin_ia32_vpermt2varhi128_mask, __builtin_ia32_vpermt2varhi128_maskz,
11377         __builtin_ia32_vpermi2varhi256_mask, __builtin_ia32_vpermi2varhi128_mask,
11378         __builtin_ia32_rcp14pd256_mask, __builtin_ia32_rcp14pd128_mask,
11379         __builtin_ia32_rcp14ps256_mask, __builtin_ia32_rcp14ps128_mask,
11380         __builtin_ia32_rsqrt14pd256_mask, __builtin_ia32_rsqrt14pd128_mask,
11381         __builtin_ia32_rsqrt14ps256_mask, __builtin_ia32_rsqrt14ps128_mask,
11382         __builtin_ia32_sqrtpd256_mask, __builtin_ia32_sqrtpd128_mask,
11383         __builtin_ia32_sqrtps256_mask, __builtin_ia32_sqrtps128_mask,
11384         __builtin_ia32_paddb128_mask, __builtin_ia32_paddw128_mask,
11385         __builtin_ia32_paddd128_mask, __builtin_ia32_paddq128_mask,
11386         __builtin_ia32_psubb128_mask, __builtin_ia32_psubw128_mask,
11387         __builtin_ia32_psubd128_mask, __builtin_ia32_psubq128_mask,
11388         __builtin_ia32_paddsb128_mask, __builtin_ia32_paddsw128_mask,
11389         __builtin_ia32_psubsb128_mask, __builtin_ia32_psubsw128_mask,
11390         __builtin_ia32_paddusb128_mask, __builtin_ia32_paddusw128_mask,
11391         __builtin_ia32_psubusb128_mask, __builtin_ia32_psubusw128_mask,
11392         __builtin_ia32_paddb256_mask, __builtin_ia32_paddw256_mask,
11393         __builtin_ia32_paddd256_mask, __builtin_ia32_paddq256_mask,
11394         __builtin_ia32_paddsb256_mask, __builtin_ia32_paddsw256_mask,
11395         __builtin_ia32_paddusb256_mask, __builtin_ia32_paddusw256_mask,
11396         __builtin_ia32_psubb256_mask, __builtin_ia32_psubw256_mask,
11397         __builtin_ia32_psubd256_mask, __builtin_ia32_psubq256_mask,
11398         __builtin_ia32_psubsb256_mask, __builtin_ia32_psubsw256_mask,
11399         __builtin_ia32_psubusb256_mask, __builtin_ia32_psubusw256_mask,
11400         __builtin_ia32_shuf_f64x2_256_mask, __builtin_ia32_shuf_i64x2_256_mask,
11401         __builtin_ia32_shuf_i32x4_256_mask, __builtin_ia32_shuf_f32x4_256_mask,
11402         __builtin_ia32_pmovwb128_mask, __builtin_ia32_pmovwb256_mask,
11403         __builtin_ia32_pmovswb128_mask, __builtin_ia32_pmovswb256_mask,
11404         __builtin_ia32_pmovuswb128_mask, __builtin_ia32_pmovuswb256_mask,
11405         __builtin_ia32_pmovdb128_mask, __builtin_ia32_pmovdb256_mask,
11406         __builtin_ia32_pmovsdb128_mask, __builtin_ia32_pmovsdb256_mask,
11407         __builtin_ia32_pmovusdb128_mask, __builtin_ia32_pmovusdb256_mask,
11408         __builtin_ia32_pmovdw128_mask, __builtin_ia32_pmovdw256_mask,
11409         __builtin_ia32_pmovsdw128_mask, __builtin_ia32_pmovsdw256_mask,
11410         __builtin_ia32_pmovusdw128_mask, __builtin_ia32_pmovusdw256_mask,
11411         __builtin_ia32_pmovqb128_mask, __builtin_ia32_pmovqb256_mask,
11412         __builtin_ia32_pmovsqb128_mask, __builtin_ia32_pmovsqb256_mask,
11413         __builtin_ia32_pmovusqb128_mask, __builtin_ia32_pmovusqb256_mask,
11414         __builtin_ia32_pmovqw128_mask, __builtin_ia32_pmovqw256_mask,
11415         __builtin_ia32_pmovsqw128_mask, __builtin_ia32_pmovsqw256_mask,
11416         __builtin_ia32_pmovusqw128_mask, __builtin_ia32_pmovusqw256_mask,
11417         __builtin_ia32_pmovqd128_mask, __builtin_ia32_pmovqd256_mask,
11418         __builtin_ia32_pmovsqd128_mask, __builtin_ia32_pmovsqd256_mask,
11419         __builtin_ia32_pmovusqd128_mask, __builtin_ia32_pmovusqd256_mask,
11420         __builtin_ia32_rangepd256_mask, __builtin_ia32_rangepd128_mask,
11421         __builtin_ia32_rangeps256_mask, __builtin_ia32_rangeps128_mask,
11422         __builtin_ia32_getexpps256_mask, __builtin_ia32_getexppd256_mask,
11423         __builtin_ia32_getexpps128_mask, __builtin_ia32_getexppd128_mask,
11424         __builtin_ia32_fixupimmpd256, __builtin_ia32_fixupimmpd256_mask,
11425         __builtin_ia32_fixupimmpd256_maskz, __builtin_ia32_fixupimmps256,
11426         __builtin_ia32_fixupimmps256_mask, __builtin_ia32_fixupimmps256_maskz,
11427         __builtin_ia32_fixupimmpd128, __builtin_ia32_fixupimmpd128_mask,
11428         __builtin_ia32_fixupimmpd128_maskz, __builtin_ia32_fixupimmps128,
11429         __builtin_ia32_fixupimmps128_mask, __builtin_ia32_fixupimmps128_maskz,
11430         __builtin_ia32_pabsq256_mask, __builtin_ia32_pabsq128_mask,
11431         __builtin_ia32_pabsd256_mask, __builtin_ia32_pabsd128_mask,
11432         __builtin_ia32_pmulhrsw256_mask, __builtin_ia32_pmulhrsw128_mask,
11433         __builtin_ia32_pmulhuw128_mask, __builtin_ia32_pmulhuw256_mask,
11434         __builtin_ia32_pmulhw256_mask, __builtin_ia32_pmulhw128_mask,
11435         __builtin_ia32_pmullw256_mask, __builtin_ia32_pmullw128_mask,
11436         __builtin_ia32_pmullq256_mask, __builtin_ia32_pmullq128_mask,
11437         __builtin_ia32_andpd256_mask, __builtin_ia32_andpd128_mask,
11438         __builtin_ia32_andps256_mask, __builtin_ia32_andps128_mask,
11439         __builtin_ia32_andnpd256_mask, __builtin_ia32_andnpd128_mask,
11440         __builtin_ia32_andnps256_mask, __builtin_ia32_andnps128_mask,
11441         __builtin_ia32_psllwi128_mask, __builtin_ia32_pslldi128_mask,
11442         __builtin_ia32_psllqi128_mask, __builtin_ia32_psllw128_mask,
11443         __builtin_ia32_pslld128_mask, __builtin_ia32_psllq128_mask,
11444         __builtin_ia32_psllwi256_mask, __builtin_ia32_psllw256_mask,
11445         __builtin_ia32_pslldi256_mask, __builtin_ia32_pslld256_mask,
11446         __builtin_ia32_psllqi256_mask, __builtin_ia32_psllq256_mask,
11447         __builtin_ia32_psradi128_mask, __builtin_ia32_psrad128_mask,
11448         __builtin_ia32_psradi256_mask, __builtin_ia32_psrad256_mask,
11449         __builtin_ia32_psraqi128_mask, __builtin_ia32_psraq128_mask,
11450         __builtin_ia32_psraqi256_mask, __builtin_ia32_psraq256_mask,
11451         __builtin_ia32_pandd256_mask, __builtin_ia32_pandd128_mask,
11452         __builtin_ia32_psrldi128_mask, __builtin_ia32_psrld128_mask,
11453         __builtin_ia32_psrldi256_mask, __builtin_ia32_psrld256_mask,
11454         __builtin_ia32_psrlqi128_mask, __builtin_ia32_psrlq128_mask,
11455         __builtin_ia32_psrlqi256_mask, __builtin_ia32_psrlq256_mask,
11456         __builtin_ia32_pandq256_mask, __builtin_ia32_pandq128_mask,
11457         __builtin_ia32_pandnd256_mask, __builtin_ia32_pandnd128_mask,
11458         __builtin_ia32_pandnq256_mask, __builtin_ia32_pandnq128_mask,
11459         __builtin_ia32_pord256_mask, __builtin_ia32_pord128_mask,
11460         __builtin_ia32_porq256_mask, __builtin_ia32_porq128_mask,
11461         __builtin_ia32_pxord256_mask, __builtin_ia32_pxord128_mask,
11462         __builtin_ia32_pxorq256_mask, __builtin_ia32_pxorq128_mask,
11463         __builtin_ia32_packsswb256_mask, __builtin_ia32_packsswb128_mask,
11464         __builtin_ia32_packuswb256_mask, __builtin_ia32_packuswb128_mask,
11465         __builtin_ia32_rndscaleps_256_mask, __builtin_ia32_rndscalepd_256_mask,
11466         __builtin_ia32_rndscaleps_128_mask, __builtin_ia32_rndscalepd_128_mask,
11467         __builtin_ia32_pternlogq256_mask, __builtin_ia32_pternlogq256_maskz,
11468         __builtin_ia32_pternlogd256_mask, __builtin_ia32_pternlogd256_maskz,
11469         __builtin_ia32_pternlogq128_mask, __builtin_ia32_pternlogq128_maskz,
11470         __builtin_ia32_pternlogd128_mask, __builtin_ia32_pternlogd128_maskz,
11471         __builtin_ia32_scalefpd256_mask, __builtin_ia32_scalefps256_mask,
11472         __builtin_ia32_scalefpd128_mask, __builtin_ia32_scalefps128_mask,
11473         __builtin_ia32_vfmaddpd256_mask, __builtin_ia32_vfmaddpd256_mask3,
11474         __builtin_ia32_vfmaddpd256_maskz, __builtin_ia32_vfmaddpd128_mask,
11475         __builtin_ia32_vfmaddpd128_mask3, __builtin_ia32_vfmaddpd128_maskz,
11476         __builtin_ia32_vfmaddps256_mask, __builtin_ia32_vfmaddps256_mask3,
11477         __builtin_ia32_vfmaddps256_maskz, __builtin_ia32_vfmaddps128_mask,
11478         __builtin_ia32_vfmaddps128_mask3, __builtin_ia32_vfmaddps128_maskz,
11479         __builtin_ia32_vfmsubpd256_mask3, __builtin_ia32_vfmsubpd128_mask3,
11480         __builtin_ia32_vfmsubps256_mask3, __builtin_ia32_vfmsubps128_mask3,
11481         __builtin_ia32_vfnmaddpd256_mask, __builtin_ia32_vfnmaddpd128_mask,
11482         __builtin_ia32_vfnmaddps256_mask, __builtin_ia32_vfnmaddps128_mask,
11483         __builtin_ia32_vfnmsubpd256_mask, __builtin_ia32_vfnmsubpd256_mask3,
11484         __builtin_ia32_vfnmsubpd128_mask, __builtin_ia32_vfnmsubpd128_mask3,
11485         __builtin_ia32_vfnmsubps256_mask, __builtin_ia32_vfnmsubps256_mask3,
11486         __builtin_ia32_vfnmsubps128_mask, __builtin_ia32_vfnmsubps128_mask3,
11487         __builtin_ia32_vfmaddsubpd256_mask, __builtin_ia32_vfmaddsubpd256_mask3,
11488         __builtin_ia32_vfmaddsubpd256_maskz, __builtin_ia32_vfmaddsubpd128_mask,
11489         __builtin_ia32_vfmaddsubpd128_mask3, __builtin_ia32_vfmaddsubpd128_maskz,
11490         __builtin_ia32_vfmaddsubps256_mask, __builtin_ia32_vfmaddsubps256_mask3,
11491         __builtin_ia32_vfmaddsubps256_maskz, __builtin_ia32_vfmaddsubps128_mask,
11492         __builtin_ia32_vfmaddsubps128_mask3, __builtin_ia32_vfmaddsubps128_maskz,
11493         __builtin_ia32_vfmsubaddpd256_mask3, __builtin_ia32_vfmsubaddpd128_mask3,
11494         __builtin_ia32_vfmsubaddps256_mask3, __builtin_ia32_vfmsubaddps128_mask3,
11495         __builtin_ia32_insertf64x2_256_mask, __builtin_ia32_inserti64x2_256_mask,
11496         __builtin_ia32_psrav16hi_mask, __builtin_ia32_psrav8hi_mask,
11497         __builtin_ia32_pmaddubsw256_mask, __builtin_ia32_pmaddubsw128_mask,
11498         __builtin_ia32_pmaddwd256_mask, __builtin_ia32_pmaddwd128_mask,
11499         __builtin_ia32_psrlv16hi_mask, __builtin_ia32_psrlv8hi_mask,
11500         __builtin_ia32_cvtps2dq256_mask, __builtin_ia32_cvtps2dq128_mask,
11501         __builtin_ia32_cvtps2udq256_mask, __builtin_ia32_cvtps2udq128_mask,
11502         __builtin_ia32_cvtps2qq256_mask, __builtin_ia32_cvtps2qq128_mask,
11503         __builtin_ia32_cvtps2uqq256_mask, __builtin_ia32_cvtps2uqq128_mask,
11504         __builtin_ia32_getmantps256_mask, __builtin_ia32_getmantps128_mask,
11505         __builtin_ia32_getmantpd256_mask, __builtin_ia32_getmantpd128_mask,
11506         __builtin_ia32_movddup256_mask, __builtin_ia32_movddup128_mask,
11507         __builtin_ia32_movshdup256_mask, __builtin_ia32_movshdup128_mask,
11508         __builtin_ia32_movsldup256_mask, __builtin_ia32_movsldup128_mask,
11509         __builtin_ia32_cvtqq2ps256_mask, __builtin_ia32_cvtqq2ps128_mask,
11510         __builtin_ia32_cvtuqq2ps256_mask, __builtin_ia32_cvtuqq2ps128_mask,
11511         __builtin_ia32_cvtqq2pd256_mask, __builtin_ia32_cvtqq2pd128_mask,
11512         __builtin_ia32_cvtuqq2pd256_mask, __builtin_ia32_cvtuqq2pd128_mask,
11513         __builtin_ia32_vpermt2varq256_mask, __builtin_ia32_vpermt2varq256_maskz,
11514         __builtin_ia32_vpermt2vard256_mask, __builtin_ia32_vpermt2vard256_maskz,
11515         __builtin_ia32_vpermi2varq256_mask, __builtin_ia32_vpermi2vard256_mask,
11516         __builtin_ia32_vpermt2varpd256_mask, __builtin_ia32_vpermt2varpd256_maskz,
11517         __builtin_ia32_vpermt2varps256_mask, __builtin_ia32_vpermt2varps256_maskz,
11518         __builtin_ia32_vpermi2varpd256_mask, __builtin_ia32_vpermi2varps256_mask,
11519         __builtin_ia32_vpermt2varq128_mask, __builtin_ia32_vpermt2varq128_maskz,
11520         __builtin_ia32_vpermt2vard128_mask, __builtin_ia32_vpermt2vard128_maskz,
11521         __builtin_ia32_vpermi2varq128_mask, __builtin_ia32_vpermi2vard128_mask,
11522         __builtin_ia32_vpermt2varpd128_mask, __builtin_ia32_vpermt2varpd128_maskz,
11523         __builtin_ia32_vpermt2varps128_mask, __builtin_ia32_vpermt2varps128_maskz,
11524         __builtin_ia32_vpermi2varpd128_mask, __builtin_ia32_vpermi2varps128_mask,
11525         __builtin_ia32_pshufb256_mask, __builtin_ia32_pshufb128_mask,
11526         __builtin_ia32_pshufhw256_mask, __builtin_ia32_pshufhw128_mask,
11527         __builtin_ia32_pshuflw256_mask, __builtin_ia32_pshuflw128_mask,
11528         __builtin_ia32_pshufd256_mask, __builtin_ia32_pshufd128_mask,
11529         __builtin_ia32_shufpd256_mask, __builtin_ia32_shufpd128_mask,
11530         __builtin_ia32_shufps256_mask, __builtin_ia32_shufps128_mask,
11531         __builtin_ia32_prolvq256_mask, __builtin_ia32_prolvq128_mask,
11532         __builtin_ia32_prolq256_mask, __builtin_ia32_prolq128_mask,
11533         __builtin_ia32_prorvq256_mask, __builtin_ia32_prorvq128_mask,
11534         __builtin_ia32_prorq256_mask, __builtin_ia32_prorq128_mask,
11535         __builtin_ia32_psravq128_mask, __builtin_ia32_psravq256_mask,
11536         __builtin_ia32_psllv4di_mask, __builtin_ia32_psllv2di_mask,
11537         __builtin_ia32_psllv8si_mask, __builtin_ia32_psllv4si_mask,
11538         __builtin_ia32_psrav8si_mask, __builtin_ia32_psrav4si_mask,
11539         __builtin_ia32_psrlv4di_mask, __builtin_ia32_psrlv2di_mask,
11540         __builtin_ia32_psrlv8si_mask, __builtin_ia32_psrlv4si_mask,
11541         __builtin_ia32_psrawi256_mask, __builtin_ia32_psraw256_mask,
11542         __builtin_ia32_psrawi128_mask, __builtin_ia32_psraw128_mask,
11543         __builtin_ia32_psrlwi256_mask, __builtin_ia32_psrlw256_mask,
11544         __builtin_ia32_psrlwi128_mask, __builtin_ia32_psrlw128_mask,
11545         __builtin_ia32_prorvd256_mask, __builtin_ia32_prolvd256_mask,
11546         __builtin_ia32_prord256_mask, __builtin_ia32_prold256_mask,
11547         __builtin_ia32_prorvd128_mask, __builtin_ia32_prolvd128_mask,
11548         __builtin_ia32_prord128_mask, __builtin_ia32_prold128_mask,
11549         __builtin_ia32_fpclasspd256_mask, __builtin_ia32_fpclasspd128_mask,
11550         __builtin_ia32_fpclasssd, __builtin_ia32_fpclassps256_mask,
11551         __builtin_ia32_fpclassps128_mask, __builtin_ia32_fpclassss,
11552         __builtin_ia32_cvtb2mask128, __builtin_ia32_cvtb2mask256,
11553         __builtin_ia32_cvtw2mask128, __builtin_ia32_cvtw2mask256,
11554         __builtin_ia32_cvtd2mask128, __builtin_ia32_cvtd2mask256,
11555         __builtin_ia32_cvtq2mask128, __builtin_ia32_cvtq2mask256,
11556         __builtin_ia32_cvtmask2b128, __builtin_ia32_cvtmask2b256,
11557         __builtin_ia32_cvtmask2w128, __builtin_ia32_cvtmask2w256,
11558         __builtin_ia32_cvtmask2d128, __builtin_ia32_cvtmask2d256,
11559         __builtin_ia32_cvtmask2q128, __builtin_ia32_cvtmask2q256,
11560         __builtin_ia32_pcmpeqb128_mask, __builtin_ia32_pcmpeqb256_mask,
11561         __builtin_ia32_pcmpeqw128_mask, __builtin_ia32_pcmpeqw256_mask,
11562         __builtin_ia32_pcmpeqd128_mask, __builtin_ia32_pcmpeqd256_mask,
11563         __builtin_ia32_pcmpeqq128_mask, __builtin_ia32_pcmpeqq256_mask,
11564         __builtin_ia32_pcmpgtb128_mask, __builtin_ia32_pcmpgtb256_mask,
11565         __builtin_ia32_pcmpgtw128_mask, __builtin_ia32_pcmpgtw256_mask,
11566         __builtin_ia32_pcmpgtd128_mask, __builtin_ia32_pcmpgtd256_mask,
11567         __builtin_ia32_pcmpgtq128_mask, __builtin_ia32_pcmpgtq256_mask,
11568         __builtin_ia32_ptestmb128, __builtin_ia32_ptestmb256,
11569         __builtin_ia32_ptestmw128, __builtin_ia32_ptestmw256,
11570         __builtin_ia32_ptestmd128, __builtin_ia32_ptestmd256,
11571         __builtin_ia32_ptestmq128, __builtin_ia32_ptestmq256,
11572         __builtin_ia32_ptestnmb128, __builtin_ia32_ptestnmb256,
11573         __builtin_ia32_ptestnmw128, __builtin_ia32_ptestnmw256,
11574         __builtin_ia32_ptestnmd128, __builtin_ia32_ptestnmd256,
11575         __builtin_ia32_ptestnmq128, __builtin_ia32_ptestnmq256,
11576         __builtin_ia32_broadcastmb128, __builtin_ia32_broadcastmb256,
11577         __builtin_ia32_broadcastmw128, __builtin_ia32_broadcastmw256,
11578         __builtin_ia32_compressdf256_mask, __builtin_ia32_compressdf128_mask,
11579         __builtin_ia32_compresssf256_mask, __builtin_ia32_compresssf128_mask,
11580         __builtin_ia32_compressdi256_mask, __builtin_ia32_compressdi128_mask,
11581         __builtin_ia32_compresssi256_mask, __builtin_ia32_compresssi128_mask,
11582         __builtin_ia32_expanddf256_mask, __builtin_ia32_expanddf128_mask,
11583         __builtin_ia32_expandsf256_mask, __builtin_ia32_expandsf128_mask,
11584         __builtin_ia32_expanddi256_mask, __builtin_ia32_expanddi128_mask,
11585         __builtin_ia32_expandsi256_mask, __builtin_ia32_expandsi128_mask,
11586         __builtin_ia32_expanddf256_maskz, __builtin_ia32_expanddf128_maskz,
11587         __builtin_ia32_expandsf256_maskz, __builtin_ia32_expandsf128_maskz,
11588         __builtin_ia32_expanddi256_maskz, __builtin_ia32_expanddi128_maskz,
11589         __builtin_ia32_expandsi256_maskz, __builtin_ia32_expandsi128_maskz,
11590         __builtin_ia32_pmaxsd256_mask, __builtin_ia32_pminsd256_mask,
11591         __builtin_ia32_pmaxud256_mask, __builtin_ia32_pminud256_mask,
11592         __builtin_ia32_pmaxsd128_mask, __builtin_ia32_pminsd128_mask,
11593         __builtin_ia32_pmaxud128_mask, __builtin_ia32_pminud128_mask,
11594         __builtin_ia32_pmaxsq256_mask, __builtin_ia32_pminsq256_mask,
11595         __builtin_ia32_pmaxuq256_mask, __builtin_ia32_pminuq256_mask,
11596         __builtin_ia32_pmaxsq128_mask, __builtin_ia32_pminsq128_mask,
11597         __builtin_ia32_pmaxuq128_mask, __builtin_ia32_pminuq128_mask,
11598         __builtin_ia32_pminsb256_mask, __builtin_ia32_pminub256_mask,
11599         __builtin_ia32_pmaxsb256_mask, __builtin_ia32_pmaxub256_mask,
11600         __builtin_ia32_pminsb128_mask, __builtin_ia32_pminub128_mask,
11601         __builtin_ia32_pmaxsb128_mask, __builtin_ia32_pmaxub128_mask,
11602         __builtin_ia32_pminsw256_mask, __builtin_ia32_pminuw256_mask,
11603         __builtin_ia32_pmaxsw256_mask, __builtin_ia32_pmaxuw256_mask,
11604         __builtin_ia32_pminsw128_mask, __builtin_ia32_pminuw128_mask,
11605         __builtin_ia32_pmaxsw128_mask, __builtin_ia32_pmaxuw128_mask,
11606         __builtin_ia32_vpconflictdi_256_mask, __builtin_ia32_vpconflictsi_256_mask,
11607         __builtin_ia32_vplzcntq_256_mask, __builtin_ia32_vplzcntd_256_mask,
11608         __builtin_ia32_unpckhpd256_mask, __builtin_ia32_unpckhpd128_mask,
11609         __builtin_ia32_unpckhps256_mask, __builtin_ia32_unpckhps128_mask,
11610         __builtin_ia32_unpcklpd256_mask, __builtin_ia32_unpcklpd128_mask,
11611         __builtin_ia32_unpcklps256_mask, __builtin_ia32_vpconflictdi_128_mask,
11612         __builtin_ia32_vpconflictsi_128_mask, __builtin_ia32_vplzcntq_128_mask,
11613         __builtin_ia32_vplzcntd_128_mask, __builtin_ia32_unpcklps128_mask,
11614         __builtin_ia32_alignd256_mask, __builtin_ia32_alignq256_mask,
11615         __builtin_ia32_alignd128_mask, __builtin_ia32_alignq128_mask,
11616         __builtin_ia32_vcvtps2ph256_mask, __builtin_ia32_vcvtps2ph_mask,
11617         __builtin_ia32_vcvtph2ps_mask, __builtin_ia32_vcvtph2ps256_mask,
11618         __builtin_ia32_punpckhdq128_mask, __builtin_ia32_punpckhdq256_mask,
11619         __builtin_ia32_punpckhqdq128_mask, __builtin_ia32_punpckhqdq256_mask,
11620         __builtin_ia32_punpckldq128_mask, __builtin_ia32_punpckldq256_mask,
11621         __builtin_ia32_punpcklqdq128_mask, __builtin_ia32_punpcklqdq256_mask,
11622         __builtin_ia32_punpckhbw128_mask, __builtin_ia32_punpckhbw256_mask,
11623         __builtin_ia32_punpckhwd128_mask, __builtin_ia32_punpckhwd256_mask,
11624         __builtin_ia32_punpcklbw128_mask, __builtin_ia32_punpcklbw256_mask,
11625         __builtin_ia32_punpcklwd128_mask, __builtin_ia32_punpcklwd256_mask,
11626         __builtin_ia32_psllv16hi_mask, __builtin_ia32_psllv8hi_mask,
11627         __builtin_ia32_packssdw256_mask, __builtin_ia32_packssdw128_mask,
11628         __builtin_ia32_packusdw256_mask, __builtin_ia32_packusdw128_mask,
11629         __builtin_ia32_pavgb256_mask, __builtin_ia32_pavgw256_mask,
11630         __builtin_ia32_pavgb128_mask, __builtin_ia32_pavgw128_mask,
11631         __builtin_ia32_permvarsf256_mask, __builtin_ia32_permvardf256_mask,
11632         __builtin_ia32_permdf256_mask, __builtin_ia32_pabsb256_mask,
11633         __builtin_ia32_pabsb128_mask, __builtin_ia32_pabsw256_mask,
11634         __builtin_ia32_pabsw128_mask, __builtin_ia32_vpermilvarpd_mask,
11635         __builtin_ia32_vpermilvarps_mask, __builtin_ia32_vpermilvarpd256_mask,
11636         __builtin_ia32_vpermilvarps256_mask, __builtin_ia32_vpermilpd_mask,
11637         __builtin_ia32_vpermilps_mask, __builtin_ia32_vpermilpd256_mask,
11638         __builtin_ia32_vpermilps256_mask, __builtin_ia32_blendmq_256_mask,
11639         __builtin_ia32_blendmd_256_mask, __builtin_ia32_blendmpd_256_mask,
11640         __builtin_ia32_blendmps_256_mask, __builtin_ia32_blendmq_128_mask,
11641         __builtin_ia32_blendmd_128_mask, __builtin_ia32_blendmpd_128_mask,
11642         __builtin_ia32_blendmps_128_mask, __builtin_ia32_blendmw_256_mask,
11643         __builtin_ia32_blendmb_256_mask, __builtin_ia32_blendmw_128_mask,
11644         __builtin_ia32_blendmb_128_mask, __builtin_ia32_pmulld256_mask,
11645         __builtin_ia32_pmulld128_mask, __builtin_ia32_pmuludq256_mask,
11646         __builtin_ia32_pmuldq256_mask, __builtin_ia32_pmuldq128_mask,
11647         __builtin_ia32_pmuludq128_mask, __builtin_ia32_cvtpd2ps256_mask,
11648         __builtin_ia32_cvtpd2ps_mask, __builtin_ia32_permvarsi256_mask,
11649         __builtin_ia32_permvardi256_mask, __builtin_ia32_permdi256_mask,
11650         __builtin_ia32_cmpq256_mask, __builtin_ia32_cmpd256_mask,
11651         __builtin_ia32_ucmpq256_mask, __builtin_ia32_ucmpd256_mask,
11652         __builtin_ia32_cmpb256_mask, __builtin_ia32_cmpw256_mask,
11653         __builtin_ia32_ucmpb256_mask, __builtin_ia32_ucmpw256_mask,
11654         __builtin_ia32_cmppd256_mask, __builtin_ia32_cmpps256_mask,
11655         __builtin_ia32_cmpq128_mask, __builtin_ia32_cmpd128_mask,
11656         __builtin_ia32_ucmpq128_mask, __builtin_ia32_ucmpd128_mask,
11657         __builtin_ia32_cmpb128_mask, __builtin_ia32_cmpw128_mask,
11658         __builtin_ia32_ucmpb128_mask, __builtin_ia32_ucmpw128_mask,
11659         __builtin_ia32_cmppd128_mask, __builtin_ia32_cmpps128_mask,
11660         __builtin_ia32_broadcastf32x2_512_mask, __builtin_ia32_broadcasti32x2_512_mask,
11661         __builtin_ia32_broadcastf64x2_512_mask, __builtin_ia32_broadcasti64x2_512_mask,
11662         __builtin_ia32_broadcastf32x8_512_mask, __builtin_ia32_broadcasti32x8_512_mask,
11663         __builtin_ia32_extractf64x2_512_mask, __builtin_ia32_extractf32x8_mask,
11664         __builtin_ia32_extracti64x2_512_mask, __builtin_ia32_extracti32x8_mask,
11665         __builtin_ia32_reducepd512_mask, __builtin_ia32_reduceps512_mask,
11666         __builtin_ia32_pmullq512_mask, __builtin_ia32_xorpd512_mask,
11667         __builtin_ia32_xorps512_mask, __builtin_ia32_orpd512_mask,
11668         __builtin_ia32_orps512_mask, __builtin_ia32_andpd512_mask,
11669         __builtin_ia32_andps512_mask, __builtin_ia32_andnpd512_mask,
11670         __builtin_ia32_andnps512_mask, __builtin_ia32_insertf32x8_mask,
11671         __builtin_ia32_inserti32x8_mask, __builtin_ia32_insertf64x2_512_mask,
11672         __builtin_ia32_inserti64x2_512_mask, __builtin_ia32_fpclasspd512_mask,
11673         __builtin_ia32_fpclassps512_mask, __builtin_ia32_cvtd2mask512,
11674         __builtin_ia32_cvtq2mask512, __builtin_ia32_cvtmask2d512,
11675         __builtin_ia32_cvtmask2q512, __builtin_ia32_kunpcksi,
11676         __builtin_ia32_kunpckdi, __builtin_ia32_packusdw512_mask,
11677         __builtin_ia32_pslldq512, __builtin_ia32_psrldq512,
11678         __builtin_ia32_packssdw512_mask, __builtin_ia32_palignr512,
11679         __builtin_ia32_palignr512_mask, __builtin_ia32_movdquhi512_mask,
11680         __builtin_ia32_movdquqi512_mask, __builtin_ia32_psadbw512,
11681         __builtin_ia32_dbpsadbw512_mask, __builtin_ia32_pbroadcastb512_mask,
11682         __builtin_ia32_pbroadcastb512_gpr_mask, __builtin_ia32_pbroadcastw512_mask,
11683         __builtin_ia32_pbroadcastw512_gpr_mask, __builtin_ia32_pmovsxbw512_mask,
11684         __builtin_ia32_pmovzxbw512_mask, __builtin_ia32_permvarhi512_mask,
11685         __builtin_ia32_vpermt2varhi512_mask, __builtin_ia32_vpermt2varhi512_maskz,
11686         __builtin_ia32_vpermi2varhi512_mask, __builtin_ia32_pavgb512_mask,
11687         __builtin_ia32_pavgw512_mask, __builtin_ia32_paddb512_mask,
11688         __builtin_ia32_psubb512_mask, __builtin_ia32_psubsb512_mask,
11689         __builtin_ia32_paddsb512_mask, __builtin_ia32_psubusb512_mask,
11690         __builtin_ia32_paddusb512_mask, __builtin_ia32_psubw512_mask,
11691         __builtin_ia32_paddw512_mask, __builtin_ia32_psubsw512_mask,
11692         __builtin_ia32_paddsw512_mask, __builtin_ia32_psubusw512_mask,
11693         __builtin_ia32_paddusw512_mask, __builtin_ia32_pmaxuw512_mask,
11694         __builtin_ia32_pmaxsw512_mask, __builtin_ia32_pminuw512_mask,
11695         __builtin_ia32_pminsw512_mask, __builtin_ia32_pmaxub512_mask,
11696         __builtin_ia32_pmaxsb512_mask, __builtin_ia32_pminub512_mask,
11697         __builtin_ia32_pminsb512_mask, __builtin_ia32_pmovwb512_mask,
11698         __builtin_ia32_pmovswb512_mask, __builtin_ia32_pmovuswb512_mask,
11699         __builtin_ia32_pmulhrsw512_mask, __builtin_ia32_pmulhuw512_mask,
11700         __builtin_ia32_pmulhw512_mask, __builtin_ia32_pmullw512_mask,
11701         __builtin_ia32_psllwi512_mask, __builtin_ia32_psllw512_mask,
11702         __builtin_ia32_packsswb512_mask, __builtin_ia32_packuswb512_mask,
11703         __builtin_ia32_psrav32hi_mask, __builtin_ia32_pmaddubsw512_mask,
11704         __builtin_ia32_pmaddwd512_mask, __builtin_ia32_psrlv32hi_mask,
11705         __builtin_ia32_punpckhbw512_mask, __builtin_ia32_punpckhwd512_mask,
11706         __builtin_ia32_punpcklbw512_mask, __builtin_ia32_punpcklwd512_mask,
11707         __builtin_ia32_pshufb512_mask, __builtin_ia32_pshufhw512_mask,
11708         __builtin_ia32_pshuflw512_mask, __builtin_ia32_psrawi512_mask,
11709         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
11710         __builtin_ia32_psrlw512_mask, __builtin_ia32_cvtb2mask512,
11711         __builtin_ia32_cvtw2mask512, __builtin_ia32_cvtmask2b512,
11712         __builtin_ia32_cvtmask2w512, __builtin_ia32_pcmpeqb512_mask,
11713         __builtin_ia32_pcmpeqw512_mask, __builtin_ia32_pcmpgtb512_mask,
11714         __builtin_ia32_pcmpgtw512_mask, __builtin_ia32_ptestmb512,
11715         __builtin_ia32_ptestmw512, __builtin_ia32_ptestnmb512,
11716         __builtin_ia32_ptestnmw512, __builtin_ia32_psllv32hi_mask,
11717         __builtin_ia32_pabsb512_mask, __builtin_ia32_pabsw512_mask,
11718         __builtin_ia32_blendmw_512_mask, __builtin_ia32_blendmb_512_mask,
11719         __builtin_ia32_cmpb512_mask, __builtin_ia32_cmpw512_mask,
11720         __builtin_ia32_ucmpb512_mask, __builtin_ia32_ucmpw512_mask,
11721         __builtin_ia32_rangesd128_round, __builtin_ia32_rangess128_round,
11722         __builtin_ia32_cvtpd2qq512_mask, __builtin_ia32_cvtps2qq512_mask,
11723         __builtin_ia32_cvtpd2uqq512_mask, __builtin_ia32_cvtps2uqq512_mask,
11724         __builtin_ia32_cvtqq2ps512_mask, __builtin_ia32_cvtuqq2ps512_mask,
11725         __builtin_ia32_cvtqq2pd512_mask, __builtin_ia32_cvtuqq2pd512_mask,
11726         __builtin_ia32_cvttps2qq512_mask, __builtin_ia32_cvttps2uqq512_mask,
11727         __builtin_ia32_cvttpd2qq512_mask, __builtin_ia32_cvttpd2uqq512_mask,
11728         __builtin_ia32_rangeps512_mask, __builtin_ia32_rangepd512_mask.
11729         (ix86_expand_args_builtin): Handle HI_FTYPE_V16QI, SI_FTYPE_V32QI,
11730         DI_FTYPE_V64QI, V16QI_FTYPE_HI, V32QI_FTYPE_SI, V64QI_FTYPE_DI,
11731         V8HI_FTYPE_QI, V16HI_FTYPE_HI, V32HI_FTYPE_SI, V4SI_FTYPE_QI,
11732         V8SI_FTYPE_QI, V4SI_FTYPE_HI, V8SI_FTYPE_HI, QI_FTYPE_V8HI,
11733         HI_FTYPE_V16HI, SI_FTYPE_V32HI, QI_FTYPE_V4SI, QI_FTYPE_V8SI,
11734         HI_FTYPE_V16SI, QI_FTYPE_V2DI, QI_FTYPE_V4DI, QI_FTYPE_V8DI,
11735         V2DI_FTYPE_QI, V4DI_FTYPE_QI, V8DI_FTYPE_V64QI_V64QI,
11736         SI_FTYPE_SI_SI,DI_FTYPE_DI_DI, V8DI_FTYPE_V8DI_INT_CONVERT,
11737         QI_FTYPE_V4SF_INT, QI_FTYPE_V2DF_INT,
11738         V8SF_FTYPE_V4SF_V8SF_QI, V4DF_FTYPE_V2DF_V4DF_QI,
11739         V8SI_FTYPE_V4SI_V8SI_QI, V8SI_FTYPE_SI_V8SI_QI,
11740         V4SI_FTYPE_V4SI_V4SI_QI, V4SI_FTYPE_SI_V4SI_QI,
11741         V4DI_FTYPE_V2DI_V4DI_QI, V4DI_FTYPE_DI_V4DI_QI,
11742         V2DI_FTYPE_V2DI_V2DI_QI, V2DI_FTYPE_DI_V2DI_QI,
11743         V64QI_FTYPE_V64QI_V64QI_DI, V64QI_FTYPE_V16QI_V64QI_DI,
11744         V64QI_FTYPE_QI_V64QI_DI, V32QI_FTYPE_V32QI_V32QI_SI,
11745         V32QI_FTYPE_V16QI_V32QI_SI, V32QI_FTYPE_QI_V32QI_SI,
11746         V16QI_FTYPE_V16QI_V16QI_HI, V16QI_FTYPE_QI_V16QI_HI,
11747         V32HI_FTYPE_V8HI_V32HI_SI, V32HI_FTYPE_HI_V32HI_SI,
11748         V16HI_FTYPE_V8HI_V16HI_HI, V16HI_FTYPE_HI_V16HI_HI,
11749         V8HI_FTYPE_V8HI_V8HI_QI, V8HI_FTYPE_HI_V8HI_QI,
11750         V8SF_FTYPE_V8HI_V8SF_QI, V4SF_FTYPE_V8HI_V4SF_QI,
11751         V8SI_FTYPE_V8SF_V8SI_QI, V4SI_FTYPE_V4SF_V4SI_QI,
11752         V8DI_FTYPE_V8SF_V8DI_QI, V4DI_FTYPE_V4SF_V4DI_QI,
11753         V2DI_FTYPE_V4SF_V2DI_QI, V8SF_FTYPE_V8DI_V8SF_QI,
11754         V4SF_FTYPE_V4DI_V4SF_QI, V4SF_FTYPE_V2DI_V4SF_QI,
11755         V8DF_FTYPE_V8DI_V8DF_QI, V4DF_FTYPE_V4DI_V4DF_QI,
11756         V2DF_FTYPE_V2DI_V2DF_QI, V16QI_FTYPE_V8HI_V16QI_QI,
11757         V16QI_FTYPE_V16HI_V16QI_HI, V16QI_FTYPE_V4SI_V16QI_QI,
11758         V16QI_FTYPE_V8SI_V16QI_QI, V8HI_FTYPE_V4SI_V8HI_QI,
11759         V8HI_FTYPE_V8SI_V8HI_QI, V16QI_FTYPE_V2DI_V16QI_QI,
11760         V16QI_FTYPE_V4DI_V16QI_QI, V8HI_FTYPE_V2DI_V8HI_QI,
11761         V8HI_FTYPE_V4DI_V8HI_QI, V4SI_FTYPE_V2DI_V4SI_QI,
11762         V4SI_FTYPE_V4DI_V4SI_QI, V32QI_FTYPE_V32HI_V32QI_SI,
11763         HI_FTYPE_V16QI_V16QI_HI, SI_FTYPE_V32QI_V32QI_SI,
11764         DI_FTYPE_V64QI_V64QI_DI, QI_FTYPE_V8HI_V8HI_QI,
11765         HI_FTYPE_V16HI_V16HI_HI, SI_FTYPE_V32HI_V32HI_SI,
11766         QI_FTYPE_V4SI_V4SI_QI, QI_FTYPE_V8SI_V8SI_QI,
11767         QI_FTYPE_V2DI_V2DI_QI, QI_FTYPE_V4DI_V4DI_QI,
11768         V4SF_FTYPE_V2DF_V4SF_QI, V4SF_FTYPE_V4DF_V4SF_QI,
11769         V2DI_FTYPE_V4SI_V2DI_QI, V2DI_FTYPE_V8HI_V2DI_QI,
11770         V2DI_FTYPE_V16QI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_QI,
11771         V4DI_FTYPE_V4SI_V4DI_QI, V4DI_FTYPE_V8HI_V4DI_QI,
11772         V4DI_FTYPE_V16QI_V4DI_QI, V8DI_FTYPE_V8DF_V8DI_QI,
11773         V4DI_FTYPE_V4DF_V4DI_QI, V2DI_FTYPE_V2DF_V2DI_QI,
11774         V4SI_FTYPE_V4DF_V4SI_QI, V4SI_FTYPE_V2DF_V4SI_QI,
11775         V4SI_FTYPE_V8HI_V4SI_QI, V4SI_FTYPE_V16QI_V4SI_QI,
11776         V8SI_FTYPE_V8SI_V8SI_V8SI, V8SF_FTYPE_V8SF_V8SF_QI,
11777         V8SF_FTYPE_V8SI_V8SF_QI, V4DF_FTYPE_V4DF_V4DF_QI,
11778         V4SF_FTYPE_V4SF_V4SF_QI, V2DF_FTYPE_V2DF_V2DF_QI,
11779         V2DF_FTYPE_V4SF_V2DF_QI, V2DF_FTYPE_V4SI_V2DF_QI,
11780         V4SF_FTYPE_V4SI_V4SF_QI, V4DF_FTYPE_V4SF_V4DF_QI,
11781         V4DF_FTYPE_V4SI_V4DF_QI, V8SI_FTYPE_V8SI_V8SI_QI,
11782         V8SI_FTYPE_V8HI_V8SI_QI, V8SI_FTYPE_V16QI_V8SI_QI,
11783         V16SF_FTYPE_V8SF_V16SF_HI, V16SI_FTYPE_V8SI_V16SI_HI,
11784         V16HI_FTYPE_V16HI_V16HI_HI, V8HI_FTYPE_V16QI_V8HI_QI,
11785         V16HI_FTYPE_V16QI_V16HI_HI, V32HI_FTYPE_V32HI_V32HI_SI,
11786         V32HI_FTYPE_V32QI_V32HI_SI, V8DI_FTYPE_V8DI_V8DI_INT_CONVERT,
11787         V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI_CONVERT, QI_FTYPE_V8DF_INT_QI,
11788         QI_FTYPE_V4DF_INT_QI, QI_FTYPE_V2DF_INT_QI,
11789         HI_FTYPE_V16SF_INT_HI, QI_FTYPE_V8SF_INT_QI,
11790         QI_FTYPE_V4SF_INT_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI_CONVERT,
11791         V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI_CONVERT, V32QI_FTYPE_V32QI_V32QI_V32QI_SI,
11792         V32HI_FTYPE_V32HI_V32HI_V32HI_SI, V32HI_FTYPE_V64QI_V64QI_V32HI_SI,
11793         V16SI_FTYPE_V32HI_V32HI_V16SI_HI, V64QI_FTYPE_V64QI_V64QI_V64QI_DI,
11794         V32HI_FTYPE_V32HI_V8HI_V32HI_SI, V16HI_FTYPE_V16HI_V8HI_V16HI_HI,
11795         V8SI_FTYPE_V8SI_V4SI_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_V4DI_QI,
11796         V64QI_FTYPE_V32HI_V32HI_V64QI_DI, V32QI_FTYPE_V16HI_V16HI_V32QI_SI,
11797         V16QI_FTYPE_V8HI_V8HI_V16QI_HI, V32HI_FTYPE_V16SI_V16SI_V32HI_SI,
11798         V16HI_FTYPE_V8SI_V8SI_V16HI_HI, V8HI_FTYPE_V4SI_V4SI_V8HI_QI,
11799         V4DF_FTYPE_V4DF_V4DI_V4DF_QI, V8SF_FTYPE_V8SF_V8SI_V8SF_QI,
11800         V4SF_FTYPE_V4SF_V4SI_V4SF_QI, V2DF_FTYPE_V2DF_V2DI_V2DF_QI,
11801         V2DI_FTYPE_V4SI_V4SI_V2DI_QI, V4DI_FTYPE_V8SI_V8SI_V4DI_QI,
11802         V4DF_FTYPE_V4DI_V4DF_V4DF_QI, V8SF_FTYPE_V8SI_V8SF_V8SF_QI,
11803         V2DF_FTYPE_V2DI_V2DF_V2DF_QI, V4SF_FTYPE_V4SI_V4SF_V4SF_QI,
11804         V8HI_FTYPE_V8HI_V8HI_V8HI_QI, V8SI_FTYPE_V8SI_V8SI_V8SI_QI,
11805         V4SI_FTYPE_V4SI_V4SI_V4SI_QI, V8SF_FTYPE_V8SF_V8SF_V8SF_QI,
11806         V16QI_FTYPE_V16QI_V16QI_V16QI_HI, V16HI_FTYPE_V16HI_V16HI_V16HI_HI,
11807         V2DI_FTYPE_V2DI_V2DI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_V4DI_QI,
11808         V4DF_FTYPE_V4DF_V4DF_V4DF_QI, V8HI_FTYPE_V16QI_V16QI_V8HI_QI,
11809         V16HI_FTYPE_V32QI_V32QI_V16HI_HI, V8SI_FTYPE_V16HI_V16HI_V8SI_QI,
11810         V4SI_FTYPE_V8HI_V8HI_V4SI_QI, QI_FTYPE_V4DI_V4DI_INT_QI,
11811         QI_FTYPE_V8SI_V8SI_INT_QI, QI_FTYPE_V4DF_V4DF_INT_QI,
11812         QI_FTYPE_V8SF_V8SF_INT_QI, QI_FTYPE_V2DI_V2DI_INT_QI,
11813         QI_FTYPE_V4SI_V4SI_INT_QI, DI_FTYPE_V64QI_V64QI_INT_DI,
11814         SI_FTYPE_V32QI_V32QI_INT_SI, HI_FTYPE_V16QI_V16QI_INT_HI,
11815         SI_FTYPE_V32HI_V32HI_INT_SI, HI_FTYPE_V16HI_V16HI_INT_HI,
11816         QI_FTYPE_V8HI_V8HI_INT_QI, V8SF_FTYPE_V8SF_INT_V8SF_QI,
11817         V4SF_FTYPE_V4SF_INT_V4SF_QI, V2DF_FTYPE_V4DF_INT_V2DF_QI,
11818         V2DI_FTYPE_V4DI_INT_V2DI_QI, V8SF_FTYPE_V16SF_INT_V8SF_QI,
11819         V8SI_FTYPE_V16SI_INT_V8SI_QI, V2DF_FTYPE_V8DF_INT_V2DF_QI,
11820         V2DI_FTYPE_V8DI_INT_V2DI_QI, V4SF_FTYPE_V8SF_INT_V4SF_QI,
11821         V4SI_FTYPE_V8SI_INT_V4SI_QI, V8HI_FTYPE_V8SF_INT_V8HI_QI,
11822         V8HI_FTYPE_V4SF_INT_V8HI_QI, V32HI_FTYPE_V32HI_INT_V32HI_SI,
11823         V16HI_FTYPE_V16HI_INT_V16HI_HI, V8HI_FTYPE_V8HI_INT_V8HI_QI,
11824         V4DI_FTYPE_V4DI_INT_V4DI_QI, V2DI_FTYPE_V2DI_INT_V2DI_QI,
11825         V8SI_FTYPE_V8SI_INT_V8SI_QI, V4SI_FTYPE_V4SI_INT_V4SI_QI,
11826         V4DF_FTYPE_V4DF_INT_V4DF_QI, V2DF_FTYPE_V2DF_INT_V2DF_QI,
11827         V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI,
11828         V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI, V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI,
11829         V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI,
11830         V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI, V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI,
11831         V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI, V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI,
11832         V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI, V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI,
11833         V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI, V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI,
11834         V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI,
11835         V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI,
11836         V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI, V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI,
11837         V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI, V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI,
11838         V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI, V8DI_FTYPE_V8DF_V8DI_QI_INT,
11839         V8SF_FTYPE_V8DI_V8SF_QI_INT, V8DF_FTYPE_V8DI_V8DF_QI_INT,
11840         V8DI_FTYPE_V8SF_V8DI_QI_INT, V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT,
11841         V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT, VOID_FTYPE_PV4DI_V4DI_QI,
11842         VOID_FTYPE_PV2DI_V2DI_QI, VOID_FTYPE_PV8SI_V8SI_QI,
11843         VOID_FTYPE_PV4SI_V4SI_QI, VOID_FTYPE_PV4SI_V4DI_QI,
11844         VOID_FTYPE_PV4SI_V2DI_QI, VOID_FTYPE_PV8HI_V4DI_QI,
11845         VOID_FTYPE_PV8HI_V2DI_QI, VOID_FTYPE_PV8HI_V8SI_QI,
11846         VOID_FTYPE_PV8HI_V4SI_QI, VOID_FTYPE_PV16QI_V4DI_QI,
11847         VOID_FTYPE_PV16QI_V2DI_QI, VOID_FTYPE_PV16QI_V8SI_QI,
11848         VOID_FTYPE_PV16QI_V4SI_QI, VOID_FTYPE_PV8HI_V8HI_QI,
11849         VOID_FTYPE_PV16HI_V16HI_HI, VOID_FTYPE_PV32HI_V32HI_SI,
11850         VOID_FTYPE_PV16QI_V16QI_HI, VOID_FTYPE_PV32QI_V32QI_SI,
11851         VOID_FTYPE_PV64QI_V64QI_DI, VOID_FTYPE_PV4DF_V4DF_QI,
11852         VOID_FTYPE_PV2DF_V2DF_QI, VOID_FTYPE_PV8SF_V8SF_QI,
11853         VOID_FTYPE_PV4SF_V4SF_QI, V4SF_FTYPE_PCV4SF_V4SF_QI,
11854         V8SF_FTYPE_PCV8SF_V8SF_QI, V4SI_FTYPE_PCV4SI_V4SI_QI,
11855         V8SI_FTYPE_PCV8SI_V8SI_QI, V2DF_FTYPE_PCV2DF_V2DF_QI,
11856         V4DF_FTYPE_PCV4DF_V4DF_QI, V2DI_FTYPE_PCV2DI_V2DI_QI,
11857         V4DI_FTYPE_PCV4DI_V4DI_QI, V8HI_FTYPE_PCV8HI_V8HI_QI,
11858         V16HI_FTYPE_PCV16HI_V16HI_HI, V32HI_FTYPE_PCV32HI_V32HI_SI,
11859         V16QI_FTYPE_PCV16QI_V16QI_HI, V32QI_FTYPE_PCV32QI_V32QI_SI,
11860         V64QI_FTYPE_PCV64QI_V64QI_DI, do not handle V8USI_FTYPE_V8USI.
11861
11862 2014-10-28  Jakub Jelinek  <jakub@redhat.com>
11863
11864         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Use uint64_t
11865         type for the left shift in CASE_CONVERT case.
11866
11867 2014-10-28  Max Ostapenko  <m.ostapenko@partner.samsung.com>
11868
11869         * asan.h (asan_intercepted_p): New function.
11870         * asan.c (asan_mem_ref_hasher::hash): Remove MEM_REF access size from
11871         hash value construction.  Call iterative_hash_expr instead of explicit
11872         hash building.
11873         (asan_mem_ref_hasher::equal): Change condition.
11874         (has_mem_ref_been_instrumented): Likewise.
11875         (update_mem_ref_hash_table): Likewise.
11876         (maybe_update_mem_ref_hash_table): New function.
11877         (instrument_strlen_call): Removed.
11878         (get_mem_refs_of_builtin_call): Handle new parameter.
11879         (instrument_builtin_call): Call maybe_update_mem_ref_hash_table instead
11880         of instrument_mem_region_access if intercepted_p is true.
11881         (instrument_mem_region_access): Instrument only base with len instead of
11882         base and end with 1.
11883         (build_check_stmt): Remove start_instrumented and end_instrumented
11884         parameters.
11885         (enum asan_check_flags): Remove ASAN_CHECK_START_INSTRUMENTED and
11886         ASAN_CHECK_END_INSTRUMENTED.  Change ASAN_CHECK_LAST.
11887         (asan_expand_check_ifn): Remove start_instrumented and end_instrumented.
11888         * builtins.c (expand_builtin): Include asan.h.  Don't expand string/memory
11889         builtin functions that have interceptors if ASan is enabled.
11890
11891 2014-10-28  Richard Biener  <rguenther@suse.de>
11892
11893         PR middle-end/63665
11894         * fold-const.c (fold_comparison): Properly guard simplifying
11895         against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
11896
11897 2014-10-28  Alan Lawrence  <alan.lawrence@arm.com>
11898
11899         * expr.c (expand_expr_real_2): Remove code handling VEC_LSHIFT_EXPR.
11900         * fold-const.c (const_binop): Likewise.
11901         * cfgexpand.c (expand_debug_expr): Likewise.
11902         * tree-inline.c (estimate_operator_cost): Likewise.
11903         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
11904         * optabs.c (optab_for_tree_code): Likewise.
11905         (expand_vec_shift_expr): Likewise, update comment.
11906         * tree.def: Delete VEC_LSHIFT_EXPR, remove comment.
11907         * optabs.h (expand_vec_shift_expr): Remove comment re. VEC_LSHIFT_EXPR.
11908         * optabs.def: Remove vec_shl_optab.
11909         * doc/md.texi: Remove references to vec_shr_m.
11910
11911 2014-10-28  Yury Gribov  <y.gribov@samsung.com>
11912
11913         * asan.c (report_error_func): Add noabort path.
11914         (check_func): Ditto.  Formatting.
11915         (asan_expand_check_ifn): Handle noabort path.
11916         * common.opt (flag_sanitize_recover): Add SANITIZE_KERNEL_ADDRESS
11917         to default value.
11918         * doc/invoke.texi (-fsanitize-recover=): Mention KASan.
11919         * opts.c (finish_options): Reword comment.
11920         * sanitizer.def: Add noabort ASan builtins.
11921
11922 2014-10-28  Yury Gribov  <y.gribov@samsung.com>
11923
11924         * asan.c (set_asan_shadow_offset): New function.
11925         (asan_shadow_offset): Likewise.
11926         (asan_emit_stack_protection): Call asan_shadow_offset.
11927         (build_shadow_mem_access): Likewise.
11928         * asan.h (set_asan_shadow_offset): Declare.
11929         * common.opt (fasan-shadow-offset): New option.
11930         (frandom-seed): Fixed parameter name.
11931         * doc/invoke.texi (fasan-shadow-offset): Describe new option.
11932         (frandom-seed): Fixed parameter name.
11933         * opts-global.c (handle_common_deferred_options): Handle
11934         -fasan-shadow-offset.
11935         * opts.c (common_handle_option): Likewise.
11936
11937 2014-10-27  Jiong Wang <jiong.wang@arm.com>
11938
11939         PR target/63442
11940         * optabs.c (prepare_cmp_insn): Use "ret_mode" instead of "word_mode".
11941
11942 2014-10-27  DJ Delorie  <dj@redhat.com>
11943
11944         * tree.c (build_common_tree_nodes): Don't even store the
11945         __int128 types if they're not supported.
11946
11947 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11948
11949         * config/i386/i386.c (ix86_loop_memcount): Delete.
11950         (ix86_loop_unroll_adjust): Use FOR_EACH_SUBRTX.
11951
11952 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11953
11954         * config/i386/i386.c (find_constant_1): Delete.
11955         (find_constant): Use FOR_EACH_SUBRTX.
11956
11957 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11958
11959         * config/i386/i386.c (extended_reg_mentioned_1): Delete.
11960         (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.
11961
11962 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11963
11964         * config/i386/i386.c: Include rtl-iter.h
11965         (ix86_check_avx256_register): Take a const_rtx and return a bool.
11966         (ix86_check_avx256_stores): Update call accordingly.
11967         (ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise.
11968         (ix86_avx_u128_mode_needed): Likewise.  Use FOR_EACH_SUBRTX.
11969
11970 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11971
11972         * config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
11973         Take an rtx and return a bool.
11974         * config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
11975         Use FOR_EACH_SUBRTX_VAR.
11976         * config/alpha/predicates.md (some_small_symbolic_operand): Update
11977         accordingly.
11978
11979 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11980
11981         * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
11982         a bool.
11983         * config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
11984         (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX.  Return a bool.
11985
11986 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11987
11988         * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
11989         (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.
11990
11991 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11992
11993         * config/alpha/alpha.c: Include rtl-iter.h.
11994         (split_small_symbolic_operand_1): Delete.
11995         (split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR.
11996
11997 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11998
11999         * config/s390/s390.c: Include rtl-iter.h.
12000         (check_dpu): Delete.
12001         (s390_loop_unroll_adjust): Only iterate over patterns.
12002         Use FOR_EACH_SUBRTX.
12003
12004 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12005
12006         * config/spu/spu.c: Include rtl-iter.h
12007         (ea_symbol_ref): Replace with...
12008         (ea_symbol_ref_p): ...this new function.
12009         (spu_legitimate_address_p): Update call accordingly.
12010         (spu_legitimate_constant_p): Likewise.  Use FOR_EACH_SUBRTX.
12011
12012 2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
12013             Tom Tromey  <tromey@redhat.com>
12014
12015         * aclocal.m4, configure: Rebuild.
12016         * Makefile.in (aclocal_deps): Add gcc-plugin.m4.
12017         * configure.ac: Use GCC_ENABLE_PLUGINS.
12018         * stor-layout.c (finish_bitfield_layout): Now public.  Change
12019         argument type to 'tree'.
12020         (finish_record_layout): Update.
12021         * stor-layout.h (finish_bitfield_layout): Declare.
12022
12023 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12024
12025         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
12026         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
12027         Restore, enable for bigendian, update to use __builtin..._scal...
12028
12029 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12030
12031         * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
12032         reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
12033         (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
12034         reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.
12035
12036         * config/aarch64/aarch64-simd.md
12037         (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
12038         (reduc_<maxmin_uns>_internal<mode>): ...this.
12039         (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
12040         (reduc_<maxmin_uns>_scal_<mode>): New (*2).
12041
12042         (reduc_<maxmin_uns>_v2si): Combine with below, renaming...
12043         (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
12044         (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).
12045
12046         * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
12047         vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
12048         vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
12049         vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
12050         vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
12051         vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
12052         vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
12053         __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.
12054
12055 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12056
12057         * config/aarch64/aarch64-simd-builtins.def
12058         (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
12059         Remove.
12060         (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
12061
12062         * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
12063         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
12064
12065         (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
12066         (aarch64_reduc_plus_internal<mode>): ...this.
12067
12068         (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
12069         (aarch64_reduc_plus_internalv2si): ...this.
12070
12071         (reduc_splus_<mode>/V2F): Rename to...
12072         (aarch64_reduc_plus_internal<mode>): ...this.
12073
12074         * config/aarch64/iterators.md
12075         (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
12076         (UNSPEC_ADDV): New.
12077         (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
12078
12079         * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
12080         vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
12081         vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
12082         vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
12083         __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.
12084
12085 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12086
12087         PR tree-optimization/61114
12088         * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
12089         optabs, and note in reduc_[us](plus|min|max) to prefer the former.
12090
12091         * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
12092         back to old reduc_... + BIT_FIELD_REF only if not.
12093
12094         * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
12095         return the reduce-to-scalar (reduc_..._scal) optab.
12096         (scalar_reduc_to_vector): New.
12097
12098         * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
12099         reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
12100         New.
12101
12102         * optabs.h (scalar_reduc_to_vector): Declare.
12103
12104         * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
12105         to either scalar or vector.
12106
12107 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12108
12109         PR tree-optimization/61114
12110         * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
12111         extract_bit_field around optab result.
12112
12113         * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
12114         scalar not vector.
12115
12116         * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
12117         for REDUC_{MIN,MAX,PLUS}_EXPR.
12118
12119         * tree-vect-loop.c (vect_analyze_loop): Update comment.
12120         (vect_create_epilog_for_reduction): For direct vector reduction, use
12121         result of tree code directly without extract_bit_field.
12122
12123         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
12124         comment.
12125
12126 2014-10-27  Andrew MacLeod  <amacleod@redhat.com>
12127
12128         * basic-block.h: Remove all includes.
12129         (enum profile_status_d, struct control_flow_graph): Move to cfg.h
12130         * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
12131         * Makefile.in (GTFILES): Add cfg.h to list.
12132         * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
12133         * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
12134         * genconditions.c (write_header): Add predict.h and basic-block.h to
12135         lits of includes.
12136         * genemit.c (main): Ditto.
12137         * genpreds.c (write_insn_preds_c): Ditto.
12138         * genrecog.c (write_header): Ditto.
12139         * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
12140         to list of includes.
12141         * alias.c: Adjust include files.
12142         * asan.c: Ditto.
12143         * auto-inc-dec.c: Ditto.
12144         * auto-profile.c: Ditto.
12145         * bb-reorder.c: Ditto.
12146         * bt-load.c: Ditto.
12147         * builtins.c: Ditto.
12148         * caller-save.c: Ditto.
12149         * calls.c: Ditto.
12150         * cfg.c: Ditto.
12151         * cfganal.c: Ditto.
12152         * cfgbuild.c: Ditto.
12153         * cfgcleanup.c: Ditto.
12154         * cfgexpand.c: Ditto.
12155         * cfghooks.c: Ditto.
12156         * cfgloop.c: Ditto.
12157         * cfgloopanal.c: Ditto.
12158         * cfgloopmanip.c: Ditto.
12159         * cfgrtl.c: Ditto.
12160         * cgraphbuild.c: Ditto.
12161         * cgraphclones.c: Ditto.
12162         * cgraphunit.c: Ditto.
12163         * combine-stack-adj.c: Ditto.
12164         * combine.c: Ditto.
12165         * compare-elim.c: Ditto.
12166         * coverage.c: Ditto.
12167         * cprop.c: Ditto.
12168         * cse.c: Ditto.
12169         * cselib.c: Ditto.
12170         * data-streamer-in.c: Ditto.
12171         * data-streamer-out.c: Ditto.
12172         * data-streamer.c: Ditto.
12173         * dce.c: Ditto.
12174         * ddg.c: Ditto.
12175         * ddg.h: Ditto.
12176         * df-core.c: Ditto.
12177         * df-problems.c: Ditto.
12178         * df-scan.c: Ditto.
12179         * df.h: Ditto.
12180         * dojump.c: Ditto.
12181         * dominance.c: Ditto.
12182         * domwalk.c: Ditto.
12183         * dse.c: Ditto.
12184         * dwarf2cfi.c: Ditto.
12185         * emit-rtl.c: Ditto.
12186         * et-forest.c: Ditto.
12187         * except.c: Ditto.
12188         * expmed.c: Ditto.
12189         * expr.c: Ditto.
12190         * final.c: Ditto.
12191         * fold-const.c: Ditto.
12192         * function.c: Ditto.
12193         * fwprop.c: Ditto.
12194         * gcc-plugin.h: Ditto.
12195         * gcse.c: Ditto.
12196         * generic-match-head.c: Ditto.
12197         * ggc-page.c: Ditto.
12198         * gimple-builder.c: Ditto.
12199         * gimple-expr.c: Ditto.
12200         * gimple-fold.c: Ditto.
12201         * gimple-iterator.c: Ditto.
12202         * gimple-low.c: Ditto.
12203         * gimple-match-head.c: Ditto.
12204         * gimple-pretty-print.c: Ditto.
12205         * gimple-ssa-isolate-paths.c: Ditto.
12206         * gimple-ssa-strength-reduction.c: Ditto.
12207         * gimple-streamer-in.c: Ditto.
12208         * gimple-streamer-out.c: Ditto.
12209         * gimple-streamer.h: Ditto.
12210         * gimple-walk.c: Ditto.
12211         * gimple.c: Ditto.
12212         * gimplify-me.c: Ditto.
12213         * gimplify.c: Ditto.
12214         * graph.c: Ditto.
12215         * graphite-blocking.c: Ditto.
12216         * graphite-clast-to-gimple.c: Ditto.
12217         * graphite-dependences.c: Ditto.
12218         * graphite-interchange.c: Ditto.
12219         * graphite-isl-ast-to-gimple.c: Ditto.
12220         * graphite-optimize-isl.c: Ditto.
12221         * graphite-poly.c: Ditto.
12222         * graphite-scop-detection.c: Ditto.
12223         * graphite-sese-to-poly.c: Ditto.
12224         * graphite.c: Ditto.
12225         * haifa-sched.c: Ditto.
12226         * hw-doloop.c: Ditto.
12227         * ifcvt.c: Ditto.
12228         * init-regs.c: Ditto.
12229         * internal-fn.c: Ditto.
12230         * ipa-cp.c: Ditto.
12231         * ipa-devirt.c: Ditto.
12232         * ipa-icf-gimple.c: Ditto.
12233         * ipa-icf.c: Ditto.
12234         * ipa-inline-analysis.c: Ditto.
12235         * ipa-inline.c: Ditto.
12236         * ipa-polymorphic-call.c: Ditto.
12237         * ipa-profile.c: Ditto.
12238         * ipa-prop.c: Ditto.
12239         * ipa-pure-const.c: Ditto.
12240         * ipa-reference.c: Ditto.
12241         * ipa-split.c: Ditto.
12242         * ipa-utils.c: Ditto.
12243         * ipa.c: Ditto.
12244         * ira-build.c: Ditto.
12245         * ira-color.c: Ditto.
12246         * ira-conflicts.c: Ditto.
12247         * ira-costs.c: Ditto.
12248         * ira-emit.c: Ditto.
12249         * ira-lives.c: Ditto.
12250         * ira.c: Ditto.
12251         * jump.c: Ditto.
12252         * lcm.c: Ditto.
12253         * loop-doloop.c: Ditto.
12254         * loop-init.c: Ditto.
12255         * loop-invariant.c: Ditto.
12256         * loop-iv.c: Ditto.
12257         * loop-unroll.c: Ditto.
12258         * lower-subreg.c: Ditto.
12259         * lra-assigns.c: Ditto.
12260         * lra-coalesce.c: Ditto.
12261         * lra-constraints.c: Ditto.
12262         * lra-eliminations.c: Ditto.
12263         * lra-lives.c: Ditto.
12264         * lra-spills.c: Ditto.
12265         * lra.c: Ditto.
12266         * lto-cgraph.c: Ditto.
12267         * lto-compress.c: Ditto.
12268         * lto-opts.c: Ditto.
12269         * lto-section-in.c: Ditto.
12270         * lto-section-out.c: Ditto.
12271         * lto-streamer-in.c: Ditto.
12272         * lto-streamer-out.c: Ditto.
12273         * lto-streamer.c: Ditto.
12274         * mcf.c: Ditto.
12275         * mode-switching.c: Ditto.
12276         * modulo-sched.c: Ditto.
12277         * omp-low.c: Ditto.
12278         * optabs.c: Ditto.
12279         * opts-global.c: Ditto.
12280         * passes.c: Ditto.
12281         * postreload-gcse.c: Ditto.
12282         * postreload.c: Ditto.
12283         * predict.c: Ditto.
12284         * print-rtl.c: Ditto.
12285         * profile.c: Ditto.
12286         * recog.c: Ditto.
12287         * ree.c: Ditto.
12288         * reg-stack.c: Ditto.
12289         * regcprop.c: Ditto.
12290         * regcprop.h: Ditto.
12291         * reginfo.c: Ditto.
12292         * regrename.c: Ditto.
12293         * regstat.c: Ditto.
12294         * reload.c: Ditto.
12295         * reload1.c: Ditto.
12296         * reorg.c: Ditto.
12297         * resource.c: Ditto.
12298         * rtlanal.c: Ditto.
12299         * sched-deps.c: Ditto.
12300         * sched-ebb.c: Ditto.
12301         * sched-int.h: Ditto.
12302         * sched-rgn.c: Ditto.
12303         * sched-vis.c: Ditto.
12304         * sel-sched-dump.c: Ditto.
12305         * sel-sched-ir.c: Ditto.
12306         * sel-sched-ir.h: Ditto.
12307         * sel-sched.c: Ditto.
12308         * sese.c: Ditto.
12309         * shrink-wrap.c: Ditto.
12310         * stack-ptr-mod.c: Ditto.
12311         * stmt.c: Ditto.
12312         * store-motion.c: Ditto.
12313         * symtab.c: Ditto.
12314         * toplev.c: Ditto.
12315         * tracer.c: Ditto.
12316         * trans-mem.c: Ditto.
12317         * tree-affine.c: Ditto.
12318         * tree-call-cdce.c: Ditto.
12319         * tree-cfg.c: Ditto.
12320         * tree-cfgcleanup.c: Ditto.
12321         * tree-chrec.c: Ditto.
12322         * tree-complex.c: Ditto.
12323         * tree-data-ref.c: Ditto.
12324         * tree-dfa.c: Ditto.
12325         * tree-eh.c: Ditto.
12326         * tree-emutls.c: Ditto.
12327         * tree-if-conv.c: Ditto.
12328         * tree-inline.c: Ditto.
12329         * tree-into-ssa.c: Ditto.
12330         * tree-loop-distribution.c: Ditto.
12331         * tree-nested.c: Ditto.
12332         * tree-nrv.c: Ditto.
12333         * tree-object-size.c: Ditto.
12334         * tree-outof-ssa.c: Ditto.
12335         * tree-parloops.c: Ditto.
12336         * tree-phinodes.c: Ditto.
12337         * tree-predcom.c: Ditto.
12338         * tree-pretty-print.c: Ditto.
12339         * tree-profile.c: Ditto.
12340         * tree-scalar-evolution.c: Ditto.
12341         * tree-sra.c: Ditto.
12342         * tree-ssa-address.c: Ditto.
12343         * tree-ssa-alias.c: Ditto.
12344         * tree-ssa-ccp.c: Ditto.
12345         * tree-ssa-coalesce.c: Ditto.
12346         * tree-ssa-copy.c: Ditto.
12347         * tree-ssa-copyrename.c: Ditto.
12348         * tree-ssa-dce.c: Ditto.
12349         * tree-ssa-dom.c: Ditto.
12350         * tree-ssa-dse.c: Ditto.
12351         * tree-ssa-forwprop.c: Ditto.
12352         * tree-ssa-ifcombine.c: Ditto.
12353         * tree-ssa-live.c: Ditto.
12354         * tree-ssa-loop-ch.c: Ditto.
12355         * tree-ssa-loop-im.c: Ditto.
12356         * tree-ssa-loop-ivcanon.c: Ditto.
12357         * tree-ssa-loop-ivopts.c: Ditto.
12358         * tree-ssa-loop-manip.c: Ditto.
12359         * tree-ssa-loop-niter.c: Ditto.
12360         * tree-ssa-loop-prefetch.c: Ditto.
12361         * tree-ssa-loop-unswitch.c: Ditto.
12362         * tree-ssa-loop.c: Ditto.
12363         * tree-ssa-math-opts.c: Ditto.
12364         * tree-ssa-operands.c: Ditto.
12365         * tree-ssa-phiopt.c: Ditto.
12366         * tree-ssa-phiprop.c: Ditto.
12367         * tree-ssa-pre.c: Ditto.
12368         * tree-ssa-propagate.c: Ditto.
12369         * tree-ssa-reassoc.c: Ditto.
12370         * tree-ssa-sccvn.c: Ditto.
12371         * tree-ssa-sink.c: Ditto.
12372         * tree-ssa-strlen.c: Ditto.
12373         * tree-ssa-structalias.c: Ditto.
12374         * tree-ssa-tail-merge.c: Ditto.
12375         * tree-ssa-ter.c: Ditto.
12376         * tree-ssa-threadedge.c: Ditto.
12377         * tree-ssa-threadupdate.c: Ditto.
12378         * tree-ssa-uncprop.c: Ditto.
12379         * tree-ssa-uninit.c: Ditto.
12380         * tree-ssa.c: Ditto.
12381         * tree-ssanames.c: Ditto.
12382         * tree-stdarg.c: Ditto.
12383         * tree-streamer-in.c: Ditto.
12384         * tree-streamer-out.c: Ditto.
12385         * tree-streamer.c: Ditto.
12386         * tree-switch-conversion.c: Ditto.
12387         * tree-tailcall.c: Ditto.
12388         * tree-vect-data-refs.c: Ditto.
12389         * tree-vect-generic.c: Ditto.
12390         * tree-vect-loop-manip.c: Ditto.
12391         * tree-vect-loop.c: Ditto.
12392         * tree-vect-patterns.c: Ditto.
12393         * tree-vect-slp.c: Ditto.
12394         * tree-vect-stmts.c: Ditto.
12395         * tree-vectorizer.c: Ditto.
12396         * tree-vrp.c: Ditto.
12397         * tree.c: Ditto.
12398         * tsan.c: Ditto.
12399         * ubsan.c: Ditto.
12400         * valtrack.c: Ditto.
12401         * valtrack.h: Ditto.
12402         * value-prof.c: Ditto.
12403         * var-tracking.c: Ditto.
12404         * varasm.c: Ditto.
12405         * varpool.c: Ditto.
12406         * vtable-verify.c: Ditto.
12407         * web.c: Ditto.
12408         * config/aarch64/aarch64-builtins.c: Ditto.
12409         * config/aarch64/aarch64.c: Ditto.
12410         * config/alpha/alpha.c: Ditto.
12411         * config/arc/arc.c: Ditto.
12412         * config/arm/arm.c: Ditto.
12413         * config/avr/avr.c: Ditto.
12414         * config/bfin/bfin.c: Ditto.
12415         * config/c6x/c6x.c: Ditto.
12416         * config/cr16/cr16.c: Ditto.
12417         * config/cris/cris.c: Ditto.
12418         * config/darwin-c.c: Ditto.
12419         * config/darwin.c: Ditto.
12420         * config/epiphany/epiphany.c: Ditto.
12421         * config/epiphany/mode-switch-use.c: Ditto.
12422         * config/epiphany/resolve-sw-modes.c: Ditto.
12423         * config/fr30/fr30.c: Ditto.
12424         * config/frv/frv.c: Ditto.
12425         * config/h8300/h8300.c: Ditto.
12426         * config/i386/i386.c: Ditto.
12427         * config/i386/winnt.c: Ditto.
12428         * config/ia64/ia64.c: Ditto.
12429         * config/iq2000/iq2000.c: Ditto.
12430         * config/lm32/lm32.c: Ditto.
12431         * config/m32c/m32c.c: Ditto.
12432         * config/m32r/m32r.c: Ditto.
12433         * config/m68k/m68k.c: Ditto.
12434         * config/mcore/mcore.c: Ditto.
12435         * config/mep/mep.c: Ditto.
12436         * config/microblaze/microblaze.c: Ditto.
12437         * config/mips/mips.c: Ditto.
12438         * config/mmix/mmix.c: Ditto.
12439         * config/mn10300/mn10300.c: Ditto.
12440         * config/moxie/moxie.c: Ditto.
12441         * config/msp430/msp430.c: Ditto.
12442         * config/nds32/nds32-cost.c: Ditto.
12443         * config/nds32/nds32-fp-as-gp.c: Ditto.
12444         * config/nds32/nds32-intrinsic.c: Ditto.
12445         * config/nds32/nds32-isr.c: Ditto.
12446         * config/nds32/nds32-md-auxiliary.c: Ditto.
12447         * config/nds32/nds32-memory-manipulation.c: Ditto.
12448         * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
12449         * config/nds32/nds32-predicates.c: Ditto.
12450         * config/nds32/nds32.c: Ditto.
12451         * config/nios2/nios2.c: Ditto.
12452         * config/pa/pa.c: Ditto.
12453         * config/pdp11/pdp11.c: Ditto.
12454         * config/rl78/rl78.c: Ditto.
12455         * config/rs6000/rs6000.c: Ditto.
12456         * config/rx/rx.c: Ditto.
12457         * config/s390/s390.c: Ditto.
12458         * config/sh/sh-mem.cc: Ditto.
12459         * config/sh/sh.c: Ditto.
12460         * config/sh/sh_optimize_sett_clrt.cc: Ditto.
12461         * config/sh/sh_treg_combine.cc: Ditto.
12462         * config/sparc/sparc.c: Ditto.
12463         * config/spu/spu.c: Ditto.
12464         * config/stormy16/stormy16.c: Ditto.
12465         * config/tilegx/tilegx.c: Ditto.
12466         * config/tilepro/tilepro.c: Ditto.
12467         * config/v850/v850.c: Ditto.
12468         * config/vax/vax.c: Ditto.
12469         * config/xtensa/xtensa.c: Ditto.
12470
12471 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12472
12473         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
12474         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
12475         Remove using preprocessor directives.
12476
12477 2014-10-27  Richard Biener  <rguenther@suse.de>
12478
12479         * match.pd (0 % X): Properly use the iterator iterating over
12480         all modulo operators.
12481         (X % 1): Likewise.
12482
12483 2014-10-27  Richard Biener  <rguenther@suse.de>
12484
12485         * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
12486         (lattice): New global.
12487         (fwprop_ssa_val): New function.
12488         (fold_all_stmts): Likewise.
12489         (pass_forwprop::execute): Finally fold all stmts.
12490
12491 2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12492
12493         PR c++/53061
12494         * doc/invoke.texi (fmessage-length): Update text to match reality.
12495
12496 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12497
12498         * config/microblaze/microblaze.c: Include rtl-iter.h.
12499         (microblaze_tls_referenced_p_1): Delete.
12500         (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
12501
12502 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12503
12504         * config/mips/mips.c (mips_at_reg_p): Delete.
12505         (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
12506
12507 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12508
12509         * config/mips/mips.c (mips_record_lo_sum): Replace with...
12510         (mips_record_lo_sums): ...this new function.
12511         (mips_reorg_process_insns): Update accordingly.
12512
12513 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12514
12515         * config/mips/mips.c (mips_sim_insn): Update comment.
12516         (mips_sim_wait_regs_2): Delete.
12517         (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
12518
12519 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12520
12521         * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
12522         and return a bool.  Iterate over all subrtxes here.
12523         (r10k_needs_protection_p): Update accordingly.
12524
12525 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12526
12527         * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
12528         rather than an rtx pointer.  Change type of insn from "void *"
12529         to its real type.  Return bool rather than int.  Iterate over
12530         all subrtxes here.
12531         (r10k_needs_protection_p_store): Update accordingly.
12532         (r10k_needs_protection_p): Likewise.
12533
12534 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12535
12536         * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
12537         (mips16_rewrite_pool_refs): Take the insn and constant pool as
12538         parameters.  Iterate over the instruction's pattern and return void.
12539         (mips16_lay_out_constants): Update accordingly.
12540
12541 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12542
12543         * config/mips/mips.c (mips_kernel_reg_p): Replace with...
12544         (mips_refers_to_kernel_reg_p): ...this new function.
12545         (mips_expand_prologue): Update accordingly.
12546
12547 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12548
12549         * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
12550         as a parameter instead of the containing MEM.  Iterate over all
12551         subrtxes.  Don't return a value.
12552         (mips_rewrite_small_data): Update call accordingly.
12553
12554 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12555
12556         * config/mips/mips.c: Include rtl-iter.h.
12557         (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
12558         Take the context as a parameter instead of the containing MEM.
12559         Iterate over all subrtxes.
12560         (mips_small_data_pattern_p): Update call accordingly.
12561
12562 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12563
12564         * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
12565         (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
12566
12567 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12568
12569         * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
12570         return a bool.  Replace "void *" with specific type.  Iterate
12571         over all subrtxes.
12572         (mep_store_data_bypass_1): Update calls accordingly.
12573
12574 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12575
12576         * config/mep/mep.c: Include rtl-iter.h.
12577         (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
12578         (xtensa_tls_referenced_p): Return a bool.  Use FOR_EACH_SUBRTX.
12579
12580 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12581
12582         * config/xtensa/xtensa.c: Include rtl-iter.h.
12583         (xtensa_tls_referenced_p_1): Delete.
12584         (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
12585
12586 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12587
12588         * config/sh/sh.c (sh_contains_memref_p_1): Delete.
12589         (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
12590
12591 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12592
12593         * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
12594         rtx as argument and return the number of changes.
12595         * config/sh/sh.c: Include rtl-iter.h.
12596         (shmedia_cleanup_truncate): Take an rtx as argument and iterate
12597         over all subrtxes.  Return the number of changes made.
12598         * config/sh/sh.md: Update caller accordingly.
12599
12600 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12601
12602         * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
12603         (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
12604
12605 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12606
12607         * config/m68k/m68k.c: Include rtl-iter.h.
12608         (m68k_final_prescan_insn_1): Delete.
12609         (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
12610
12611 2014-10-25  Jakub Jelinek  <jakub@redhat.com>
12612
12613         PR tree-optimization/63641
12614         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
12615         to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
12616
12617 2014-10-25  Alan Modra  <amodra@gmail.com>
12618
12619         PR rtl-optimization/63615
12620         * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
12621         decomposing PLUS or MINUS if operands are not placed adjacent
12622         in the "ops" array.
12623
12624 2014-10-25  Joseph Myers  <joseph@codesourcery.com>
12625
12626         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
12627         not allow e500 double in registers not satisyfing
12628         SPE_SIMD_REGNO_P.
12629
12630 2014-10-24  Aldy Hernandez  <aldyh@redhat.com>
12631
12632         * dwarf2out.c (declare_in_namespace): Only emit external
12633         declarations in the local scope once.
12634
12635 2014-10-24  Jonathan Wakely  <jwakely@redhat.com>
12636
12637         * ginclude/stdbool.h: Do not define bool, true or false in C++11.
12638
12639 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
12640
12641         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
12642         update uses to use new macro arguments.
12643         (__LD3_LANE_FUNC): Likewise.
12644         (__LD4_LANE_FUNC): Likewise.
12645
12646 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
12647
12648         * config/aarch64/aarch64-builtins.c
12649         (aarch64_types_loadstruct_lane_qualifiers): Define.
12650         * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
12651         ld4_lane): New builtins.
12652         * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
12653         New pattern.
12654         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
12655         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
12656         (aarch64_ld2_lane<mode>): New expand.
12657         (aarch64_ld3_lane<mode>): Likewise.
12658         (aarch64_ld4_lane<mode>): Likewise.
12659         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
12660         UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
12661
12662 2014-10-24  Georg-Johann Lay  <avr@gjlay.de>
12663
12664         * avr-protos.h (avr_out_sign_extend): New.
12665         * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
12666         (avr_out_sign_extend): New function.
12667         * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
12668         (extendhisi2, extendpsisi2): Use it.
12669         (adjust_len) [sext]: New.
12670
12671 2014-10-24  Martin Liska  <mliska@suse.cz>
12672
12673         * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
12674         added.
12675
12676 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12677
12678         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
12679         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
12680         * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
12681         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
12682
12683 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12684
12685         * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
12686         do while (0).
12687         * config/aarch64/aarch64.c (is_mem_p): Delete.
12688         (is_memory_op): Rename to...
12689         (has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
12690         (dep_between_memop_and_curr): Assert that the input is a SET.
12691         (aarch64_madd_needs_nop): Add comment.  Do not call
12692         dep_between_memop_and_curr on NULL body.
12693         (aarch64_final_prescan_insn): Add comment.
12694         Include rtl-iter.h.
12695
12696 2014-10-24  Richard Biener  <rguenther@suse.de>
12697
12698         * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
12699         to genmatch BUILD_LIBS instead.
12700
12701 2014-10-24  Richard Biener  <rguenther@suse.de>
12702
12703         * genmatch.c (expr::gen_transform): Use fold_buildN_loc
12704         and build_call_expr_loc.
12705         (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
12706         non_lvalue_loc to build it for GENERIC.
12707         (decision_tree::gen_generic): Add location argument to
12708         generic_simplify prototype.
12709         (capture_info): New class.
12710         (capture_info::capture_info): New constructor.
12711         (capture_info::walk_match): New method.
12712         (capture_info::walk_result): New method.
12713         (capture_info::walk_c_expr): New method.
12714         (dt_simplify::gen): Handle preserving side-effects for
12715         GENERIC code generation.
12716         (decision_tree::gen_generic): Do not reject operands
12717         with TREE_SIDE_EFFECTS.
12718         * generic-match.h: New file.
12719         * generic-match-head.c: Include generic-match.h, not gimple-match.h.
12720         * match.pd: Add some constant folding patterns from fold-const.c.
12721         * fold-const.c: Include generic-match.h.
12722         (fold_unary_loc): Dispatch to generic_simplify.
12723         (fold_ternary_loc): Likewise.
12724         (fold_binary_loc): Likewise.  Remove patterns now implemented
12725         by generic_simplify.
12726         * gimple-fold.c (replace_stmt_with_simplification): New function.
12727         (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
12728         (no_follow_ssa_edges): New function.
12729         (fold_stmt): New overload with valueization hook.  Use
12730         no_follow_ssa_edges for the overload without hook.
12731         (fold_stmt_inplace): Likewise.
12732         * gimple-fold.h (no_follow_ssa_edges): Declare.
12733
12734 2014-10-24  Felix Yang  <felix.yang@huawei.com>
12735         Jiji Jiang  <jiangjiji@huawei.com>
12736
12737         PR target/63173
12738         * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
12739         (__LD3R_FUNC): Ditto.
12740         (__LD4R_FUNC): Ditto.
12741         (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
12742          vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
12743          vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
12744          vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
12745          vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
12746          vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
12747         (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
12748          vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
12749          vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
12750          vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
12751          vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
12752          vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
12753         (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
12754          vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
12755          vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
12756          vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
12757          vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
12758          vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
12759         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
12760         UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
12761         * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
12762         builtins.
12763         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
12764         (aarch64_simd_ld3r<mode>): Likewise.
12765         (aarch64_simd_ld4r<mode>): Likewise.
12766         (aarch64_ld2r<mode>): New expand.
12767         (aarch64_ld3r<mode>): Likewise.
12768         (aarch64_ld4r<mode>): Likewise.
12769
12770 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12771
12772         * rtlanal.c (get_base_term): Handle SCRATCH.
12773
12774 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12775
12776         * haifa-sched.c (sched_init): Disable max_issue when scheduling for
12777         register pressure.
12778
12779 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12780
12781         * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
12782         (cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
12783         (max_issue, choose_ready, sched_init): Update.
12784
12785 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12786
12787         * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
12788         * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
12789         (rfs_result): Set INSN_LAST_RFS_WIN.  Update signature.
12790         (rank_for_schedule): Update calls to rfs_result to pass new parameters.
12791         (print_rank_for_schedule_stats): Print out elements of ready list that
12792         ended up on their respective places due to each of the sorting
12793         heuristics.
12794         (ready_sort): Update.
12795         (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
12796         (schedule_block): Update.
12797
12798 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12799
12800         * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
12801         arrays.  Use sched_class_regs_num instead of ira_class_hard_regs_num.
12802         (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
12803         (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
12804         (model_start_schedule): Update.
12805         (sched_pressure_start_bb): New static function.  Calculate
12806         sched_class_regs_num.
12807         (schedule_block): Use it.
12808         (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
12809
12810 2014-10-24  Richard Biener  <rguenther@suse.de>
12811
12812         * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
12813         host library and make sure to pull in the required libintl
12814         and libiconv dependencies.
12815
12816 2014-10-24  Richard Biener  <rguenther@suse.de>
12817
12818         * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
12819
12820 2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
12821
12822         PR bootstrap/63632
12823         * collect2.c (main): Filter out -fno-lto.
12824
12825 2014-10-24  Martin Liska  <mliska@suse.cz>
12826
12827         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
12828         division by zero in dumps.
12829         (sem_item_optimizer::merge_classes): Ditto.
12830
12831 2014-10-23  John David Anglin  <danglin@gcc.gnu.org>
12832
12833         * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
12834
12835 2014-10-23  Ian Lance Taylor  <iant@google.com>
12836
12837         * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
12838
12839 2014-10-23  Ian Lance Taylor  <iant@google.com>
12840
12841         * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
12842
12843 2014-10-23  Jakub Jelinek  <jakub@redhat.com>
12844
12845         PR debug/63623
12846         * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
12847         (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
12848         instead of only handling autoinc in dest if it is a MEM.
12849         (vt_stack_adjustments): Fix up formatting.
12850
12851 2014-10-23  DJ Delorie  <dj@redhat.com>
12852
12853         * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
12854         independend of -mlarge.
12855         * config/msp430/constraints.md (Ys): Update comment.
12856
12857 2014-10-23  Evgeny Stupachenko  <evstupac@gmail.com>
12858
12859         PR target/63534
12860         PR target/63618
12861         * cse.c (delete_trivially_dead_insns): Consider PIC register is used
12862         while it is pseudo.
12863         * dse.c (deletable_insn_p): Likewise.
12864
12865 2014-10-23  Georg-Johann Lay  <avr@gjlay.de>
12866
12867         * config/avr/avr.c: Fix GNU coding rules and typos.
12868         * config/avr/avr.h: Dito.
12869         * config/avr/avr-c.c: Dito.
12870         * config/avr/avr.md: Dito.
12871
12872 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12873
12874         * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
12875         New.
12876         (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
12877         iterator.
12878         (define_expand "abs<mode>2"): Ditto.
12879
12880 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12881
12882         * tree-core.h (tree_var_decl): Extend `function_code' field
12883         by one bit, move `regdecl_flag' field to ...
12884         (tree_decl_with_vis): Here.
12885         * tree.h (DECL_STATIC_CHAIN): Update struct name.
12886
12887 2014-10-23  Richard Biener  <rguenther@suse.de>
12888
12889         * Makefile.in (BUILD_CPPLIB): Add.
12890         (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
12891         Drop LIBIBERTY.
12892
12893 2014-10-23  Richard Biener  <rguenther@suse.de>
12894
12895         * fold-const.c (fold_binary_loc): Preserve side-effects of
12896         X - X when simplifying to 0.
12897         * stor-layout.c (finish_bitfield_representative): Strip
12898         side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
12899
12900 2014-10-22  Richard Biener  <rguenther@suse.de>
12901             Tobias Burnus <burnus@net-b.de>
12902
12903         PR lto/63603
12904         * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
12905
12906 2014-10-22  Dehao Chen  <dehao@google.com>
12907
12908         * auto-profile.c: Change order of header files.
12909
12910 2014-10-22  Guozhi Wei  <carrot@google.com>
12911
12912         PR tree-optimization/63530
12913         tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
12914         pointer alignment according to DR_MISALIGNMENT.
12915
12916 2014-10-22  David Malcolm  <dmalcolm@redhat.com>
12917
12918         * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
12919
12920 2014-10-22  Andrew MacLeod  <amacleod@redhat.com>
12921
12922         * cfgbuild.h: New.  Add prototypes for cfgbuild.c.
12923         * cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
12924         * cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
12925         * dominance.h: New.  Add prototypes for dominance.c.
12926         * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
12927         * cfghooks.h: (struct profile_record) Relocate here.
12928         Relocate 2 prototypes from basic-block.h.
12929         * basic-block.h: Move prototypes and struct to new header files.
12930         Include cfgbuild.h, cfgcleanup.h, and dominance.h.
12931         * rtl.h: Move a few prototypes to new header files.
12932         * cfgcleanup.c (merge_memattrs): Make static.
12933         * genopinit.c (main): Add predict.h to list of includes.
12934         * predict.h: Update prototype list to match predict.c.
12935         * predict.c (maybe_hot_count_p): Export.
12936         (cgraph_edge::maybe_hot_p): Move to cgraph.c.
12937         (cgraph_node::optimize_for_size_p): Move to cgraph.h.
12938         * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
12939         * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
12940         * profile.h: Adjust prototypes.
12941         * ifcvt.h: New.  Relocate struct ce_if_block here.
12942         * ifcvt.c: Include ifcvt.h.
12943         * config/frv/frv.c: Include ifcvt.h.
12944         * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
12945
12946 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12947
12948         * lra.c (lra): Remove call to recog_init.
12949         * config/i386/i386.md (preferred_for_speed): New attribute
12950         (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
12951         "enabled".  Remove check for sched1.
12952
12953 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12954
12955         * recog.h (recog_data_d): Remove enabled_alternatives.
12956         * recog.c (extract_insn): Don't set it.
12957         * reload.c (find_reloads): Call get_enabled_alternatives.
12958
12959 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12960
12961         * recog.h (constrain_operands): Add an alternative_mask parameter.
12962         (constrain_operands_cached): Likewise.
12963         (get_preferred_alternatives): Declare new form.
12964         * recog.c (get_preferred_alternatives): New bb-taking instance.
12965         (constrain_operands): Take the set of available alternatives as
12966         a parameter.
12967         (check_asm_operands, insn_invalid_p, extract_constrain_insn)
12968         (extract_constrain_insn_cached): Update calls to constrain_operands.
12969         * caller-save.c (reg_save_code): Likewise.
12970         * ira.c (setup_prohibited_mode_move_regs): Likewise.
12971         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
12972         * ree.c (combine_reaching_defs): Likewise.
12973         * reload.c (can_reload_into): Likewise.
12974         * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
12975         (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
12976         (emit_insn_if_valid_for_reload): Likewise.
12977         * reorg.c (fill_slots_from_thread): Likewise.
12978         * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
12979         * config/pa/pa.c (pa_can_combine_p): Likewise.
12980         * config/rl78/rl78.c (insn_ok_now): Likewise.
12981         * config/sh/sh.md (define_peephole2): Likewise.
12982         * final.c (final_scan_insn): Update call to constrain_operands_cached.
12983
12984 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12985
12986         * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
12987         attributes.
12988         * genattr.c (main): Handle "preferred_for_size" and
12989         "preferred_for_speed" in the same way as "enabled".
12990         * recog.h (bool_attr): New enum.
12991         (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
12992         (get_preferred_alternatives, check_bool_attrs): Declare.
12993         * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
12994         (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
12995         New functions.
12996         (get_enabled_alternatives): Use get_bool_attr_mask.
12997         * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
12998         instead of recog_data.enabled_alternatives.
12999         * ira.c (ira_setup_alts): Likewise.
13000         * postreload.c (reload_cse_simplify_operands): Likewise.
13001         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
13002         * ira-lives.c (preferred_alternatives): New variable.
13003         (process_bb_node_lives): Set it.
13004         (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
13005         (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
13006         of recog_data.enabled_alternatives.
13007         * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
13008         to preferred_alternatives.
13009         * lra-constraints.c (process_alt_operands): Update accordingly.
13010         * lra.c (lra_set_insn_recog_data): Likewise.
13011         (lra_update_insn_recog_data): Assert check_bool_attrs.
13012
13013 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
13014
13015         * recog.h (extract_constrain_insn): Declare.
13016         * recog.c (extract_constrain_insn): New function.
13017         * lra.c (check_rtl): Use it.
13018         * postreload.c (reload_cse_simplify_operands): Likewise.
13019         * reg-stack.c (check_asm_stack_operands): Likewise.
13020         (subst_asm_stack_regs): Likewise.
13021         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
13022         * regrename.c (build_def_use): Likewise.
13023         * sel-sched.c (get_reg_class): Likewise.
13024         * config/arm/arm.c (note_invalid_constants): Likewise.
13025         * config/s390/predicates.md (execute_operation): Likewise.
13026
13027 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
13028             Yury Gribov  <y.gribov@samsung.com>
13029
13030         * common.opt (flag_sanitize_recover): New variable.
13031         (fsanitize-recover): Remove Var/Init, deprecate.
13032         (fsanitize-recover=): New option.
13033         * doc/invoke.texi (fsanitize-recover): Update docs.
13034         * opts.c (finish_options): Use opts->x_flag_sanitize
13035         instead of flag_sanitize.  Prohibit -fsanitize-recover
13036         for anything besides UBSan.  Formatting.
13037         (common_handle_option): Handle OPT_fsanitize_recover_
13038         and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
13039         instead of flag_sanitize.
13040         * asan.c (pass_sanopt::execute): Fix up formatting.
13041         * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
13042         ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
13043         instrument_bool_enum_load, ubsan_instrument_float_cast,
13044         instrument_nonnull_arg, instrument_nonnull_return): Check
13045         bits in flag_sanitize_recover bitmask instead of
13046         flag_sanitize_recover as bool flag.
13047
13048 2014-10-22  Jiong Wang <jiong.wang@arm.com>
13049
13050         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
13051
13052 2014-10-22  Renlin Li <renlin.li@arm.com>
13053
13054         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
13055         __ARM_FEATURE_IDIV__.
13056
13057 2014-10-22  Richard Biener  <rguenther@suse.de>
13058
13059         * Makefile.in (s-match): Adjust dependencies to only catch
13060         match.pd.
13061
13062 2014-10-22  Richard Biener  <rguenther@suse.de>
13063         Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
13064
13065         * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
13066         (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
13067         (gimple-match.c): Generate by triggering s-match.
13068         (generic-match.c): Likewise.
13069         (s-match): Rule to build gimple-match.c and generic-match.c
13070         by running the genmatch generator program.
13071         (build/hash-table.o): Dependencies to build hash-table.c for the host.
13072         (build/genmatch.o): Dependencies to build genmatch.
13073         (genprog): Add match.
13074         (build/genmatch): Likewise.
13075         (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
13076         * generic-match-head.c: New file.
13077         * gimple-match-head.c: Likewise.
13078         * gimple-match.h: Likewise.
13079         * genmatch.c: Likewise.
13080         * match.pd: Likewise.
13081         * builtins.h (fold_builtin_n): Export.
13082         * builtins.c (fold_builtin_n): Likewise.
13083         * gimple-fold.h (gimple_build): Declare various overloads.
13084         (gimple_simplify): Likewise.
13085         (gimple_convert): Re-implement in terms of gimple_build.
13086         * gimple-fold.c (gimple_convert): Remove.
13087         (gimple_build): New functions.
13088         * doc/match-and-simplify.texi: New file.
13089         * doc/gccint.texi: Add menu item Match and Simplify and include
13090         match-and-simplify.texi.
13091
13092 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
13093
13094         PR target/63594
13095         * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
13096         V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
13097         even for just TARGET_AVX2, not only for
13098         TARGET_AVX512VL && TARGET_AVX512BW.  For V{32HI,64QI}mode,
13099         call ix86_vector_duplicate_value only if TARGET_AVX512BW,
13100         otherwise build it using concatenation of 256-bit
13101         broadcast.
13102         * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
13103         avx512 broadcast patterns.
13104         (vec_dup<mode>): Likewise.  For avx2 use
13105         v<sseintprefix>broadcast<bcstscalarsuff> instead of
13106         vbroadcast<ssescalarmodesuffix>.
13107         (AVX2_VEC_DUP_MODE): New mode iterator.
13108         (*vec_dup<mode>): New TARGET_AVX2 define_insn with
13109         AVX2_VEC_DUP_MODE iterator, add a splitter for that.
13110
13111         PR target/63542
13112         * config/i386/i386.c (ix86_pic_register_p): Also return
13113         true if x is a hard register with ORIGINAL_REGNO equal to
13114         pic_offset_table_rtx pseudo REGNO.
13115         (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
13116         after reload, subtract GOT_SYMBOL_NAME symbol if possible.
13117
13118 2014-10-22  Alan Modra  <amodra@gmail.com>
13119
13120         * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
13121         * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
13122         (gcc_obstack_init): Use obstack_specify_allocation in place of
13123         _obstack_begin.
13124         * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
13125         (regexp_representation): Likewise.
13126         * godump.c (go_output_type): Likewise.
13127
13128 2014-10-21  John David Anglin  <danglin@gcc.gnu.org>
13129
13130         * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
13131         * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
13132         * config/pa/pa.opt (mjump-in-delay): Ignore option.  Update comment.
13133
13134 2014-10-21 Manuel López-Ibáñez  <manu@gcc.gnu.org>
13135
13136         * doc/invoke.texi (pedantic-errors): Explain better.
13137
13138 2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
13139             Vidya Praveen <vidya.praveen@atmel.com>
13140             Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
13141             Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
13142             Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
13143
13144         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
13145         __MEMX for avrtiny.
13146         * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
13147         (avr_nonconst_pointer_addrspace): Likewise.
13148         * config/avr/avr.h (AVR_HAVE_LPM): Define.
13149
13150         Added AVRTINY architecture to avr target.
13151         * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
13152         (base_arch_s): member added for AVRTINY architecture.
13153         * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
13154         alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
13155         AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
13156         and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
13157         respectively. LAST_CALLEE_SAVED_REG macro added for the last register
13158         in callee saved register list.
13159         (avr_option_override): CCP address updated for AVRTINY.
13160         (avr_init_expanders): tmp and zero rtx initialized as per arch.
13161         Reset avr_have_dimode if AVRTINY.
13162         (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
13163         (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
13164         (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
13165         Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
13166         (expand_epilogue): Likewise.
13167         (avr_print_operand): Print CCP address in case of AVRTINY also.
13168         <TBD>bad address
13169         (function_arg_regno_p): Check different register list for arguments
13170         if AVRTINY.
13171         (init_cumulative_args): Check for AVRTINY to update number of argument
13172         registers.
13173         (tiny_valid_direct_memory_access_range): New function. Return false if
13174         direct memory access range is not in accepted range for AVRTINY.
13175         (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
13176         indirect load (with displacement) for AVRTINY.
13177         (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
13178         avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
13179         (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
13180         indirect load (no displacement) for AVRTINY.
13181         (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
13182         indirect load (with displacement) for AVRTINY.
13183         (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
13184         indirect load for pre-decrement address.
13185         (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
13186         functions. Update instruction length for AVRTINY.
13187         (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
13188         SImode.
13189         (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
13190         (out_movsi_r_mr): Likewise, for SImode.
13191         (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
13192         indirect store (no displacement) for AVRTINY.
13193         (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
13194         indirect store (with displacement) for AVRTINY.
13195         (out_movsi_mr_r): Emit out insn for IO address store. Update store
13196         instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
13197         store functions.
13198         (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
13199         indirect load (no displacement) for PSImode in AVRTINY.
13200         (avr_out_load_psi_reg_disp_tiny): New function to handle register
13201         indirect load (with displacement) for PSImode in AVRTINY.
13202         (avr_out_load_psi): Call PSImode register indirect load functions for
13203         AVRTINY. Update instruction length for AVRTINY.
13204         (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
13205         indirect store (no displacement) for PSImode in AVRTINY.
13206         (avr_out_store_psi_reg_disp_tiny): New function to handle register
13207         indirect store (with displacement) for PSImode in AVRTINY.
13208         (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
13209         register indirect store functions for AVRTINY.
13210         (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
13211         register indirect store (with displacement) for AVRTINY.
13212         (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
13213         register indirect store function for QImode in AVRTINY.
13214         (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
13215         (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
13216         indirect store (no displacement) for HImode in AVRTINY.
13217         (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
13218         indirect store (with displacement) for HImode in AVRTINY.
13219         (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
13220         indirect store for post-increment address in HImode.
13221         (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
13222         register indirect store function for HImode in AVRTINY.
13223         (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
13224         in case of AVRTINY.
13225         (order_regs_for_local_alloc): Updated register allocation order for
13226         AVRTINY.
13227         (avr_conditional_register_usage): New function. It is a target hook
13228         (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
13229         used registers list and register allocation order for AVRTINY.
13230         (avr_return_in_memory): Update return value size for AVRTINY.
13231         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
13232         for AVRTINY arch and tiny program memory base address.
13233         * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
13234         (avr_texinfo): Added description for AVRTINY arch.
13235         * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
13236         STATIC_CHAIN_REGNUM for AVRTINY.
13237         * config/avr/avr-mcus.def: Added AVRTINY arch devices.
13238         * config/avr/avr.md: Added constants for tmp/ zero registers in
13239         AVRTINY. Attributes for AVRTINY added.
13240         (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
13241         memory access range.
13242         (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
13243         in AVRTINY memory access range.
13244         (*mov<mode>): Likewise for HImode and SImode.
13245         (*movsf): Likewise for SFmode.
13246         (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
13247         not have sbiw.
13248         * config/avr/avr-protos.h: Added function prototype for
13249         tiny_valid_direct_memory_access_range.
13250         * config/avr/avr-tables.opt: Regenerate.
13251         * gcc/config/avr/t-multilib: Regenerate.
13252         * doc/avr-mmcu.texi: Regenerate.
13253
13254 2014-10-21  Andrew Pinski  <apinski@cavium.com>
13255
13256         * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
13257         available option also.
13258         * config/aarch64/aarch64-cost-tables.h: New file.
13259         * config/aarch64/aarch64-cores.def (thunderx): New core.
13260         * config/aarch64/aarch64-tune.md: Regenerate.
13261         * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
13262         of config/arm/aarch-cost-tables.h.
13263         (thunderx_regmove_cost): New variable.
13264         (thunderx_tunings): New variable.
13265
13266 2014-10-21  Dehao Chen  <dehao@google.com>
13267
13268         * auto-profile.c: New file.
13269         * auto-profile.h: New file.
13270         * basic-block.h (maybe_hot_count_p): New export func.
13271         (add_working_set): New export func.
13272         * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
13273         (GCOV_TAG_AFDO_FUNCTION): Likewise.
13274         (GCOV_TAG_AFDO_WORKING_SET): Likewise.
13275         * opts.c (enable_fdo_optimizations): New func.
13276         (common_handle_option): Handle -fauto-profile flag.
13277         * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
13278         (class pass_early_inline): Export early_inliner.
13279         (early_inliner): Likewise.
13280         (pass_early_inline::execute): Likewise.
13281         * ipa-inline.h (early_inliner): Likewise.
13282         * predict.c (maybe_hot_count_p): New export func.
13283         (counts_to_freqs): AutoFDO logic.
13284         (rebuild_frequencies): Likewise.
13285         * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
13286         * profile.c (add_working_set): New func.
13287         * Makefile.in (auto-profile.o): New object file.
13288         * passes.def (pass_ipa_auto_profile): New pass.
13289         * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
13290         * tree-pass.h (make_pass_ipa_auto_profile): New pass.
13291         * toplev.c (compile_file): AutoFDO logic.
13292         * doc/invoke.texi (-fauto-profile): New doc.
13293         * coverage.c (coverage_init): AutoFDO logic.
13294         * common.opt (-fauto-profile): New flag.
13295         * timevar.def (TV_IPA_AUTOFDO): New tag.
13296         * value-prof.c (gimple_alloc_histogram_value): New export func.
13297         (check_ic_target): Likewise.
13298         * value-prof.h (gimple_alloc_histogram_value): Likewise.
13299         (check_ic_target): Likewise.
13300
13301 2014-10-21  David Malcolm  <dmalcolm@redhat.com>
13302
13303         * cgraph.c (cgraph_c_finalize): New function.
13304         * cgraph.h (cgraph_c_finalize): New prototype.
13305         (cgraphunit_c_finalize): New prototype.
13306         * cgraphunit.c (first_analyzed): Move from analyze_functions
13307         to file-scope.
13308         (first_analyzed_var): Likewise.
13309         (analyze_functions): Move static variables into file-scope.
13310         (cgraphunit_c_finalize): New function.
13311         * diagnostic.c (diagnostic_finish): Free the memory for
13312         context->classify_diagnostic and context->printer, running the
13313         destructor for the latter.
13314         (bt_stop): Use toplev::main.
13315         * dwarf2out.c (dwarf2out_finalize): New function.
13316         * dwarf2out.h (dwarf2out_c_finalize): New prototype.
13317         * gcse.c (gcse_c_finalize): New function.
13318         * gcse.h (gcse_c_finalize): New prototype.
13319         * ggc-page.c (init_ggc): Make idempotent.
13320         * input.c (input_location): Initialize to UNKNOWN_LOCATION.
13321         * ipa-cp.c (ipa_cp_c_finalize): New function.
13322         * ipa-prop.h (ipa_cp_c_finalize): New prototype.
13323         * ipa-pure-const.c (function_insertion_hook_holder): Move to be
13324         a field of class pass_ipa_pure_const.
13325         (node_duplication_hook_holder): Likewise.
13326         (node_removal_hook_holder): Likewise.
13327         (register_hooks): Convert to method...
13328         (pass_ipa_pure_const::register_hooks): ...here, converting
13329         static variable init_p into...
13330         (pass_ipa_pure_const::init_p): ...new field.
13331         (pure_const_generate_summary): Update invocation of
13332         register_hooks to invoke as a method of current_pass.
13333         (pure_const_read_summary): Likewise.
13334         (propagate): Convert to...
13335         (pass_ipa_pure_const::execute): ...method.
13336         * ipa-reference.c (ipa_init): Move static bool init_p from here
13337         to...
13338         (ipa_init_p): New file-scope variable, so that it can be reset
13339         when repeatedly invoking the compiler within one process by...
13340         (ipa_reference_c_finalize): New function.
13341         * ipa-reference.h (ipa_reference_c_finalize): New.
13342         * main.c (main): Replace invocation of toplev_main with
13343         construction of a toplev instance, and call its "main" method.
13344         * params.c (global_init_params): Add an assert that
13345         params_finished is false.
13346         (params_c_finalize): New.
13347         * params.h (params_c_finalize): New.
13348         * passes.c (execute_ipa_summary_passes): Set "current_pass" before
13349         invoking generate_summary, for the benefit of pass_ipa_pure_const.
13350         (ipa_write_summaries_2): Assign "pass" to "current_pass" global
13351         before calling write_summary hook.
13352         (ipa_write_optimization_summaries_1): Likewise when calling
13353         write_optimization_summary hook.
13354         (ipa_read_summaries_1): Likewise for read_summary hook.
13355         (ipa_read_optimization_summaries_1): Likewise for
13356         read_optimization_summary hook.
13357         (execute_ipa_stmt_fixups): Likewise.
13358         * stringpool.c (init_stringpool): Clean up if we're called more
13359         than once.
13360         * timevar.c (timevar_init): Ignore repeated calls.
13361         * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
13362         "ipa-prop.h".
13363         (general_init): Reset "input_location" to UNKNOWN_LOCATION.
13364         (initialize_rtl): Move static local "initialized_once"
13365         into file scope, and rename to...
13366         (rtl_initialized): New variable.
13367         (do_compile): Move timevar initialization from here to
13368         toplev::start_timevars.
13369         (toplev::toplev, toplev::~toplev, toplev::start_timevars,
13370         toplev::finalize): New functions.
13371         (toplev_main): Rename to...
13372         (toplev::main): ...this.
13373         * toplev.h (class toplev): New class.
13374
13375 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
13376
13377         * loop-doloop.c: Include loop-unroll.h.
13378
13379 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
13380
13381         * cfg.h: New.  Header file for cfg.c.
13382         * cfganal.h: New.  Header file for cfganal.c.
13383         * lcm.h: New.  Header file for lcm.c.
13384         * loop-unroll.h: New.  Header file for loop-unroll.h.
13385         * cfgloop.h: (unroll_loops): Remove prototype.
13386         * basic-block.h: Move prototypes and structs to new header files.
13387         Include cfg.h, cfganal.h, and lcm.h.
13388         * loop-init.c: Include loop-unroll.h.
13389         * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
13390         * modulo-sched.c: Include loop-unroll.h.
13391
13392 2014-10-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13393
13394         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
13395         MARKER_BYTE_UNKNOWN markers when handling casts.
13396
13397 2014-10-21  Richard Biener  <rguenther@suse.de>
13398
13399         * tree-ssa-phiopt.c (value_replacement): Properly verify we
13400         are the non-singleton PHI.
13401
13402 2014-10-21  Jakub Jelinek  <jakub@redhat.com>
13403
13404         PR tree-optimization/63563
13405         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
13406         if either dra or drb stmts are not normal loads/stores.
13407
13408 2014-10-21  Ilya Tocar  <ilya.tocar@intel.com>
13409
13410         * config/i386/i386.c (expand_vec_perm_1): Fix
13411         expand_vec_perm_palignr case.
13412         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
13413         VI1_AVX512.
13414
13415 2014-10-21  Zhenqiang Chen  <zhenqiang.chen@arm.com>
13416
13417         * cfgloopanal.c (seq_cost): Delete.
13418         * rtl.h (seq_cost): New prototype.
13419         * rtlanal.c (seq_cost): New function.
13420         * tree-ssa-loop-ivopts.c (seq_cost): Delete.
13421
13422 2014-10-20  Andrew MacLeod  <amacleod@redhat.com>
13423
13424         * cfgrtl.h: New.  Add prototypes for cfgrtl.c.
13425         * basic-block.h: Remove prototypes for cfgrtl.c.
13426         * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
13427         prototypes to cfgrtl.h.
13428         * profile.h (profile_info): Add extern export declaration.
13429         * rtl.h: Remove prototypes for cfgrtl.h.
13430         * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
13431         * ipa-inline.c: Include profile.h.
13432         * loop-unroll.c: Ditto.
13433         * modulo-sched.c: Ditto.
13434         * postreload-gcse.c: Ditto.
13435         * predict.c: Ditto.
13436         * sched-ebb.c: Ditto.
13437         * sched-rgn.c: Ditto.
13438         * tracer.c: Ditto.
13439         * tree-ssa-loop-ivcanon.c: Ditto.
13440
13441 2014-10-20  Richard Biener  <rguenther@suse.de>
13442
13443         * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
13444         operands to get a def operand kind match.  Signal mismatches
13445         to the parent so we can try swapping its operands.
13446         (vect_build_slp_tree): Try swapping operands if they have
13447         a mismatched operand kind.
13448
13449 2014-10-20  Alan Modra  <amodra@gmail.com>
13450
13451         PR debug/60655
13452         * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
13453         Increase "ops" array size.  Correct array size tests.  Init
13454         n_constants in loop.  Break out of innermost loop when finding
13455         a trivial CONST expression.
13456
13457 2014-10-20  Martin Liska  <mliska@suse.cz>
13458
13459         PR ipa/63583
13460         * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
13461         Gimple tempate string is compared.
13462
13463 2014-10-20  Uros Bizjak  <ubizjak@gmail.com>
13464
13465         * varasm.c (const_alias_set): Remove.
13466         (init_varasm_once): Remove initialization of const_alias_set.
13467         (build_constant_desc): Do not set alias set to const_alias_set.
13468
13469 2014-10-19  Ilya Verbin  <ilya.verbin@intel.com>
13470
13471         * configure: Regenerate.
13472         * configure.ac: Move the test for section attribute specifier "e" in GAS
13473         out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
13474         * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
13475         * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
13476         ifdef HAVE_GAS_SECTION_EXCLUDE.
13477
13478 2014-10-19  Andreas Schwab  <schwab@linux-m68k.org>
13479
13480         * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
13481         match_operand expression.
13482
13483 2014-10-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
13484             David Edelsohn  <dje.gcc@gmail.com>
13485
13486         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
13487         function.
13488         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
13489
13490 2014-10-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13491
13492         * doc/invoke.texi (Options to Request or Suppress Warnings):
13493         Explain options precedence.
13494         (Wtrampolines): Do not indent paragraph.
13495
13496 2014-10-18  John David Anglin  <danglin@gcc.gnu.org>
13497
13498         * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
13499         * config/pa/pa-protos.h (pa_following_call): Delete declaration.
13500         (pa_jump_in_call_delay): Likewise.
13501         * config/pa/pa.c (pa_option_override): Remove jump in call delay
13502         override.
13503         (pa_output_millicode_call): Remove support for jump in call delay.
13504         (pa_output_call): Likewise.
13505         (pa_jump_in_call_delay): Delete.
13506         (pa_following_call): Likewise.
13507         * config/pa/pa.md (in_call_delay): Remove jump in delay check.
13508         (uncond_branch): Remove following call check from attribute length.
13509
13510 2014-10-18  Oleg Endo  <olegendo@gcc.gnu.org>
13511
13512         PR target/53513
13513         * config/sh/sh-modes.def (PSI): Remove.
13514         * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
13515         * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
13516         (sh_reorg): Remove commented out FPSCR code.
13517         (fpscr_set_from_mem): Use SImode instead of PSImode.  Emit lds_fpscr
13518         insn instead of move insn.
13519         (sh_hard_regno_mode_ok): Return SImode for FPSCR.
13520         (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
13521         handling.
13522         (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
13523         (sh1_builtin_p): Uncomment.
13524         (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
13525         (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
13526         * config/sh/sh/predicates.md (fpscr_operand): Simplify.
13527         (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
13528         (general_movsrc_operand, general_movdst_operand): Disallow
13529         fpscr_operand.
13530         * config/sh/sh.md (FPSCR_FR): New constant.
13531         (push_fpscr): Emit sts_fpscr insn.
13532         (pop_fpscr): Emit lds_fpscr_insn.
13533         (movsi_ie): Disallow FPSCR operands.
13534         (fpu_switch, unnamed related split, extend_psi_si,
13535         truncate_si_psi): Remove insns.
13536         (lds_fpscr, sts_fpscr): New insns.
13537         (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
13538
13539 >>>>>>> .r217525
13540 2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>
13541
13542         * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
13543         (clone_inlined_nodes): Do not overwrite the clone if above predicate
13544         returns true.
13545
13546 2014-10-17  Ilya Tocar  <ilya.tocar@intel.com>
13547
13548         * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
13549         (expand_vec_perm_d): Ditto.
13550         (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
13551         V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
13552         V4DFmode.
13553         (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
13554         (ix86_expand_sse_unpack): Handle V64QImode.
13555         (expand_vec_perm_blend): Update conditions for TARGET, handle
13556         V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
13557         (expand_vec_perm_pshufb): Handle V64QImode.
13558         (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
13559         V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
13560         (ix86_expand_vec_perm_const_1): Call  ix86_expand_vec_perm_vpermi2.
13561         (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
13562         (ix86_expand_vecop_qihi): Handle V64QImode.
13563         * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
13564         (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
13565         (define_mode_iterator VEC_PERM_CONST): Add V32HI.
13566         (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
13567         (mul<mode>3): Use VI1_AVX512.
13568         (<sse2_avx2>_packsswb): Ditto.
13569         (<sse2_avx2>_packuswb): Ditto.
13570         (<ssse3_avx2>_pshufb<mode>3): Ditto.
13571         (<shift_insn><mode>3): Ditto.
13572
13573 2014-10-17  Kirill Yukhin  <kirill.yukhin@intel.com>
13574
13575         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
13576         conditions to fix bootstrap.
13577
13578 2014-10-17  Andrew MacLeod  <amacleod@redhat.com>
13579
13580         gcc-plugin.h:  Add tm.h and flattened includes from function.h.
13581
13582 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13583             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13584             Anna Tikhonova  <anna.tikhonova@intel.com>
13585             Ilya Tocar  <ilya.tocar@intel.com>
13586             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13587             Ilya Verbin  <ilya.verbin@intel.com>
13588             Kirill Yukhin  <kirill.yukhin@intel.com>
13589             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13590
13591         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
13592         and V32HI modes, update V8HI, V16QI, V32QI modes handling.
13593         (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
13594         * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
13595         (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
13596         (define_expand "vec_init<mode>"): Use VF48_I1248.
13597
13598 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13599             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13600             Anna Tikhonova  <anna.tikhonova@intel.com>
13601             Ilya Tocar  <ilya.tocar@intel.com>
13602             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13603             Ilya Verbin  <ilya.verbin@intel.com>
13604             Kirill Yukhin  <kirill.yukhin@intel.com>
13605             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13606
13607         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
13608         expand_sse2_mulvxdi3.
13609
13610 2014-10-17  Richard Biener  <rguenther@suse.de>
13611
13612         * fold-const.c (fold_comparison): Remove redundant constant
13613         folding and operand swapping.
13614         (fold_binary_loc): Do comparison operand swapping here.
13615         (fold_ternary_loc): Canonicalize operand order for
13616         commutative ternary operations.
13617         * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
13618         and FMA_EXPR.
13619
13620 2014-10-17  Jakub Jelinek  <jakub@redhat.com>
13621
13622         PR tree-optimization/63464
13623         * gimple.h (gimple_seq_discard): New prototype.
13624         * gimple.c: Include stringpool.h and tree-ssanames.h.
13625         (gimple_seq_discard): New function.
13626         * optabs.h (lshift_cheap_p): New prototype.
13627         * optabs.c (lshift_cheap_p): New function, moved from...
13628         * tree-switch-conversion.c (lshift_cheap_p): ... here.
13629         * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
13630         (reassoc_branch_fixups): New variable.
13631         (update_range_test): Add otherrangep and seq arguments.
13632         Unshare exp.  If otherrange is NULL, use for other ranges
13633         array of pointers pointed by otherrangep instead.
13634         Emit seq before gimplified statements for tem.
13635         (optimize_range_tests_diff): Adjust update_range_test
13636         caller.
13637         (optimize_range_tests_xor): Likewise.  Fix up comment.
13638         (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
13639         functions.
13640         (optimize_range_tests): Adjust update_range_test caller.
13641         Call optimize_range_tests_to_bit_test.
13642         (branch_fixup): New function.
13643         (execute_reassoc): Call branch_fixup.
13644
13645         PR tree-optimization/63302
13646         * tree-ssa-reassoc.c (optimize_range_tests_xor,
13647         optimize_range_tests_diff): Use !integer_pow2p () instead of
13648         tree_log2 () < 0.
13649
13650 2014-10-17  Martin Liska  <mliska@suse.cz>
13651
13652         * ipa-icf.c (sem_function::merge): Local flags are set to false
13653         to enforce equal calling convention to be used.
13654         * opts.c (common_handle_option): Indentation fix.
13655
13656 2014-10-17  Marc Glisse  <marc.glisse@inria.fr>
13657
13658         * tree-into-ssa.c (is_old_name): Replace "new" with "old".
13659
13660 2014-10-17  Tom de Vries  <tom@codesourcery.com>
13661
13662         PR rtl-optimization/61605
13663         * regcprop.c (copyprop_hardreg_forward_1): Use
13664         regs_invalidated_by_this_call instead of regs_invalidated_by_call.
13665
13666 2014-10-17  Tom de Vries  <tom@codesourcery.com>
13667
13668         PR rtl-optimization/61605
13669         * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p.  Don't
13670         notice stores for noops.  Don't regard noops as copies.
13671
13672 2014-10-17  Uros Bizjak  <ubizjak@gmail.com>
13673
13674         * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
13675         register in a special way.
13676         (__cpuid_count): Ditto.
13677         * config/i386/driver-i386.h: Protect with
13678         "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
13679         (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
13680         is required to compile the function.
13681
13682 2014-10-16  DJ Delorie  <dj@redhat.com>
13683
13684         * flag-types.h (sanitize_code): Don't assume targets have 32-bit
13685         integers.
13686
13687         * config/rs6000/rs6000-c.c (rid_int128): New.
13688         (rs6000_macro_to_expand): Use instead of RID_INT128.
13689
13690 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
13691
13692         * function.h: Flatten file.  Remove includes, adjust prototypes to
13693         reflect only what is in function.h.
13694         (enum direction, struct args_size, struct locate_and_pad_arg_data,
13695         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
13696         from expr.h.
13697         (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
13698         (optimize_function_for_size_p, optimize_function_for_speed_p): Move
13699         prototypes to predict.h.
13700         (init_varasm_status): Move prototype to varasm.h.
13701         * expr.h: Adjust include files.
13702         (enum direction, struct args_size, struct locate_and_pad_arg_data,
13703         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
13704         to function.h.
13705         (locate_and_pad_parm): Move prototype to function.h.
13706         * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
13707         assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
13708         assign_temp, reposition_prologue_and_epilogue_notes,
13709         prologue_epilogue_contains, sibcall_epilogue_contains,
13710         update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
13711         set_return_jump_label): Move prototypes to function.h.
13712         * predict.h (optimize_function_for_size_p,
13713         optimize_function_for_speed_p): Relocate prototypes from function.h.
13714         * shrink-wrap.h (emit_return_into_block, active_insn_between,
13715         convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
13716         function.h.
13717         * varasm.h (init_varasm_status): Relocate prototype from function.h.
13718         * genattrtab.c (write_header): Add predict.h to include list.
13719         * genconditions.c (write_header): Add predict.h to include list.
13720         * genemit.c (main): Adjust header file includes.
13721         * gengtype.c (ifiles): Add flattened function.h header files.
13722         * genoutput.c (output_prologue): Add predict.h to include list.
13723         * genpreds.c (write_insn_preds_c): Adjust header file includes.
13724         * genrecog.c (write_header): Add flattened function.h header files.
13725         * alias.c: Adjust include files.
13726         * auto-inc-dec.c: Likewise.
13727         * basic-block.h: Likewise.
13728         * bb-reorder.c: Likewise.
13729         * bt-load.c: Likewise.
13730         * builtins.c: Likewise.
13731         * caller-save.c: Likewise.
13732         * calls.c: Likewise.
13733         * cfgbuild.c: Likewise.
13734         * cfgcleanup.c: Likewise.
13735         * cfgexpand.c: Likewise.
13736         * cfgloop.c: Likewise.
13737         * cfgloop.h: Likewise.
13738         * cfgrtl.c: Likewise.
13739         * cgraph.h: Likewise.
13740         * cgraphclones.c: Likewise.
13741         * cgraphunit.c: Likewise.
13742         * combine-stack-adj.c: Likewise.
13743         * combine.c: Likewise.
13744         * coverage.c: Likewise.
13745         * cprop.c: Likewise.
13746         * cse.c: Likewise.
13747         * cselib.c: Likewise.
13748         * dbxout.c: Likewise.
13749         * ddg.c: Likewise.
13750         * df-core.c: Likewise.
13751         * df-problems.c: Likewise.
13752         * df-scan.c: Likewise.
13753         * dojump.c: Likewise.
13754         * dwarf2cfi.c: Likewise.
13755         * dwarf2out.c: Likewise.
13756         * emit-rtl.c: Likewise.
13757         * except.c: Likewise.
13758         * explow.c: Likewise.
13759         * expr.c: Likewise.
13760         * final.c: Likewise.
13761         * function.c: Likewise.
13762         * gcse.c: Likewise.
13763         * gimple-fold.c: Likewise.
13764         * gimple-low.c: Likewise.
13765         * gimple-streamer.h: Likewise.
13766         * haifa-sched.c: Likewise.
13767         * ifcvt.c: Likewise.
13768         * ira.c: Likewise.
13769         * jump.c: Likewise.
13770         * lcm.c: Likewise.
13771         * loop-invariant.c: Likewise.
13772         * lra-assigns.c: Likewise.
13773         * lra-coalesce.c: Likewise.
13774         * lra-constraints.c: Likewise.
13775         * lra-eliminations.c: Likewise.
13776         * lra-lives.c: Likewise.
13777         * lra-spills.c: Likewise.
13778         * lra.c: Likewise.
13779         * lto-cgraph.c: Likewise.
13780         * lto-section-in.c: Likewise.
13781         * lto-section-out.c: Likewise.
13782         * lto-streamer-in.c: Likewise.
13783         * lto-streamer-out.c: Likewise.
13784         * mode-switching.c: Likewise.
13785         * modulo-sched.c: Likewise.
13786         * omp-low.c: Likewise.
13787         * optabs.c: Likewise.
13788         * passes.c: Likewise.
13789         * postreload-gcse.c: Likewise.
13790         * postreload.c: Likewise.
13791         * predict.c: Likewise.
13792         * profile.c: Likewise.
13793         * recog.c: Likewise.
13794         * ree.c: Likewise.
13795         * reg-stack.c: Likewise.
13796         * regcprop.c: Likewise.
13797         * reginfo.c: Likewise.
13798         * regrename.c: Likewise.
13799         * reload.c: Likewise.
13800         * reload1.c: Likewise.
13801         * reorg.c: Likewise.
13802         * resource.c: Likewise.
13803         * rtlanal.c: Likewise.
13804         * sched-deps.c: Likewise.
13805         * sched-ebb.c: Likewise.
13806         * sched-rgn.c: Likewise.
13807         * sel-sched-dump.c: Likewise.
13808         * sel-sched-ir.c: Likewise.
13809         * sel-sched.c: Likewise.
13810         * shrink-wrap.c: Likewise.
13811         * simplify-rtx.c: Likewise.
13812         * statistics.c: Likewise.
13813         * stmt.c: Likewise.
13814         * stor-layout.c: Likewise.
13815         * store-motion.c: Likewise.
13816         * symtab.c: Likewise.
13817         * targhooks.c: Likewise.
13818         * toplev.c: Likewise.
13819         * trans-mem.c: Likewise.
13820         * tree-cfg.c: Likewise.
13821         * tree-cfgcleanup.c: Likewise.
13822         * tree-dfa.c: Likewise.
13823         * tree-eh.c: Likewise.
13824         * tree-inline.c: Likewise.
13825         * tree-into-ssa.c: Likewise.
13826         * tree-nested.c: Likewise.
13827         * tree-nrv.c: Likewise.
13828         * tree-profile.c: Likewise.
13829         * tree-ssa-alias.c: Likewise.
13830         * tree-ssa-ccp.c: Likewise.
13831         * tree-ssa-copy.c: Likewise.
13832         * tree-ssa-copyrename.c: Likewise.
13833         * tree-ssa-dom.c: Likewise.
13834         * tree-ssa-operands.c: Likewise.
13835         * tree-ssa-propagate.c: Likewise.
13836         * tree-ssa-structalias.c: Likewise.
13837         * tree-ssa-tail-merge.c: Likewise.
13838         * tree-ssa-threadedge.c: Likewise.
13839         * tree-ssa-threadupdate.c: Likewise.
13840         * tree-ssa-uncprop.c: Likewise.
13841         * tree-ssa-uninit.c: Likewise.
13842         * tree-ssa.c: Likewise.
13843         * tree-stdarg.c: Likewise.
13844         * tree-tailcall.c: Likewise.
13845         * tree.c: Likewise.
13846         * tsan.c: Likewise.
13847         * valtrack.c: Likewise.
13848         * varasm.c: Likewise.
13849         * vmsdbgout.c: Likewise.
13850         * web.c: Likewise.
13851         * config/aarch64/aarch64.c: Add flattened includes from function.h.
13852         * config/alpha/alpha.c: Likewise.
13853         * config/arc/arc.c: Likewise.
13854         * config/arm/arm.c: Likewise.
13855         * config/avr/avr-log.c: Likewise.
13856         * config/avr/avr.c: Likewise.
13857         * config/bfin/bfin.c: Likewise.
13858         * config/c6x/c6x.c: Likewise.
13859         * config/cr16/cr16.c: Likewise.
13860         * config/cris/cris.c: Likewise.
13861         * config/darwin.c: Likewise.
13862         * config/epiphany/epiphany.c: Likewise.
13863         * config/epiphany/mode-switch-use.c: Likewise.
13864         * config/epiphany/resolve-sw-modes.c: Likewise.
13865         * config/fr30/fr30.c: Likewise.
13866         * config/frv/frv.c: Likewise.
13867         * config/h8300/h8300.c: Likewise.
13868         * config/i386/i386.c: Likewise.
13869         * config/ia64/ia64.c: Likewise.
13870         * config/iq2000/iq2000.c: Likewise.
13871         * config/lm32/lm32.c: Likewise.
13872         * config/m32c/m32c.c: Likewise.
13873         * config/m32r/m32r.c: Likewise.
13874         * config/m68k/m68k.c: Likewise.
13875         * config/mcore/mcore.c: Likewise.
13876         * config/mep/mep-pragma.c: Likewise.
13877         * config/mep/mep.c: Likewise.
13878         * config/microblaze/microblaze.c: Likewise.
13879         * config/mips/mips.c: Likewise.
13880         * config/mmix/mmix.c: Likewise.
13881         * config/mn10300/mn10300.c: Likewise.
13882         * config/moxie/moxie.c: Likewise.
13883         * config/msp430/msp430.c: Likewise.
13884         * config/nds32/nds32-cost.c: Likewise.
13885         * config/nds32/nds32-fp-as-gp.c: Likewise.
13886         * config/nds32/nds32-intrinsic.c: Likewise.
13887         * config/nds32/nds32-isr.c: Likewise.
13888         * config/nds32/nds32-md-auxiliary.c: Likewise.
13889         * config/nds32/nds32-memory-manipulation.c: Likewise.
13890         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
13891         * config/nds32/nds32-predicates.c: Likewise.
13892         * config/nds32/nds32.c: Likewise.
13893         * config/nios2/nios2.c: Likewise.
13894         * config/pa/pa.c: Likewise.
13895         * config/pdp11/pdp11.c: Likewise.
13896         * config/rl78/rl78.c: Likewise.
13897         * config/rs6000/rs6000.c: Likewise.
13898         * config/rx/rx.c: Likewise.
13899         * config/s390/s390.c: Likewise.
13900         * config/score/score.c: Likewise.
13901         * config/sh/sh.c: Likewise.
13902         * config/sparc/sparc.c: Likewise.
13903         * config/spu/spu.c: Likewise.
13904         * config/stormy16/stormy16.c: Likewise.
13905         * config/tilegx/tilegx.c: Likewise.
13906         * config/tilepro/tilepro.c: Likewise.
13907         * config/v850/v850.c: Likewise.
13908         * config/vax/vax.c: Likewise.
13909         * config/xtensa/xtensa.c: Likewise.
13910
13911 2014-10-16  Richard Earnshaw  <rearnsha@arm.com>
13912
13913         * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
13914         (TARGET_LEGITIMIZE_ADDRESS): Redefine.
13915
13916 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
13917
13918         * config/sh/sh-protos.h (fldi_ok): Remove.
13919         * config/sh/sh.c (fldi_ok): Likewise.
13920         (sh_secondary_reload): Don't use fldi_ok.
13921         * config/sh/constraints.md (G constraint, H constraint): Don't use
13922         fldi_ok.
13923
13924 2014-10-16  Martin Liska  <mliska@suse.cz>
13925
13926         * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
13927         Cast to unsigned long.
13928         (sem_item_optimizer::dump_cong_classes): Likewise.
13929
13930 2014-10-16  Tom de Vries  <tom@codesourcery.com>
13931
13932         * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
13933         with SSA_NAME_IN_FREELIST.
13934
13935 2014-10-16  Richard Biener  <rguenther@suse.de>
13936
13937         PR middle-end/63554
13938         * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
13939         (fold_builtin_strncat_chk): Move ...
13940         * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
13941         (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
13942
13943 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
13944
13945         PR target/59401
13946         * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
13947         GBR to 0.
13948
13949 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13950             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13951             Anna Tikhonova  <anna.tikhonova@intel.com>
13952             Ilya Tocar  <ilya.tocar@intel.com>
13953             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13954             Ilya Verbin  <ilya.verbin@intel.com>
13955             Kirill Yukhin  <kirill.yukhin@intel.com>
13956             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13957
13958         * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
13959         V64QI modes.
13960
13961 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13962             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13963             Anna Tikhonova  <anna.tikhonova@intel.com>
13964             Ilya Tocar  <ilya.tocar@intel.com>
13965             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13966             Ilya Verbin  <ilya.verbin@intel.com>
13967             Kirill Yukhin  <kirill.yukhin@intel.com>
13968             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13969
13970         * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
13971         V16SI, V32HI, V64QI modes.
13972
13973 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
13974
13975         PR target/53513
13976         * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
13977         expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
13978
13979         * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
13980         to match fp insn patterns.
13981         (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
13982         list.
13983         (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
13984         expand_df_unop, expand_df_binop): Remove.
13985         (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
13986         FPSCR_STAT_REG as not call clobbered.
13987         (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
13988         invoking fpscr_set_from_mem.
13989
13990         * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
13991         (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
13992         FPSCR_STAT_REG.
13993         (REGISTER_NAMES): Adjust.
13994         (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
13995         (FIRST_PSEUDO_REGISTER): Increase to 156.
13996         (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
13997         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
13998         FPSCR_STAT_REG.
13999         (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
14000         FPSCR_MODES_REG and FPSCR_STAT_REG.
14001         (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
14002
14003         * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
14004         FPSCR_SZ): Add new constants.
14005         (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
14006
14007         (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
14008         (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
14009         Use TARGET_FPU_ANY condition.
14010         (fpu_switch peephole2): Remove.
14011         (fpu_switch split): Use simple_mem_operand to capture the mem and
14012         adjust split implementation.
14013         (extend_psi_si, truncate_si_psi): New insns.
14014         (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants.  Add
14015         set of FPSCR_MODES_REG.
14016
14017         (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
14018         reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
14019         calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
14020         call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
14021         call_value_compact, call_value_compact_rettramp, call,
14022         call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
14023         sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
14024         sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
14025         sibcall_value_compact, sibcall_value, call_value_pop_compact,
14026         call_value_pop_compact_rettramp, various unnamed splits):
14027         Replace use of FPSCR_REG with use of FPSCR_MODES_REG.  Adjust gen_*
14028         function uses.
14029
14030         (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
14031         (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
14032         (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
14033         (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
14034         (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
14035
14036         (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
14037         *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
14038         cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
14039         subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
14040         cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
14041         truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
14042         and use of FPSCR_MODES_REG.  Adjust gen_* function uses.
14043
14044 2014-10-16  Martin Liska  <mliska@suse.cz>
14045             Jan Hubicka  <hubicka@ucw.cz>
14046
14047         * Makefile.in: New object files included.
14048         * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
14049         is printed.
14050         (verify_edge_corresponds_to_fndecl): More sensitive verification
14051         of nodes that are merged by IPA ICF.
14052         * cgraph.h (cgraph_node::num_references): New function.
14053         * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
14054         * common.opt: New options ipa-icf, ipa-icf-functions and
14055         ipa-icf-variables introduced.
14056         * doc/invoke.texi: Documentation of new options introduced.
14057         * ipa-icf-gimple.c: New file.
14058         * ipa-icf-gimple.h: New file.
14059         * ipa-icf.c: New file.
14060         * ipa-icf.h: New file.
14061         * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
14062         (input_overwrite_node): Likewise.
14063         * lto-section-in.c: New icf section added.
14064         * lto-streamer.h (enum lto_section_type): Likewise.
14065         * opts.c (common_handle_option): New option added.
14066         * passes.def: New pass included.
14067         * timevar.def: Time variable for IPA ICF added.
14068         * tree-pass.h: New IPA ICF pass entry point added.
14069
14070 2014-10-16  Richard Biener  <rguenther@suse.de>
14071
14072         PR tree-optimization/63168
14073         * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
14074         latches if after merging they are no longer simple.
14075         * cfghooks.c (merge_blocks): Handle merging a latch block
14076         into another block.
14077
14078 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14079             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14080             Anna Tikhonova  <anna.tikhonova@intel.com>
14081             Ilya Tocar  <ilya.tocar@intel.com>
14082             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14083             Ilya Verbin  <ilya.verbin@intel.com>
14084             Kirill Yukhin  <kirill.yukhin@intel.com>
14085             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14086
14087         * config/i386/sse.md
14088         (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
14089         support AVX-512VL instructions.
14090
14091 2014-10-16  DJ Delorie  <dj@redhat.com>
14092
14093         * tree-core.h: Fix comment to not assume pointers are multiples of
14094         bytes.
14095
14096 2014-10-15  Tom Tromey  <tromey@redhat.com>
14097
14098         * timevar.h (class auto_timevar): New class.
14099
14100 2014-10-15  Uros Bizjak  <ubizjak@gmail.com>
14101
14102         PR go/59432
14103         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
14104         Remove the second alternative.
14105         (regprefix): Remove mode attribute.
14106         (atomic_compare_and_swap<mode>): Do not fixup operand 2.
14107         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
14108
14109         Revert:
14110         2013-11-05  Ian Lance Taylor  <iant@google.com>
14111
14112         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
14113         If possible, add .cfi directives to record change to bx.
14114         * config/i386/i386.c (ix86_emit_cfi): New function.
14115         * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
14116
14117 2014-10-15  Jan Hubicka  <hubicka@ucw.cz>
14118
14119         PR lto/62026
14120         * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
14121         to duplicate.
14122         * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
14123         at WPA time.
14124
14125 2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>
14126
14127         PR rtl-optimization/63448
14128         * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
14129         (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
14130         (LRA_MAX_INHERITANCE_PASSES): Use it.
14131         (lra_constraint_iter_after_spill): Remove.
14132         (lra_assignment_iter): New.
14133         (lra_assignment_iter_after_spill): New.
14134         * lra-assigns.c (lra_assignment_iter): New.
14135         (lra_assignment_iter_after_spill): New.
14136         (former_reload_pseudo_spill_p): New.
14137         (spill_for): Set up former_reload_pseudo_spill_p.
14138         (setup_live_pseudos_and_spill_after_risky): Ditto.
14139         (assign_by_spills): Ditto.
14140         (lra_assign): Increment lra_assignment_iter.  Print the iteration
14141         number.  Reset former_reload_pseudo_spill_p.  Check
14142         lra_assignment_iter_after_spill.
14143         * lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
14144         lra_assignment_iter and lra_assignment_iter_after_spill.
14145         * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
14146         (lra_constraints): Remove code with
14147         lra_assignment_iter_after_spill.
14148
14149 2014-10-15  Teresa Johnson  <tejohnson@google.com>
14150
14151         PR bootstrap/63432
14152         * tree-ssa-threadupdate.c (recompute_probabilities): Better
14153         overflow checking.
14154
14155 2014-10-15  Renlin Li <renlin.li@arm.com>
14156
14157         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
14158         __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
14159         __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
14160         __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
14161
14162 2014-10-15  Richard Biener  <rguenther@suse.de>
14163
14164         * gimple-fold.c (gimple_fold_call): Properly keep virtual
14165         SSA form up-to-date when devirtualizing a call to
14166         __builtin_unreachable and avoid fixing up EH info here.
14167
14168 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14169             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14170             Anna Tikhonova  <anna.tikhonova@intel.com>
14171             Ilya Tocar  <ilya.tocar@intel.com>
14172             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14173             Ilya Verbin  <ilya.verbin@intel.com>
14174             Kirill Yukhin  <kirill.yukhin@intel.com>
14175             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14176
14177         * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
14178         to support AVX-512BW.
14179         (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
14180         (define_expand "<plusminus_insn><mode>3"): Remove masking support.
14181         (define_insn "*<plusminus_insn><mode>3"): Ditto.
14182         (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
14183         (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
14184         (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
14185         (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
14186         (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
14187         (define_insn "*andnot<mode>3"): Ditto.
14188         (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
14189         (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
14190         (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
14191         (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
14192         (define_insn "*abs<mode>2"): Remove masking support.
14193         (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
14194         (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
14195         (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
14196
14197 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14198             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14199             Anna Tikhonova  <anna.tikhonova@intel.com>
14200             Ilya Tocar  <ilya.tocar@intel.com>
14201             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14202             Ilya Verbin  <ilya.verbin@intel.com>
14203             Kirill Yukhin  <kirill.yukhin@intel.com>
14204             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14205
14206         * config/i386/predicates.md (define_predicate "constm1_operand"): New.
14207         * config/i386/sse.md
14208         (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
14209         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
14210         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
14211         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
14212         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
14213         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
14214         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
14215
14216 2014-10-15  Renlin Li <renlin.li@arm.com>
14217
14218         * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
14219
14220 2014-10-15  Jakub Jelinek  <jakub@redhat.com>
14221
14222         * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
14223         MINUS_EXPR in unsigned type to avoid undefined behavior.
14224
14225 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
14226
14227         * stor-layout.c (self_referential_size): Do not promote arguments.
14228
14229 2014-10-15  Marek Polacek  <polacek@redhat.com>
14230
14231         * doc/invoke.texi: Update to reflect that GNU11 is the default
14232         mode for C.
14233         * c-common.h (c_language_kind): Update comment.
14234
14235 2014-10-15  Richard Biener  <rguenther@suse.de>
14236
14237         * hash-table.c: Include bconfig.h if building for the host.
14238         * hash-table.h: Do not include ggc.h on the host but just declare
14239         a few ggc allocation templates.
14240
14241 2014-10-15  Joern Rennecke  <joern.rennecke@embecosm.com>
14242             Jeff Law  <law@redhat.com>
14243
14244         * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
14245         multiple hard registers, use smaller mode derived from MODE.
14246
14247 2014-10-15  Andreas Schwab  <schwab@suse.de>
14248
14249         * explow.c (convert_memory_address_addr_space_1): Mark in_const
14250         as ATTRIBUTE_UNUSED.
14251
14252 2014-10-14  Jan Hubicka  <hubicka@ucw.cz>
14253
14254         * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
14255         (decide_unrolling): ... this one.
14256         (peel_loops_completely): Remove.
14257         (decide_peel_simple): Remove.
14258         (decide_peel_once_rolling): Remove.
14259         (decide_peel_completely): Remove.
14260         (peel_loop_simple): Remove.
14261         (peel_loop_completely): Remove.
14262         (unroll_and_peel_loops): Rename to ...
14263         (unroll_loops): ... this one; handle only unrolling.
14264         * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
14265         LPT_PEEL_SIMPLE.
14266         (UAP_PEEL): Remove.
14267         (unroll_and_peel_loops): Remove.
14268         (unroll_loops): New.
14269         * passes.def: Replace
14270         pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
14271         * loop-init.c (gate_rtl_unroll_and_peel_loops,
14272         rtl_unroll_and_peel_loops): Rename to ...
14273         (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
14274         (pass_rtl_unroll_and_peel_loops): Rename to ...
14275         (pass_rtl_unroll_loops): ... this one.
14276         * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
14277         (make_pass_rtl_unroll_loops): New.
14278         * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
14279         (canonicalize_loop_induction_variables): Update.
14280
14281 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
14282
14283         * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
14284         * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
14285         !TARGET_HARD_FLOAT_POSTINC.
14286         (*lsip, *ssip): new instructions.
14287
14288 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
14289
14290         * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
14291         remove.
14292
14293 2014-10-14  Andrew Pinski  <apinski@cavium.com>
14294
14295         * explow.c (convert_memory_address_addr_space): Rename to ...
14296         (convert_memory_address_addr_space_1): This.  Add in_const argument.
14297         Inside a CONST RTL, permute the conversion and addition of constant
14298         for zero and sign extended pointers.
14299         (convert_memory_address_addr_space): New function.
14300
14301 2014-10-14  Andrew Pinski  <apinski@cavium.com>
14302
14303         Revert:
14304         2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
14305
14306         PR middle-end/49721
14307         * explow.c (convert_memory_address_addr_space): Also permute the
14308         conversion and addition of constant for zero-extend.
14309
14310 2014-10-14  DJ Delorie  <dj@redhat.com>
14311
14312         * config/msp430/msp430-modes.def (PSI): Add.
14313
14314         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
14315         (msp430_hard_regno_nregs_with_padding): New.
14316         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
14317         (msp430_hard_regno_nregs_has_padding): New.
14318         (msp430_hard_regno_nregs_with_padding): New.
14319         (msp430_unwind_word_mode): Use PSImode instead of SImode.
14320         (msp430_addr_space_legitimate_address_p): New.
14321         (msp430_asm_integer): New.
14322         (msp430_init_dwarf_reg_sizes_extra): New.
14323         (msp430_print_operand): Use X suffix for PSImode even in small model.
14324         * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
14325         (PTR_SIZE): ...but 4 bytes for EH.
14326         (SIZE_TYPE): Use __int20.
14327         (PTRDIFF_TYPE): Likewise.
14328         (INCOMING_FRAME_SP_OFFSET): Adjust.
14329         * config/msp430/msp430.md (movqi_topbyte): New.
14330         (movpsi): Use fixed suffixes.
14331         (movsipsi2): Enable for 430X, not large model.
14332         (extendhipsi2): Likewise.
14333         (zero_extendhisi2): Likewise.
14334         (zero_extendhisipsi2): Likewise.
14335         (extend_and_shift1_hipsi2): Likewise.
14336         (extendpsisi2): Likewise.
14337         (*bitbranch<mode>4_z): Fix suffix logic.
14338
14339 2014-10-14  Eric Botcazou  <ebotcazou@adacore.com>
14340
14341         PR ada/62019
14342         * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
14343         do not choke on null node.
14344         <VAR_DECL>: Likewise.
14345
14346 2014-10-14  DJ Delorie  <dj@redhat.com>
14347
14348         * machmode.h (int_n_data_t): New.
14349         (int_n_enabled_p): New.
14350         (int_n_data): New.
14351         * tree.c (int_n_enabled_p): New.
14352         (int_n_trees): New.
14353         (make_or_reuse_type): Check for all __intN types, not just
14354         __int128.
14355         (build_common_tree_nodes): Likewise.  Also fill in integer_typs[]
14356         entries.
14357         * tree.h (int128_integer_type_node): Remove.
14358         (int128_unsigned_type_node): Remove.
14359         (int_n_trees_t): New.
14360         (int_n_enabled_p): New.
14361         (int_n_trees): New.
14362         * toplev.c (standard_type_bitsize): New.
14363         (do_compile): Check which __intN types are enabled for the current
14364         run.
14365         * builtin-types.def (BT_INT128): Remove.
14366         (BT_UINT128): Remove.
14367         * machmode.def: Add macro to create __int128 for all targets.
14368         * stor-layout.c (mode_for_size): Support __intN types.
14369         (smallest_mode_for_size): Likewise.
14370         (initialize_sizetypes): Support __intN types.
14371         * genmodes.c (struct mode_data): Add int_n field.
14372         (blank_mode): Likewise.
14373         (INT_N): New.
14374         (make_int_n): New.
14375         (emit_insn_modes_h): Count __intN entries and define
14376         NUM_INT_N_ENTS.
14377         (emit_mode_int_n): New.
14378         (emit_insn_modes_c): Call it.
14379         * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
14380         types, not just __int128.
14381         * tree-core.h (integer_type_kind): Remove __int128-specific
14382         entries, reserve spots for __intN entries.
14383
14384         * config/msp430/msp430-modes.def (PSI): Add.
14385
14386 2014-10-14  Kito Cheng  <kito@0xlab.org>
14387
14388         * ira.c: Fix typo in comment.
14389         * ira.h: Ditto.
14390         * ira-build.c: Ditto.
14391         * ira-color.c: Ditto.
14392         * ira-emit.c: Ditto.
14393         * ira-int.h: Ditto.
14394         * ira-lives.c: Ditto.
14395
14396 2014-10-14  Uros Bizjak  <ubizjak@gmail.com>
14397
14398         PR rtl-optimization/63475
14399         * alias.c (true_dependence_1): Always use get_addr to extract
14400         true address operands from x_addr and mem_addr.  Use extracted
14401         address operands to check for references with alignment ANDs.
14402         Use extracted address operands with find_base_term and
14403         base_alias_check. For noncanonicalized operands call canon_rtx with
14404         extracted address operand.
14405         (write_dependence_1): Ditto.
14406         (may_alias_p): Ditto.  Remove unused calls to canon_rtx.
14407
14408 2014-10-14  Evgeny Stupachenko  <evstupac@gmail.com>
14409
14410         PR target/63534
14411         * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
14412         __morestack local.
14413
14414 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14415             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14416             Anna Tikhonova  <anna.tikhonova@intel.com>
14417             Ilya Tocar  <ilya.tocar@intel.com>
14418             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14419             Ilya Verbin  <ilya.verbin@intel.com>
14420             Kirill Yukhin  <kirill.yukhin@intel.com>
14421             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14422
14423         * config/i386/i386.c
14424         (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
14425         (ix86_expand_int_vcond): Ditto.
14426
14427 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14428             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14429             Anna Tikhonova  <anna.tikhonova@intel.com>
14430             Ilya Tocar  <ilya.tocar@intel.com>
14431             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14432             Ilya Verbin  <ilya.verbin@intel.com>
14433             Kirill Yukhin  <kirill.yukhin@intel.com>
14434             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14435
14436         * config/i386/i386.c
14437         (emit_reduc_half): Handle V64QI and V32HI mode.
14438         * config/i386/sse.md
14439         (define_mode_iterator VI_AVX512BW): New.
14440         (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
14441
14442 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14443             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14444             Anna Tikhonova  <anna.tikhonova@intel.com>
14445             Ilya Tocar  <ilya.tocar@intel.com>
14446             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14447             Ilya Verbin  <ilya.verbin@intel.com>
14448             Kirill Yukhin  <kirill.yukhin@intel.com>
14449             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14450
14451         * config/i386/sse.md
14452         (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
14453
14454 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14455             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14456             Anna Tikhonova  <anna.tikhonova@intel.com>
14457             Ilya Tocar  <ilya.tocar@intel.com>
14458             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14459             Ilya Verbin  <ilya.verbin@intel.com>
14460             Kirill Yukhin  <kirill.yukhin@intel.com>
14461             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14462
14463         * config/i386/i386.c
14464         (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
14465         * config/i386/sse.md
14466         (define_mode_iterator VI): Add V64QI and V32HI modes.
14467
14468 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14469             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14470             Anna Tikhonova  <anna.tikhonova@intel.com>
14471             Ilya Tocar  <ilya.tocar@intel.com>
14472             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14473             Ilya Verbin  <ilya.verbin@intel.com>
14474             Kirill Yukhin  <kirill.yukhin@intel.com>
14475             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14476
14477         * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
14478
14479 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14480             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14481             Anna Tikhonova  <anna.tikhonova@intel.com>
14482             Ilya Tocar  <ilya.tocar@intel.com>
14483             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14484             Ilya Verbin  <ilya.verbin@intel.com>
14485             Kirill Yukhin  <kirill.yukhin@intel.com>
14486             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14487
14488         * config/i386/sse.md
14489         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
14490         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
14491
14492 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14493             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14494             Anna Tikhonova  <anna.tikhonova@intel.com>
14495             Ilya Tocar  <ilya.tocar@intel.com>
14496             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14497             Ilya Verbin  <ilya.verbin@intel.com>
14498             Kirill Yukhin  <kirill.yukhin@intel.com>
14499             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14500
14501         * config/i386/sse.md
14502         (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
14503         (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
14504
14505 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14506             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14507             Anna Tikhonova  <anna.tikhonova@intel.com>
14508             Ilya Tocar  <ilya.tocar@intel.com>
14509             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14510             Ilya Verbin  <ilya.verbin@intel.com>
14511             Kirill Yukhin  <kirill.yukhin@intel.com>
14512             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14513
14514         * config/i386/sse.md
14515         (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
14516         (define_mode_iterator VI2_AVX2): Add V32HI mode.
14517         (define_expand "mul<mode>3<mask_name>"): Add masking.
14518         (define_insn "*mul<mode>3<mask_name>"): Ditto.
14519         (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
14520         (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
14521         (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
14522         (define_mode_attr SDOT_PMADD_SUF): Ditto.
14523         (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
14524         (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
14525         (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
14526         (define_insn "avx2_packusdw"): Delete.
14527         (define_insn "sse4_1_packusdw"): Ditto.
14528         (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
14529
14530 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14531             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14532             Anna Tikhonova  <anna.tikhonova@intel.com>
14533             Ilya Tocar  <ilya.tocar@intel.com>
14534             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14535             Ilya Verbin  <ilya.verbin@intel.com>
14536             Kirill Yukhin  <kirill.yukhin@intel.com>
14537             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14538
14539         * config/i386/sse.md
14540         (define_insn "vec_dup<mode>"): Update constraints.
14541
14542 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14543             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14544             Anna Tikhonova  <anna.tikhonova@intel.com>
14545             Ilya Tocar  <ilya.tocar@intel.com>
14546             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14547             Ilya Verbin  <ilya.verbin@intel.com>
14548             Kirill Yukhin  <kirill.yukhin@intel.com>
14549             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14550
14551         * config/i386/sse.md
14552         (define_mode_iterator SSESCALARMODE): Add V4TI mode.
14553         (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
14554         (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
14555
14556 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14557             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14558             Anna Tikhonova  <anna.tikhonova@intel.com>
14559             Ilya Tocar  <ilya.tocar@intel.com>
14560             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14561             Ilya Verbin  <ilya.verbin@intel.com>
14562             Kirill Yukhin  <kirill.yukhin@intel.com>
14563             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14564
14565         * config/i386/sse.md
14566         (define_expand "mul<mode>3<mask_name>"): Add masking.
14567
14568 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14569             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14570             Anna Tikhonova  <anna.tikhonova@intel.com>
14571             Ilya Tocar  <ilya.tocar@intel.com>
14572             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14573             Ilya Verbin  <ilya.verbin@intel.com>
14574             Kirill Yukhin  <kirill.yukhin@intel.com>
14575             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14576
14577         * config/i386/sse.md
14578         (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
14579         (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
14580
14581 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14582             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14583             Anna Tikhonova  <anna.tikhonova@intel.com>
14584             Ilya Tocar  <ilya.tocar@intel.com>
14585             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14586             Ilya Verbin  <ilya.verbin@intel.com>
14587             Kirill Yukhin  <kirill.yukhin@intel.com>
14588             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14589
14590         * config/i386/sse.md
14591         (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
14592         (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
14593         (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
14594         Ditto.
14595
14596 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14597             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14598             Anna Tikhonova  <anna.tikhonova@intel.com>
14599             Ilya Tocar  <ilya.tocar@intel.com>
14600             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14601             Ilya Verbin  <ilya.verbin@intel.com>
14602             Kirill Yukhin  <kirill.yukhin@intel.com>
14603             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14604
14605         * config/i386/sse.md
14606         (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
14607         use VF_128_256 mode iterator and update assembler emit code.
14608         (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
14609         (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
14610         Add masking, use VF_128_256 mode iterator.
14611         (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
14612         (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
14613         Add masking, use VF_128_256 mode iterator and update assembler emit
14614         code.
14615         (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
14616         (define_mode_attr avx512flogicsuff): Delete.
14617         (define_insn "avx512f_<logic><mode>"): Ditto.
14618         (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
14619         MODE_TI.
14620         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
14621
14622 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14623             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14624             Anna Tikhonova  <anna.tikhonova@intel.com>
14625             Ilya Tocar  <ilya.tocar@intel.com>
14626             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14627             Ilya Verbin  <ilya.verbin@intel.com>
14628             Kirill Yukhin  <kirill.yukhin@intel.com>
14629             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14630
14631         * config/i386/sse.md
14632         (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
14633         (define_expand "vashr<mode>3<mask_name>"): Add masking,
14634         use VI12_128 mode iterator.
14635         (define_expand "ashrv2di3<mask_name>"): New.
14636
14637 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14638             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14639             Anna Tikhonova  <anna.tikhonova@intel.com>
14640             Ilya Tocar  <ilya.tocar@intel.com>
14641             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14642             Ilya Verbin  <ilya.verbin@intel.com>
14643             Kirill Yukhin  <kirill.yukhin@intel.com>
14644             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14645
14646         * config/i386/i386.c
14647         (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
14648         CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
14649         CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
14650         CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
14651         CODE_FOR_avx512vl_ucmpv4si3_mask.
14652         * config/i386/sse.md
14653         (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
14654         "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
14655         (define_insn
14656         "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
14657         (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
14658         (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
14659         (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
14660         (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
14661         (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
14662
14663 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14664             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14665             Anna Tikhonova  <anna.tikhonova@intel.com>
14666             Ilya Tocar  <ilya.tocar@intel.com>
14667             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14668             Ilya Verbin  <ilya.verbin@intel.com>
14669             Kirill Yukhin  <kirill.yukhin@intel.com>
14670             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14671
14672         * config/i386/sse.md
14673         (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
14674         (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
14675         (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
14676         (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
14677         (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
14678         (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
14679         (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
14680         (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
14681         (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
14682
14683 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14684             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14685             Anna Tikhonova  <anna.tikhonova@intel.com>
14686             Ilya Tocar  <ilya.tocar@intel.com>
14687             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14688             Ilya Verbin  <ilya.verbin@intel.com>
14689             Kirill Yukhin  <kirill.yukhin@intel.com>
14690             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14691
14692         * config/i386/sse.md
14693         (define_insn "avx512f_blendm<mode>"): Delete.
14694         (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
14695         (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
14696         (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
14697         V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
14698         (define_insn
14699         "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14700         Remove.
14701         (define_insn
14702         "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14703         New.
14704         (define_insn
14705         "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14706         Ditto.
14707         (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
14708         (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
14709         (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
14710         (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
14711         Delete.
14712         (define_insn
14713         "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
14714         New.
14715         (define_insn
14716         "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
14717         Ditto.
14718         (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
14719         Delete.
14720         (define_insn
14721         "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
14722         New.
14723         (define_insn
14724         "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
14725         Ditto.
14726
14727 2014-10-14  Richard Biener  <rguenther@suse.de>
14728
14729         PR tree-optimization/63512
14730         * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
14731         modified.
14732
14733 2014-10-14  Oleg Endo  <olegendo@gcc.gnu.org>
14734
14735         PR target/63260
14736         * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
14737         abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute.  Remove use
14738         of FPSCR.
14739         (negsf2_i): Rename to *negsf2_i.
14740         (abssf2_i): Rename to *abssf2_i.
14741         (negdf2_i): Rename to *negdf2_i.
14742         (absdf2_i): Rename to *absdf2_i.
14743
14744 2014-10-14  Felix Yang  <felix.yang@huawei.com>
14745             Jeff Law  <law@redhat.com>
14746
14747         * ira.c (struct equivalence): Change member "is_arg_equivalence" and
14748         "replace" into boolean bitfields; turn member "loop_depth" into a short
14749         integer; add new member "no_equiv" and "reserved".
14750         (no_equiv): Set no_equiv of struct equivalence if register is marked
14751         as having no known equivalence.
14752         (update_equiv_regs): Check all definitions for a multiple-set
14753         register to make sure that the RHS have the same value.
14754
14755 2014-10-13  Richard Henderson  <rth@redhat.com>
14756
14757         * combine-stack-adj.c (no_unhandled_cfa): New.
14758         (maybe_merge_cfa_adjust): New.
14759         (combine_stack_adjustments_for_block): Use them.
14760
14761 2014-10-13  Aldy Hernandez  <aldyh@redhat.com>
14762
14763         * Makefile.in (TAGS): Tag ../include files.
14764
14765 2014-10-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14766
14767         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
14768         to rs6000_dbx_register_number.
14769         (DWARF_FRAME_REGNUM): Redefine as identity map.
14770         (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
14771         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
14772         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
14773         argument to handle .debug_frame and .eh_frame directly.  Always
14774         translate SPE high register numbers.  Add special treatment for CR,
14775         but only in .debug_frame.  Respect RS6000_USE_DWARF_NUMBERING.
14776
14777         * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
14778         * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
14779         (RS6000_USE_DWARF_NUMBERING): Define.
14780         * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
14781         (RS6000_USE_DWARF_NUMBERING): Define.
14782         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
14783         (RS6000_USE_DWARF_NUMBERING): Define.
14784         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
14785         (RS6000_USE_DWARF_NUMBERING): Define.
14786         * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
14787         * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
14788
14789 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
14790
14791         * config/i386/i386.c (ix86_address_cost): Lower cost for
14792         when address contains GOT register.
14793
14794 2014-10-13  Ilya Enkovich  <ilya.enkovich@intel.com>
14795             Vladimir Makarov  <vmakarov@redhat.com>
14796
14797         PR target/8340
14798         PR middle-end/47602
14799         PR rtl-optimization/55458
14800         * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
14801         (ix86_init_pic_reg): New.
14802         (ix86_select_alt_pic_regnum): Add check on pseudo register.
14803         (ix86_save_reg): Likewise.
14804         (ix86_expand_prologue): Remove PIC register initialization
14805         now performed in ix86_init_pic_reg.
14806         (ix86_output_function_epilogue): Add check on pseudo register.
14807         (set_pic_reg_ever_alive): New.
14808         (legitimize_pic_address): Replace df_set_regs_ever_live with new
14809         set_pic_reg_ever_alive.
14810         (legitimize_tls_address): Likewise.
14811         (ix86_pic_register_p): New check.
14812         (ix86_delegitimize_address): Add check on pseudo register.
14813         (ix86_expand_call): Insert move from pseudo PIC register to ABI
14814         defined REAL_PIC_OFFSET_TABLE_REGNUM.
14815         (TARGET_INIT_PIC_REG): New.
14816         (TARGET_USE_PSEUDO_PIC_REG): New.
14817         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
14818         if pic_offset_table_rtx exists.
14819         * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
14820         Document.
14821         * doc/tm.texi: Regenerate.
14822         * function.c (assign_parms): Generate pseudo register for PIC.
14823         * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
14824         register.
14825         * ira-color.c (color_pass): Add check on pseudo register.
14826         * ira-emit.c (change_loop): Don't create copies for PIC pseudo
14827         register.
14828         * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
14829         register.
14830         (ira): Add target specific PIC register initialization.
14831         (do_reload): Keep PIC pseudo register.
14832         * lra-assigns.c (spill_for): Add checks on pseudo register.
14833         * lra-constraints.c (contains_symbol_ref_p): New.
14834         (lra_constraints): Enable lra risky transformations when PIC is pseudo
14835         register.
14836         * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
14837         * target.def (use_pseudo_pic_reg): New.
14838         (init_pic_reg): New.
14839
14840 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
14841
14842         * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
14843         Remove m_SILVERMONT and m_INTEL from the tune.
14844
14845 2014-10-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14846
14847         PR libfortran/63471
14848         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
14849         when _HPUX_SOURCE is defined.
14850
14851 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
14852
14853         PR tree-optimization/62127
14854         * tree.c (remap_type_1): When remapping array, remap
14855         also its type.
14856
14857 2014-10-13  Christophe Lyon  <christophe.lyon@linaro.org>
14858
14859         * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
14860         longer impact parallelization.
14861
14862 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
14863
14864         PR bootstrap/63496
14865         * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
14866
14867 2014-10-13  Marat Zakirov  <m.zakirov@samsung.com>
14868
14869         * asan.c (instrument_derefs): BIT_FIELD_REF added.
14870
14871 2014-10-13  Richard Biener  <rguenther@suse.de>
14872
14873         PR tree-optimization/63419
14874         * gimple-fold.h (gimple_convert): New function.
14875         * gimple-fold.c (gimple_convert): Likewise.
14876         * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
14877         to split out required conversions early.
14878
14879 2014-10-13  Richard Sandiford  <richard.sandiford@arm.com>
14880
14881         * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
14882         Add the parts of an insn in reverse order, with the pattern at
14883         the top of the queue.  Detect when we're iterating over a SEQUENCE
14884         pattern and in that case just consider patterns of subinstructions.
14885
14886 2014-10-12  Oleg Endo  <olegendo@gcc.gnu.org>
14887
14888         PR target/59401
14889         * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
14890         of rtx.
14891         * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
14892         insn walking.
14893         (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
14894         address.  Use def chains to handle GBR clobbering call insns.
14895
14896 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
14897
14898         * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
14899         config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
14900         config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
14901         function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
14902         output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
14903         tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
14904         * doc/gty.texi (for_user): Document new option.
14905         * gengtype.c (create_user_defined_type): Don't try to get a struct for
14906         char.
14907         (walk_type): Don't error out on for_user option.
14908         (write_func_for_structure): Emit user marking routines if requested by
14909         for_user option.
14910         (write_local_func_for_structure): Likewise.
14911         (main): Mark types with for_user option as used.
14912         * ggc.h (gt_pch_nx): Add overload for unsigned int.
14913         * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
14914         * hash-table.h (ggc_hasher): New struct.
14915         (hash_table::create_ggc): New function.
14916         (gt_pch_nx): New overload for hash_table.
14917
14918 2014-10-11  Oleg Endo  <olegendo@gcc.gnu.org>
14919
14920         * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
14921         * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
14922         * config/sh/sh.c: Likewise.
14923         * config/sh/sh-mem.cc: Likewise.
14924         * config/sh/sh.md: Likewise.
14925         * config/sh/predicates.md: Likewise.
14926         * config/sh/sync.md: Likewise.
14927
14928 2014-10-11  Martin Liska  <mliska@suse.cz>
14929
14930         PR middle-end/63376
14931         * cgraphunit.c (symbol_table::process_new_functions): Missing call
14932         for call_cgraph_insertion_hooks added.
14933
14934 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
14935
14936         PR c/63495
14937         * stor-layout.c (min_align_of_type): Don't decrease alignment
14938         through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
14939         TYPE_USER_ALIGN is set.
14940
14941 2014-10-10  Uros Bizjak  <ubizjak@gmail.com>
14942
14943         PR rtl-optimization/63483
14944         * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
14945         references when alignment ANDs are involved.
14946         (write_dependence_p): Ditto.
14947         (may_alias_p): Ditto.
14948
14949 2014-10-10  Marek Polacek  <polacek@redhat.com>
14950
14951         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
14952         * doc/invoke.texi: Document -fsanitize=object-size.
14953         * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
14954         or it into SANITIZE_UNDEFINED.
14955         * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
14956         * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
14957         * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
14958         * opts.c (common_handle_option): Handle -fsanitize=object-size.
14959         * ubsan.c: Include tree-object-size.h.
14960         (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
14961         (ubsan_expand_bounds_ifn): Use false instead of 0.
14962         (ubsan_expand_objsize_ifn): New function.
14963         (instrument_object_size): New function.
14964         (pass_ubsan::execute): Add object size instrumentation.
14965         * ubsan.h (ubsan_expand_objsize_ifn): Declare.
14966
14967 2014-10-10  Richard Henderson  <rth@redhat.com>
14968
14969         PR target/63404
14970         * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
14971         Restrict the set of expressions we're willing to move.
14972
14973 2014-10-10  Jeff Law  <law@redhat.com>
14974
14975         * ira.c (struct equivalence): Promote INIT_INSNs field to
14976         an rtx_insn_list.  Add comments.
14977         (no_equiv): Promote LIST to an rtx_insn_list.  Update
14978         testing for and creating the special marker.  Use methods
14979         to extract the insn and next pointers.  Promote INSN to an
14980         rtx_insn.
14981         (update_equiv_regs): Update test for special marker in the
14982         INIT_INSNs list.
14983
14984 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14985
14986         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
14987         * configure: Regenerate.
14988         * config/aarch64/aarch64.c (aarch64_override_options): Handle
14989         TARGET_FIX_ERR_A53_835769_DEFAULT.
14990         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
14991         value to 2.
14992         * doc/install.texi (aarch64*-*-*): Document
14993         new --enable-fix-cortex-a53-835769 option.
14994
14995 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14996             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14997
14998         * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
14999         (ADJUST_INSN_LENGTH): Define.
15000         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
15001         * config/aarch64/aarch64.c (is_mem_p): New function.
15002         (is_memory_op): Likewise.
15003         (aarch64_prev_real_insn): Likewise.
15004         (is_madd_op): Likewise.
15005         (dep_between_memop_and_curr): Likewise.
15006         (aarch64_madd_needs_nop): Likewise.
15007         (aarch64_final_prescan_insn): Likewise.
15008         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
15009         and -mno-fix-cortex-a53-835769 options.
15010
15011 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
15012
15013         PR tree-optimization/63464
15014         * tree-switch-conversion.c (struct case_bit_test): Remove
15015         hi and lo fields, add wide_int mask field.
15016         (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
15017         hi/lo fields into wide_int mask operations, optimize by pretending
15018         minval to be 0 if maxval is small enough.
15019         (process_switch): Adjust caller.
15020
15021 2014-10-10  Richard Biener  <rguenther@suse.de>
15022
15023         PR tree-optimization/63379
15024         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
15025         a neutral operand for min/max when it is not a reduction chain.
15026
15027 2014-10-10  Richard Biener  <rguenther@suse.de>
15028
15029         PR tree-optimization/63476
15030         * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
15031         (BB_LIVE_VOP_ON_EXIT): New define.
15032         (create_expression_by_pieces): Assign VUSEs to stmts.
15033         (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
15034         (pass_pre::execute): Assert virtual SSA form is up-to-date
15035         after insertion.
15036
15037 2014-10-10  Eric Botcazou  <ebotcazou@adacore.com>
15038
15039         * lra-assigns.c (assign_by_spills): Error out on spill failure.
15040
15041 2014-10-09  Markus Trippelsdorf  <markus@trippelsdorf.de>
15042
15043         * pa-polymorphic-call.c (check_stmt_for_type_change): Move
15044         assertion.
15045
15046 2014-10-09  Richard Biener  <rguenther@suse.de>
15047
15048         PR tree-optimization/63380
15049         * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
15050         may trap.
15051
15052 2014-10-09  Joern Rennecke  <joern.rennecke@embecosm.com>
15053
15054         * config/avr/avr.opt (mmcu=): Change to have a string value.
15055         (mn-flash=, mskip-bug, march=, mrmw): New options.
15056         (HeaderInclude): New.
15057         (mmcu=): Remove Var / Init clauses.
15058         * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
15059         -specs option.
15060         (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
15061         (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
15062         (SYMBOL_FLAG_IO_LOW): Define.
15063         (avr_device_to_as, avr_device_to_ld): Don't declare.
15064         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
15065         (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
15066         (EXTRA_SPEC_FUNCTIONS): Don't define.
15067         (ASM_SPEC): Translate -arch= option to -mmcu= option.
15068         (LINK_SPEC): Translate -arch= option to -m= option.
15069         Don't use device_to_ld / device_to_data_start.
15070         (STARTFILE_SPEC): Now empty.
15071         (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
15072         * config/avr/gen-avr-mmcu-specs.c: New file.
15073         * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
15074         (s-device-specs): Likewise.
15075         (GCC_PASSES): Add s-device-specs.
15076         (install-driver): Depend on install-device-specs.
15077         (install-device-specs): New rule.
15078         * config/avr/avr.c (avr_option_override): Look up mcu arch by
15079         avr_arch_index and provide fallback initialization for avr_n_flash.
15080         (varasm.h): #include.
15081         (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
15082         (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
15083         (avr_attribute_table): Add "io", "address" and "io_low".
15084         (avr_asm_output_aligned_decl_common): Change type of decl to tree.
15085         Add special handling for symbols with "io" and/or "address" attributes.
15086         (avr_asm_asm_output_aligned_bss): New function.
15087         (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
15088         as appropriate.  Handle io_low attribute.
15089         (avr_out_sbxx_branch): Handle symbolic io addresses.
15090         (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
15091         avr_n_flash instead of avr_current_device->n_flash.
15092         (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
15093         (avr_emit_movmemhi): Likewise.
15094         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
15095         Use TARGET_RMW instead of avr_current_device->dev_attributes.
15096         Don't define avr_current_device->macro (that's the specfile's job).
15097         Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
15098         * config/avr/avr.c (avr_2word_insn_p): Likewise.
15099         * config/avr/avr.md (*cpse.ne): Likewise.
15100         (mov<mode>): Use avr_eval_addr_attrib.
15101         (cbi): Change constraint for low_io_address_operand operand to "i".
15102         (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
15103         * config/avr/predicates.md (io_address_operand):
15104         Allow SYMBOL_REF with SYMBOL_FLAG_IO.
15105         (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
15106         * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
15107         Update prototype.
15108         (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
15109         * config/avr/genmultilib.awk: Use -march=.
15110         Remove Multilib matches processing.
15111         * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
15112         * config/avr/avr-arch.h: Add double include guard.
15113         (avr_mcu_t) <library_name>: Update comment.
15114         * config/avr/driver-avr.c (avr_device_to_as): Delete.
15115         (avr_device_to_ld, avr_device_to_data_start): Likewise.
15116         (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
15117         (avr_device_to_sp8): Likewise.
15118         * config/avr/genopt.sh:  Instead avr_mcu, emit an Enum for avr_arch.
15119
15120         * doc/extend.texi (io, address): Document new AVR variable attributes.
15121         (io_low): Likewise.
15122
15123 2014-10-09  Marek Polacek  <polacek@redhat.com>
15124
15125         * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
15126
15127 2014-10-08  Richard Biener  <rguenther@suse.de>
15128
15129         PR tree-optimization/61969
15130         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
15131         variables.
15132
15133 2014-10-09  Richard Biener  <rguenther@suse.de>
15134
15135         PR tree-optimization/63445
15136         * tree-vrp.c (simplify_cond_using_ranges): Only warn about
15137         overflow for non-equality compares.
15138
15139 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
15140
15141         PR rtl-optimization/57003
15142         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
15143         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
15144         killing regs_invalidated_by_call.
15145
15146 2014-10-08  Teresa Johnson  <tejohnson@google.com>
15147
15148         PR bootstrap/63432.
15149         * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
15150         (ssa_fix_duplicate_block_edges): Invoke it.
15151         (mark_threaded_blocks): Make two passes to avoid ordering dependences.
15152
15153 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
15154
15155         PR target/52941
15156         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
15157         atomic_fetch_<fetchop_name>si_hard,
15158         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
15159         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
15160         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
15161         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
15162
15163 2014-10-08  Rong Xu  <xur@google.com>
15164
15165         * gcov-tool.c (profile_overlap): New driver function
15166         to compute profile overlap.
15167         (print_overlap_usage_message): New.
15168         (overlap_usage): New.
15169         (do_overlap): New.
15170         (print_usage): Add calls to overlap function.
15171         (main): Ditto.
15172         * doc/gcov-tool.texi: Add documentation.
15173
15174 2014-10-08  Steve Ellcey  <sellcey@mips.com>
15175
15176         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
15177         LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
15178
15179 2014-10-08  Jan Hubicka  <hubicka@ucw.cz>
15180
15181         * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
15182         pattern matching of MEM_REF.
15183         (check_stmt_for_type_change): Update.
15184
15185 2014-10-08  Steve Ellcey  <sellcey@mips.com>
15186
15187         * config/mips/linux64.h: Remove.
15188         * config/mips/gnu-user64.h: Remove.
15189         * gcc.config (mips*-*-*): Remove references to linux64.h and
15190         gnu-user64.h
15191         * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
15192         with modified version from gnu-user64.h.
15193         (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
15194         (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
15195         * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
15196         linux64.h.
15197         (GNU_USER_LINK_EMULATION64): Ditto.
15198         (GNU_USER_LINK_EMULATIONN32): Ditto.
15199         (GLIBC_DYNAMIC_LINKER32): Ditto.
15200         (GLIBC_DYNAMIC_LINKER64): Ditto.
15201         (GLIBC_DYNAMIC_LINKERN32): Ditto.
15202         (UCLIBC_DYNAMIC_LINKER32): Ditto.
15203         (UCLIBC_DYNAMIC_LINKER64): Ditto.
15204         (UCLIBC_DYNAMIC_LINKERN32): Ditto.
15205         (BIONIC_DYNAMIC_LINKERN32): Ditto.
15206         (GNU_USER_DYNAMIC_LINKERN32): Ditto.
15207         (GLIBC_DYNAMIC_LINKER): Delete.
15208         (UCLIBC_DYNAMIC_LINKER): Delete.
15209
15210 2014-10-08  Joern Rennecke  <joern.rennecke@embecosm.com>
15211             Richard Biener  <rguenther@suse.de>
15212
15213         * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
15214         Get address space from operand 0 (BASE).
15215
15216 2014-10-07  Iain Sandoe  <iain@codesourcery.com>
15217
15218         PR target/61387
15219         * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
15220
15221 2014-10-07  Aldy Hernandez  <aldyh@redhat.com>
15222
15223         * dwarf2out.c: Remove current_function_has_inlines.
15224         (gen_subprogram_die): Same.
15225         (gen_inlined_subroutine_die): Same.
15226
15227 2014-10-07  Ilya Tocar  <ilya.tocar@intel.com>
15228
15229         * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
15230         type.
15231         (_addcarry_u64): Ditto.
15232         (_addcarryx_u64): Ditto.
15233
15234 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
15235
15236         * cgraph.h (cgraph_node::get_fun): Declare.
15237         * cgraph.c (cgraph_node::get_fun): New method.
15238         * ipa-inline.c (can_inline_edge_p): Use it.
15239
15240 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
15241
15242         * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
15243         and -ftrapping-math.
15244         * lto-wrapper.c (merge_and_complain): Likewise.
15245         (run_gcc): Likewise.
15246
15247 2014-10-06  Rong Xu  <xur@google.com>
15248
15249         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
15250         * tree-profile.c: (params.h): New include.
15251         (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
15252         and __gcov_indirect_call_topn_counters for
15253         indirect_call_topn_profile.
15254         (gimple_init_edge_profiler): New decls for
15255         __gcov_indirect_call_topn_profiler.
15256         (gimple_gen_ic_profiler): Generate the correct profiler call.
15257         (gimple_gen_ic_func_profiler): Fix format.
15258         * value-prof.c (params.h): New include.
15259         (dump_histogram_value): Hanlde indirect_call_topn counters.
15260         (stream_in_histogram_value): Ditto.
15261         (gimple_indirect_call_to_profile): Use indirect_call_topn
15262         profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
15263         (gimple_find_values_to_profile): Hanlde indirect_call_topn
15264         counters.
15265         * value-prof.h (enum hist_type): Histrogram type for
15266         indirect_call_topn counters.
15267         * profile.c (instrument_values): Instrument
15268         indirect_call_topn counters.
15269
15270 2014-10-06  Rong Xu  <xur@google.com>
15271
15272         * Makefile.in: Fix dependence.
15273         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
15274         indirect call topn profiler.
15275         * gcov-io.h: Ditto.
15276
15277 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15278
15279         * calls.c (expand_call): Do not use the target as the return slot if
15280         it is not sufficiently aligned.
15281
15282 2014-10-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15283
15284         * config/rs6000/rs6000.c (analyze_swaps commentary): Add
15285         discussion of permutes and why we don't handle them.
15286
15287 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15288
15289         * config/sparc/predicates.md (int_register_operand): Delete.
15290
15291 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15292
15293         * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
15294
15295 2014-10-06  Jakub Jelinek  <jakub@redhat.com>
15296
15297         * ubsan.h (ubsan_get_source_location): New prototype.
15298         * ubsan.c (ubsan_source_location_type): New variable.
15299         Function renamed to ...
15300         (ubsan_get_source_location_type): ... this.  Cache
15301         return value in ubsan_source_location_type variable.
15302         (ubsan_source_location, ubsan_create_data): Use
15303         ubsan_get_source_location_type instead of
15304         ubsan_source_location_type.
15305         * asan.c (asan_protect_global): Don't protect globals
15306         with ubsan_get_source_location_type () type.
15307         (asan_add_global): Provide global decl location info
15308         if possible.
15309
15310 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15311
15312         * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
15313         sanity check.
15314
15315 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15316
15317         * ipa-polymorphic-call.c (possible_placement_new): Fix condition
15318         on size.
15319         (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
15320         into vptr pointer.
15321         (ipa_polymorphic_call_context::dump): Fix formating.
15322         (walk_ssa_copies): Add logic avoiding loops; update uses.
15323         * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
15324
15325 2014-10-02  Mark Wielaard  <mjw@redhat.com>
15326
15327         PR debug/63239
15328         * dwarf2out.c (gen_subprogram_die): When a member function is
15329         explicitly deleted then add a DW_AT_GNU_deleted attribute.
15330         * langhooks.h (struct lang_hooks_for_decls): Add
15331         function_decl_deleted_p langhook.
15332         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
15333         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
15334
15335 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15336
15337         * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
15338         NULL pointer checks.
15339         (ipa_polymorphic_call_context::get_dynamic_type): Return true
15340         if type doesn't change.
15341         * cgraph.h (cgraph_indirect_call_info): New flag.
15342         * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
15343         (cgraph_node::dump): Dump it.
15344         * ipa-prop.c (ipa_analyze_call_uses):  Ignore return valud
15345         of context.get_dynamic_type.
15346         (ipa_make_edge_direct_to_target): Do not speculate
15347         edge that is already speuclative.
15348         (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
15349         speculate to __builtin_unreachable
15350         (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
15351         vptr_changed.
15352         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
15353
15354 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15355
15356         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
15357         get_dynamic_type; drop TODO.
15358         * ipa-polymorphic-call.c
15359         (ipa_polymorphic_call_context::get_dynamic_type): Be ready
15360         for otr_type to be unknown.
15361
15362 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
15363
15364         * common/config/score/score-common.c: Remove.
15365         * config.gcc: Remove support for score-*.
15366         * config/score/constraints.md: Remove.
15367         * config/score/elf.h: Remove.
15368         * config/score/predicates.md: Remove.
15369         * config/score/score-conv.h: Remove.
15370         * config/score/score-generic.md: Remove.
15371         * config/score/score-modes.def: Remove.
15372         * config/score/score-protos.h: Remove.
15373         * config/score/score.c: Remove.
15374         * config/score/score.h: Remove.
15375         * config/score/score.md: Remove.
15376         * config/score/score.opt: Remove.
15377         * doc/md.texi: Don't document score-*.
15378
15379 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
15380
15381         PR pch/63429
15382         * genconditions.c: Directly include ggc.h before rtl.h.
15383
15384 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
15385
15386         * ipa-polymorphic-call.c
15387         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
15388         code determining speculative type.
15389         (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
15390
15391 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15392
15393         * altivec.md (altivec_lvsl): New define_expand.
15394         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
15395         (altivec_lvsr): New define_expand.
15396         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
15397         * rs6000.c (rs6000_expand_builtin): Change to use
15398         altivec_lvs[lr]_direct; remove commented-out code.
15399
15400 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15401
15402         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15403         Issue a warning message when vec_lvsl or vec_lvsr is used with a
15404         little endian target.
15405
15406 2014-10-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15407
15408         * tree-pretty-print.c (dump_location): Make it extern. Dump also
15409         the column.
15410         * tree-pretty-print.h (dump_location): Declare.
15411         * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
15412         (pp_gimple_stmt_1): Likewise.
15413         (dump_implicit_edges): Likewise.
15414         * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
15415         LOCATION_LINE.
15416
15417
15418 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
15419
15420         * gcc.c (driver::global_initializations): Remove "const" so
15421         that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
15422         and decoded_options_count.
15423
15424 2014-10-03  Maciej W. Rozycki  <macro@codesourcery.com>
15425
15426         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
15427         macro.
15428         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
15429         TARGET_E500_DOUBLE case here.
15430
15431 2014-10-03  Marc Glisse  <marc.glisse@inria.fr>
15432
15433         PR c++/54427
15434         PR c++/57198
15435         PR c++/58845
15436         * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
15437
15438 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
15439
15440         * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
15441         * lto-cgraph.c (lto_output_edge, input_edge): Stream
15442         in_polymorphic_cdtor
15443         * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
15444         (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
15445         * cgraphclones.c (cgraph_edge::clone): Likewise.
15446         * ipa-prop.c (update_jump_functions_after_inlining,
15447         try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
15448         to possible_dynamic_type_change.
15449         (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
15450         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
15451         IN_POLY_CDOTR argument.
15452
15453         * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
15454         for BASE and OUTER_TYPE being NULL.
15455         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
15456         in_poly_cdtor parameter.
15457
15458 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
15459
15460         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
15461         (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
15462         TARGET_AVX512F.
15463         (expand_vec_perm_1): Likewise.
15464
15465 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
15466             Uros Bizjak  <ubizjak@gmail.com>
15467
15468         PR tree-optimization/61403
15469         * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
15470         error in comment.  Also optimize 256-bit vectors for AVX2
15471         or AVX (floating vectors only), provided the first permutation
15472         can be performed in one insn.
15473
15474 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
15475
15476         * gcc.c (class driver): New class.
15477         (main): Reimplement in terms of driver::main, moving most of the
15478         locals to be locals within individual methods of class driver.
15479         The remaining locals "explicit_link_files", "decoded_options" and
15480         "decoded_options_count" are used by multiple driver:: methods, and
15481         so become member data.  Doing so isolates the argc/argv reads and
15482         writes.  Replace "goto out" with a special exit code from
15483         new method driver::prepare_infiles.  Split out the old
15484         implementation of main into the following...
15485         (driver::main): New function, corresponding to the old "main"
15486         implementation.
15487         (driver::set_progname): New function, taken from the old
15488         "main" implementation.
15489         (driver::expand_at_files): Likewise.
15490         (driver::decode_argv): Likewise.
15491         (driver::global_initializations): Likewise.
15492         (driver::build_multilib_strings): Likewise.
15493         (driver::set_up_specs): Likewise.
15494         (driver::putenv_COLLECT_GCC): Likewise.
15495         (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
15496         (driver::handle_unrecognized_options): Likewise.
15497         (driver::maybe_print_and_exit): Likewise.
15498         (driver::prepare_infiles): Likewise.
15499         (driver::do_spec_on_infiles): Likewise.
15500         (driver::maybe_run_linker): Likewise.
15501         (driver::final_actions): Likewise.
15502         (driver::get_exit_code): Likewise.
15503
15504 2014-10-03  Yury Gribov  <y.gribov@samsung.com>
15505
15506         * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
15507         don't emit empty ctors.
15508
15509 2014-10-03  Eric Botcazou  <ebotcazou@adacore.com>
15510
15511         * convert.c (convert_to_integer): Do not introduce useless conversions
15512         between integral types.
15513
15514 2014-10-03  David Sherwood  <david.sherwood@arm.com>
15515
15516         * ira-int.h (ira_allocno): Mark hard_regno as signed.
15517
15518 2014-10-03  Ilya Enkovich  <ilya.enkovich@intel.com>
15519
15520         * lra-constraints.c (inherit_in_ebb): Handle calls with
15521         multiple return values.
15522         * caller-save.c (save_call_clobbered_regs): Likewise.
15523
15524 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
15525
15526         * tree-vect-data-refs.c (vect_permute_load_chain,
15527         vect_shift_permute_load_chain): Fix a typo in temporary var names,
15528         suffle3 to shuffle3.
15529
15530         PR libgomp/61200
15531         * omp-low.c (taskreg_contexts): New variable.
15532         (scan_omp_parallel): Push newly created context into taskreg_contexts
15533         vector and move record layout code to finish_taskreg_scan.
15534         (scan_omp_task): Likewise.
15535         (finish_taskreg_scan): New function.
15536         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
15537         vector elements and release it.
15538
15539         PR target/62128
15540         * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
15541         of palignr arguments can't be used due to min 0 or max - min
15542         too high, try also op0, op1 order of palignr arguments.
15543
15544 2014-10-02  Jan Hubicka  <hubicka@ucw.cz>
15545
15546         * cgraph.h (ipa_polymorphic_call_context):
15547         Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
15548         private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
15549         * ipa-polymorphic-call.c
15550         (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
15551         past end of dynamic types.
15552         (ipa_polymorphic_call_context::stream_out,
15553         speculative_outer_type): Stream dynamic flag.
15554         (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
15555         (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
15556         Clear DYNAMIC.
15557         (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
15558         set it.
15559         (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
15560         * ipa-prop.c (update_jump_functions_after_inlining,
15561         try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
15562
15563 2014-10-02  Teresa Johnson  <tejohnson@google.com>
15564
15565         * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
15566         up when synthesizing counts to avoid rounding errors.
15567
15568 2014-10-02  Teresa Johnson  <tejohnson@google.com>
15569
15570         PR middle-end/63422
15571         * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
15572         asserts to handle incoming insanities.
15573
15574 2014-10-02  Martin Jambor  <mjambor@suse.cz>
15575
15576         PR tree-optimization/63375
15577         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
15578         references.
15579
15580 2014-10-02  Olivier Hainque  <hainque@adacore.com>
15581
15582         * Makefile.in (CROSS): Define, to @CROSS.
15583
15584 2014-10-02  Jakub Jelinek  <jakub@redhat.com>
15585
15586         PR target/62128
15587         * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
15588         if it expands to a single insn only.
15589         (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument.  If true,
15590         fail unless in_order is true.  Add forward declaration.
15591         (expand_vec_perm_vperm2f128): Fix up comment about which permutation
15592         is useful for one_operand_p.
15593         (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
15594
15595 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15596
15597         * cgraphclones.c (build_function_type_skip_args): Do not make new
15598         type variant of old.
15599
15600 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15601
15602         * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
15603         when speculation is added.
15604         (ipa_edge_args): Add polymorphic_call_contexts.
15605         (ipa_get_ith_polymorhic_call_context): New accesor.
15606         (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
15607         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
15608         (ipa_compute_jump_functions_for_edge): Compute contexts.
15609         (update_jump_functions_after_inlining): Update contexts.
15610         (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
15611         update dumping; add speculative edge creation.
15612         (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
15613         context updating.
15614         (update_indirect_edges_after_inlining): Pass down context.
15615         (ipa_edge_duplication_hook): Duplicate contexts.
15616         (ipa_write_node_info): Stream out contexts.
15617         (ipa_read_node_info): Stream in contexts.
15618         * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
15619         types.
15620         (try_speculative_devirtualization): New function.
15621         * ipa-utils.h (try_speculative_devirtualization): Declare.
15622
15623 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15624
15625         * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
15626         dumping during WPA.
15627
15628 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15629
15630         * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
15631         type variants.
15632
15633 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15634
15635         * ipa-polymorphic-call.c
15636         (ipa_polymorphic_call_context::restrict_to_inner_class):
15637         Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
15638         use speculation_consistent_p to do so; Add CONSDER_BASES
15639         and CONSIDER_PLACEMENT_NEW parameters.
15640         (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
15641         short circuit obvious cases.
15642         (ipa_polymorphic_call_context::dump): Improve formatting.
15643         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
15644         combine_speculation_with to record speculations; Do not ICE when
15645         object is located in pointer type decl; do not ICE for methods
15646         of UNION_TYPE; do not record nonpolymorphic types.
15647         (ipa_polymorphic_call_context::speculation_consistent_p): New method.
15648         (ipa_polymorphic_call_context::combine_speculation_with): New method.
15649         (ipa_polymorphic_call_context::combine_with): New method.
15650         (ipa_polymorphic_call_context::make_speculative): Move here; use
15651         combine speculation.
15652         * cgraph.h (ipa_polymorphic_call_context): Update
15653         restrict_to_inner_class prototype; add offset_by, make_speculative,
15654         combine_with, useless_p, combine_speculation_with and
15655         speculation_consistent_p methods.
15656         (ipa_polymorphic_call_context::offset_by): New method.
15657         (ipa_polymorphic_call_context::useless_p): New method.
15658
15659 2014-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
15660
15661         PR rtl-optimization/62151
15662         * combine.c (can_combine_p): Allow the destination register of INSN
15663         to be clobbered in I3.
15664         (subst): Do not substitute into clobbers of registers.
15665
15666 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
15667
15668         PR debug/63342
15669         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
15670         offset, TARGET_MEM_REF and SSA_NAME.
15671
15672         * config/i386/i386.c (expand_vec_perm_palignr): Handle
15673         256-bit vectors for TARGET_AVX2.
15674
15675         * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
15676         dfirst permutation.
15677
15678         PR target/63428
15679         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
15680         argument to avx2_permv2ti.
15681
15682 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15683
15684         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
15685
15686 2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
15687
15688         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
15689         (fmod<mode>3): Ditto.
15690         (fpremxf4_i387): Ditto.
15691         (reminderxf3): Ditto.
15692         (reminder<mode>3): Ditto.
15693         (fprem1xf4_i387): Ditto.
15694
15695 2014-09-30  Teresa Johnson  <tejohnson@google.com>
15696
15697         * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
15698         duplicate_blocks bitmap.
15699         (remove_ctrl_stmt_and_useless_edges): Ditto.
15700         (create_block_for_threading): Ditto.
15701         (compute_path_counts): New function.
15702         (update_profile): Ditto.
15703         (recompute_probabilities): Ditto.
15704         (update_joiner_offpath_counts): Ditto.
15705         (freqs_to_counts_path): Ditto.
15706         (clear_counts_path): Ditto.
15707         (ssa_fix_duplicate_block_edges): Update profile info.
15708         (ssa_create_duplicates): Pass new parameter.
15709         (ssa_redirect_edges): Remove old profile update.
15710         (thread_block_1): New duplicate_blocks bitmap,
15711         remove old profile update.
15712         (thread_single_edge): Pass new parameter.
15713
15714 2014-09-30  Ilya Tocar  <ilya.tocar@intel.com>
15715
15716         PR middle-end/62120
15717         * varasm.c (decode_reg_name_and_count): Check availability for
15718         registers from ADDITIONAL_REGISTER_NAMES.
15719
15720 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
15721
15722         PR plugins/63410
15723         * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
15724         (PLUGIN_HEADERS): Add pass-instances.def.
15725
15726 2014-09-30  James Greenhalgh  <james.greenhalgh@arm.com>
15727
15728         * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
15729         iterator.
15730         * config/aarch64/aarch64-simd.md
15731         (aarch64_sqdmull_laneq<mode>): Expand iterator.
15732         * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
15733         (vqdmulls_lane_s32): Fix return type.
15734         (vqdmulls_laneq_s32): New.
15735
15736 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
15737
15738         PR inline-asm/63282
15739         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
15740         or invert_jump_1 if jump isn't any_condjump_p.
15741
15742 2014-09-30  Terry Guo  <terry.guo@arm.com>
15743
15744         * config/arm/arm-cores.def (cortex-m7): New core name.
15745         * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
15746         (fpv5-d16): Ditto.
15747         * config/arm/arm-tables.opt: Regenerated.
15748         * config/arm/arm-tune.md: Regenerated.
15749         * config/arm/arm.h (TARGET_VFP5): New macro.
15750         * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
15751         * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
15752         smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
15753         * doc/invoke.texi: Document new cpu and fpu names.
15754
15755 2014-09-30  Jiong Wang  <jiong.wang@arm.com>
15756
15757         * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
15758         before sinking insn.
15759
15760 2014-09-30  David Sherwood  <david.sherwood@arm.com>
15761
15762         * ira-int.h (ira_allocno): Add "wmode" field.
15763         * ira-build.c (create_insn_allocnos): Add new "parent" function
15764         parameter.
15765         * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
15766         that cannot be accessed in wmode.
15767
15768 2014-09-30  Markus Trippelsdorf  <markus@trippelsdorf.de>
15769
15770         * data-streamer.c (bp_unpack_var_len_int): Avoid signed
15771         integer overflow.
15772
15773 2014-09-29  Andi Kleen  <ak@linux.intel.com>
15774
15775         * opts.c (print_filtered_help): Print --param min/max/default
15776         with -Q.
15777
15778 2014-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
15779
15780         * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
15781
15782 2014-09-29  Eric Botcazou  <ebotcazou@adacore.com>
15783
15784         * tree-vrp.c (get_single_symbol): New function.
15785         (build_symbolic_expr): Likewise.
15786         (symbolic_range_based_on_p): New predicate.
15787         (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
15788         for PLUS and MINUS.  Do not drop symbolic ranges at the end.
15789         (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
15790         operand is symbolic and based on the other operand.
15791
15792 2014-09-29  Chen Gang  <gang.chen.5i5j@gmail.com>
15793
15794         * config/microblaze/microblaze.md (call_internal1): Use VOID
15795         instead of SI to fix "((void (*)(void)) 0)()" issue
15796
15797 2014-09-29  Nick Clifton  <nickc@redhat.com>
15798
15799         * config/msp430/msp430.c (msp430_expand_prologue): Return a
15800         CLOBBER rtx for naked functions.
15801         (msp430_expand_epilogue): Likewise.
15802         (msp430_use_f5_series_hwmult): Cache result.
15803         (use_32bit_hwmult): Cache result.
15804         (msp430_no_hwmult): New function.
15805         (msp430_output_labelref): Use it.
15806
15807 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
15808
15809         PR middle-end/63247
15810         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
15811         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
15812         use the alignment of avar rather than ovar.
15813
15814 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
15815
15816         * config/pa/pa.c (pa_output_function_epilogue): Only update
15817         last_address when a nonnote insn is found.
15818
15819 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
15820
15821         PR ipa/60665
15822         * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
15823
15824 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
15825
15826         PR ipa/62121
15827         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
15828         fix pasto in checking array size.
15829
15830 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
15831
15832         PR middle-end/35545
15833         * passes.def (pass_tracer): Move before last dominator pass.
15834
15835 2014-09-26  Thomas Schwinge  <thomas@codesourcery.com>
15836
15837         * gcc.c (try_generate_repro): Remove argument "prog".  Change all
15838         users.
15839         (run_attempt): Handle errors of "pex_run" invocation.
15840
15841 2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>
15842
15843         * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
15844         (CC1_SPEC): Define.
15845         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
15846         (TARGET_ASAN_SHADOW_OFFSET): Define.
15847
15848 2014-09-26  Martin Liska  <mliska@suse.cz>
15849
15850         * cgraph.c (cgraph_node::release_body): New argument keep_arguments
15851         introduced.
15852         * cgraph.h: Likewise.
15853         * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
15854         * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
15855         * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
15856         * tree-ssa-alias.h: Likewise.
15857
15858 2014-09-26  Jakub Jelinek  <jakub@redhat.com>
15859             Max Ostapenko  <m.ostapenko@partner.samsung.com>
15860
15861         * common.opt: New option.
15862         * doc/invoke.texi: Describe new option.
15863         * gcc.c (execute): Don't free first string early, but at the end
15864         of the function.  Call retry_ice if compiler exited with
15865         ICE_EXIT_CODE.
15866         (main): Factor out common code.
15867         (print_configuration): New function.
15868         (files_equal_p): Likewise.
15869         (check_repro): Likewise.
15870         (run_attempt): Likewise.
15871         (do_report_bug): Likewise.
15872         (append_text): Likewise.
15873         (try_generate_repro): Likewise
15874
15875 2014-09-25  Andi Kleen  <ak@linux.intel.com>
15876
15877         * config/i386/i386.c (x86_print_call_or_nop): New function.
15878         (x86_function_profiler): Support -mnop-mcount and
15879         -mrecord-mcount.
15880         * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
15881         * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
15882
15883 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
15884
15885         * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
15886         * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
15887         * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
15888         Remove.
15889
15890 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
15891
15892         * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
15893         type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
15894         types_odr_comparable): Declare.
15895         (polymorphic_type_binfo_p): Move here from ipa-devirt.c
15896         * ipa-polymorphic-call.c: New file.
15897         (contains_polymorphic_type_p, possible_placement_new,
15898         ipa_polymorphic_call_context::restrict_to_inner_class,
15899         contains_type_p, decl_maybe_in_construction_p,
15900         ipa_polymorphic_call_context::stream_out,
15901         ipa_polymorphic_call_context::debug,
15902         ipa_polymorphic_call_context::stream_in,
15903         ipa_polymorphic_call_context::set_by_decl,
15904         ipa_polymorphic_call_context::set_by_invariant,
15905         walk_ssa_copies,
15906         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15907         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
15908         extr_type_from_vtbl_ptr_store, record_known_type
15909         check_stmt_for_type_change,
15910         ipa_polymorphic_call_context::get_dynamic_type): Move here from
15911         ipa-devirt.c
15912         * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
15913         and streamer-hooks.h
15914         (contains_polymorphic_type_p, possible_placement_new,
15915         ipa_polymorphic_call_context::restrict_to_inner_class,
15916         contains_type_p, decl_maybe_in_construction_p,
15917         ipa_polymorphic_call_context::stream_out,
15918         ipa_polymorphic_call_context::debug,
15919         ipa_polymorphic_call_context::stream_in,
15920         ipa_polymorphic_call_context::set_by_decl,
15921         ipa_polymorphic_call_context::set_by_invariant,
15922         walk_ssa_copies,
15923         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15924         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
15925         extr_type_from_vtbl_ptr_store, record_known_type
15926         check_stmt_for_type_change,
15927         ipa_polymorphic_call_context::get_dynamic_type): Move to
15928         ipa-polymorphic-call.c
15929         (type_all_derivations_known_p, types_odr_comparable,
15930         types_must_be_same_for_odr): Export.
15931         (type_known_to_have_no_deriavations_p): New function.
15932         * Makefile.in: Add ipa-polymorphic-call.c
15933
15934 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
15935
15936         * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
15937         for better storage.
15938         (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
15939         (possible_polymorphic_call_targets): Instead of computing both
15940         speculative and non-speculative answers, do just one at a time.
15941         Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
15942         (dump_targets): Break out from ...
15943         (dump_possible_polymorphic_call_targets): ... here; dump both speculative
15944         and non-speculative lists.
15945         (ipa_devirt): Update for new possible_polymorphic_call_targets API.
15946         * ipa-utils.h (possible_polymorphic_call_targets): Update.
15947
15948 2014-09-25  Uros Bizjak  <ubizjak@gmail.com>
15949
15950         PR rtl-optimization/63348
15951         * emit-rtl.c (try_split): Do not emit extra barrier.
15952
15953 2014-09-25  James Greenhalgh  <james.greenhalgh@arm.com>
15954
15955         * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
15956         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
15957         new predicates.
15958         (aarch64_<sur>shll2_n<mode>): Likewise.
15959         (aarch64_<sur>shr_n<mode>): Likewise.
15960         (aarch64_<sur>sra_n<mode>: Likewise.
15961         (aarch64_<sur>s<lr>i_n<mode>): Likewise.
15962         (aarch64_<sur>qshl<u>_n<mode>): Likewise.
15963         * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
15964         * config/aarch64/iterators.md (ve_mode): New.
15965         (offsetlr): Remap to infix text for use in new predicates.
15966         * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
15967         (aarch64_simd_shift_imm_hi): Likewise.
15968         (aarch64_simd_shift_imm_si): Likewise.
15969         (aarch64_simd_shift_imm_di): Likewise.
15970         (aarch64_simd_shift_imm_offset_qi): Likewise.
15971         (aarch64_simd_shift_imm_offset_hi): Likewise.
15972         (aarch64_simd_shift_imm_offset_si): Likewise.
15973         (aarch64_simd_shift_imm_offset_di): Likewise.
15974         (aarch64_simd_shift_imm_bitsize_qi): Likewise.
15975         (aarch64_simd_shift_imm_bitsize_hi): Likewise.
15976         (aarch64_simd_shift_imm_bitsize_si): Likewise.
15977         (aarch64_simd_shift_imm_bitsize_di): Likewise.
15978
15979 2014-09-25  Jiong Wang  <jiong.wang@arm.com>
15980
15981         * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
15982         new created BB as the intersection of live-in from "old_dest" and
15983         live-out from "bb".
15984
15985 2014-09-25  Felix Yang  <felix.yang@huawei.com>
15986
15987         * lra.c (lra_set_insn_recog_data): Fix typo in comment.
15988         * genautomata.c (merge_states): Ditto.
15989
15990 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
15991
15992         PR target/62218
15993         * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
15994         in instruction sequence.
15995
15996 2014-09-25  Nick Clifton  <nickc@redhat.com>
15997
15998         PR target/62218
15999         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
16000         in instruction sequence.
16001
16002 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16003
16004         PR target/63335
16005         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
16006         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
16007
16008 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16009             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16010             Anna Tikhonova  <anna.tikhonova@intel.com>
16011             Ilya Tocar  <ilya.tocar@intel.com>
16012             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16013             Ilya Verbin  <ilya.verbin@intel.com>
16014             Kirill Yukhin  <kirill.yukhin@intel.com>
16015             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16016
16017         * config/i386/sse.md
16018         (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
16019         (define_expand "<avx2_avx512>_perm<mode>"): ... this.
16020         (define_expand "avx512f_perm<mode>_mask"): Rename to ...
16021         (define_expand "<avx512>_perm<mode>_mask"): ... this.
16022         Use VI8F_256_512 mode iterator.
16023         (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
16024         (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
16025
16026 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16027             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16028             Anna Tikhonova  <anna.tikhonova@intel.com>
16029             Ilya Tocar  <ilya.tocar@intel.com>
16030             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16031             Ilya Verbin  <ilya.verbin@intel.com>
16032             Kirill Yukhin  <kirill.yukhin@intel.com>
16033             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16034
16035         * config/i386/sse.md
16036         (define_insn "avx_movshdup256<mask_name>"): Add masking.
16037         (define_insn "sse3_movshdup<mask_name>"): Ditto.
16038         (define_insn "avx_movsldup256<mask_name>"): Ditto.
16039         (define_insn "sse3_movsldup<mask_name>"): Ditto.
16040         (define_insn "vec_dupv2df<mask_name>"): Ditto.
16041         (define_insn "*vec_concatv2df"): Add EVEX version.
16042
16043 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16044             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16045             Anna Tikhonova  <anna.tikhonova@intel.com>
16046             Ilya Tocar  <ilya.tocar@intel.com>
16047             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16048             Ilya Verbin  <ilya.verbin@intel.com>
16049             Kirill Yukhin  <kirill.yukhin@intel.com>
16050             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16051
16052         * config/i386/sse.md
16053         (define_insn "vec_set<mode>_0"): Add EVEX version.
16054
16055 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16056             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16057             Anna Tikhonova  <anna.tikhonova@intel.com>
16058             Ilya Tocar  <ilya.tocar@intel.com>
16059             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16060             Ilya Verbin  <ilya.verbin@intel.com>
16061             Kirill Yukhin  <kirill.yukhin@intel.com>
16062             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16063
16064         * config/i386/sse.md
16065         (define_insn
16066         "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
16067         New.
16068         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
16069         (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
16070         (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
16071         "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
16072         (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
16073         (define_expand "sse2_cvtpd2ps_mask): New.
16074         (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
16075         (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
16076
16077 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16078             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16079             Anna Tikhonova  <anna.tikhonova@intel.com>
16080             Ilya Tocar  <ilya.tocar@intel.com>
16081             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16082             Ilya Verbin  <ilya.verbin@intel.com>
16083             Kirill Yukhin  <kirill.yukhin@intel.com>
16084             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16085
16086         * config/i386/i386.c
16087         (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
16088         (ufix_notruncv8dfv8si2_mask_round): ... this.
16089         * config/i386/sse.md
16090         (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
16091         (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
16092         (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
16093         (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
16094         (define_expand "sse2_cvtpd2dq"): Delete.
16095         (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
16096         make 2nd operand const0 vector.
16097         (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
16098         Delete.
16099         (define_mode_attr pd2udqsuff): New.
16100         (define_insn
16101         "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
16102         (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
16103         (define_insn "*avx_cvttpd2dq256_2"): Delete.
16104         (define_expand "sse2_cvttpd2dq"): Ditto.
16105         (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
16106         make 2nd operand const0 vector.
16107
16108 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
16109
16110         PR tree-optimization/63341
16111         * tree-vectorizer.h (vect_create_data_ref_ptr,
16112         vect_create_addr_base_for_vector_ref): Add another tree argument
16113         defaulting to NULL_TREE.
16114         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
16115         argument, pass it down to vect_create_addr_base_for_vector_ref.
16116         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
16117         add that to base_offset too if non-NULL.
16118         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
16119         for dr_explicit_realign_optimized set it to vector byte size
16120         - 1 instead of setting offset, pass byte_offset down to
16121         vect_create_data_ref_ptr.
16122
16123 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
16124
16125         * ipa-devirt.c (possible_polymorphic_call_targets): Remove
16126         forgotten debug output; canonicalize querries more wtih LTO.
16127
16128 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
16129
16130         * cgraph.h (class ipa_polymorphic_call_context): Move here from
16131         ipa-utils.h; add stream_int and stream_out methods.
16132         (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
16133         OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
16134         MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
16135         add CONTEXT.
16136         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16137         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16138         ipa_polymorphic_call_context::clear_speculation,
16139         ipa_polymorphic_call_context::clear_outer_type): Move here from
16140         ipa-utils.h
16141         * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
16142         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16143         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16144         ipa_polymorphic_call_context::clear_speculation,
16145         ipa_polymorphic_call_context::clear_outer_type): Likewise.
16146         * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
16147         streamer-hooks.h
16148         (ipa_polymorphic_call_context::stream_out): New method.
16149         (ipa_polymorphic_call_context::stream_in): New method.
16150         (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
16151         * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
16152         OUTER_TYPE.
16153         (ipa_analyze_call_uses): Simplify.
16154         (update_indirect_edges_after_inlining): Do not care about outer_type.
16155         (ipa_write_indirect_edge_info): Update.
16156         (ipa_write_indirect_edge_info): Likewise.
16157         * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
16158         (dump_edge_flags): Break out from ...
16159         (cgraph_node::dump): ... here; dump indirect edges.
16160
16161 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
16162
16163         * ipa-utils.h (polymorphic_call_context): Add
16164         metdhos dump, debug and clear_outer_type.
16165         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
16166         (ipa_polymorphic_call_context::clear_outer_type): New method.
16167         * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
16168         * ipa-devirt.c (types_odr_comparable): New function.
16169         (types_must_be_same_for_odr): New function.
16170         (odr_subtypes_equivalent_p): Simplify.
16171         (possible_placement_new): Break out from ...
16172         (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
16173         be more cuatious about returning false in cases the context may be
16174         valid in derived type or via placement new.
16175         (contains_type_p): Clear maybe_derived_type
16176         (ipa_polymorphic_call_context::dump): New method.
16177         (ipa_polymorphic_call_context::debug): New method.
16178         (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
16179         (ipa_polymorphic_call_context::set_by_invariant): Simplify.
16180         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
16181         (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
16182         to suceed on all valid cases; remove confused sanity check.
16183         (dump_possible_polymorphic_call_targets): Simplify.
16184
16185 2014-09-24  Aldy Hernandez  <aldyh@redhat.com>
16186
16187         * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
16188         lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
16189         tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
16190         varpool.c: Rename all instances of DECL_ABSTRACT to
16191         DECL_ABSTRACT_P.
16192
16193 2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16194
16195         * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
16196         special handling for stores whose SET_SRC is an UNSPEC (such as
16197         UNSPEC_STVE).
16198
16199 2014-09-24  Jiong Wang  <jiong.wang@arm.com>
16200
16201         * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
16202         !REG_P (src) to release more instruction sink opportunities.
16203
16204 2014-09-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>
16205
16206         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
16207         move costs for 128-bit types.
16208
16209 2014-09-24  Martin Jambor  <mjambor@suse.cz>
16210
16211         * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
16212         when duplicating a PASS_THROUGH jump function when creating a
16213         speculative edge.
16214
16215 2014-09-24  Marek Polacek  <polacek@redhat.com>
16216
16217         PR c/61405
16218         PR c/53874
16219         * asan.c (maybe_instrument_call): Add default case.
16220         * ipa-pure-const.c (special_builtin_state): Likewise.
16221         * predict.c (expr_expected_value_1): Likewise.
16222         * lto-streamer-out.c (write_symbol): Initialize variable.
16223
16224 2014-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16225
16226         * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
16227         the lane.
16228         (vmuld_laneq_f64): Likewise.
16229         (vmuls_lane_f32): Likewise.
16230         (vmuls_laneq_f32): Likewise.
16231
16232 2014-09-24  Kirill Yukhin  <kirill.yukhin@intel.com>
16233
16234         PR bootstrap/63235
16235         * varpool.c (varpool_node::add): Pass decl attributes
16236         to lookup_attribute.
16237
16238 2014-09-24  Jakub Jelinek  <jakub@redhat.com>
16239
16240         PR sanitizer/63316
16241         * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
16242
16243 2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16244
16245         PR tree-optimization/63266
16246         * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
16247         marker for unknown byte value.
16248         (MARKER_MASK): New macro.
16249         (MARKER_BYTE_UNKNOWN): New macro.
16250         (HEAD_MARKER): New macro.
16251         (do_shift_rotate): Mark bytes with unknown values due to sign
16252         extension when doing an arithmetic right shift. Replace hardcoded
16253         mask for marker by new MARKER_MASK macro.
16254         (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
16255         numbers accordingly.
16256
16257 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16258             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16259             Anna Tikhonova  <anna.tikhonova@intel.com>
16260             Ilya Tocar  <ilya.tocar@intel.com>
16261             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16262             Ilya Verbin  <ilya.verbin@intel.com>
16263             Kirill Yukhin  <kirill.yukhin@intel.com>
16264             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16265
16266         * config/i386/sse.md
16267         (define_insn
16268         "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
16269         Add masking.
16270         (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
16271         (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
16272
16273 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16274             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16275             Anna Tikhonova  <anna.tikhonova@intel.com>
16276             Ilya Tocar  <ilya.tocar@intel.com>
16277             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16278             Ilya Verbin  <ilya.verbin@intel.com>
16279             Kirill Yukhin  <kirill.yukhin@intel.com>
16280             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16281
16282         * config/i386/sse.md
16283         (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
16284         (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
16285         (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
16286         (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
16287         (define_expand "avx512vl_pshuflw_mask"): New.
16288         (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
16289         (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
16290         (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
16291         (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
16292         (define_expand "avx512vl_pshufhw_mask"): New.
16293         (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
16294
16295 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16296             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16297             Anna Tikhonova  <anna.tikhonova@intel.com>
16298             Ilya Tocar  <ilya.tocar@intel.com>
16299             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16300             Ilya Verbin  <ilya.verbin@intel.com>
16301             Kirill Yukhin  <kirill.yukhin@intel.com>
16302             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16303
16304         * config/i386/i386.c
16305         (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
16306         CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
16307         CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
16308         CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
16309         CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
16310         * config/i386/sse.md
16311         (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
16312         (define_insn
16313         "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
16314         (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
16315         (define_insn
16316         "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
16317         (define_expand "avx512vl_pshufdv3_mask"): Ditto.
16318         (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
16319         (define_expand "avx512vl_pshufd_mask"): New.
16320         (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
16321
16322 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16323             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16324             Anna Tikhonova  <anna.tikhonova@intel.com>
16325             Ilya Tocar  <ilya.tocar@intel.com>
16326             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16327             Ilya Verbin  <ilya.verbin@intel.com>
16328             Kirill Yukhin  <kirill.yukhin@intel.com>
16329             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16330
16331         * config/i386/i386.c
16332         (CODE_FOR_avx2_extracti128): Rename to ...
16333         (CODE_FOR_avx_vextractf128v4di): this.
16334         (CODE_FOR_avx2_inserti128): Rename to ...
16335         (CODE_FOR_avx_vinsertf128v4di): this.
16336         (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
16337         CODE_FOR_avx_vextractf128v4di.
16338         (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
16339         CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
16340         CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
16341         CODE_FOR_avx512vl_vinsertv8si.
16342         * config/i386/sse.md
16343         (define_expand
16344         "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
16345         AVX512_VEC mode iterator.
16346         (define_insn
16347         "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
16348         Ditto.
16349         (define_expand
16350         "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
16351         AVX512_VEC_2 mode iterator.
16352         (define_insn "vec_set_lo_<mode><mask_name>"): New.
16353         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16354         (define_expand "avx512vl_vinsert<mode>"): Ditto.
16355         (define_insn "avx2_vec_set_lo_v4di"): Delete.
16356         (define_insn "avx2_vec_set_hi_v4di"): Ditto.
16357         (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
16358         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16359         (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
16360         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16361         (define_expand "avx2_extracti128"): Delete.
16362         (define_expand "avx2_inserti128"): Ditto.
16363
16364 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16365             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16366             Anna Tikhonova  <anna.tikhonova@intel.com>
16367             Ilya Tocar  <ilya.tocar@intel.com>
16368             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16369             Ilya Verbin  <ilya.verbin@intel.com>
16370             Kirill Yukhin  <kirill.yukhin@intel.com>
16371             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16372
16373         * config/i386/sse.md
16374         (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
16375         (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
16376         (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
16377         (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
16378         (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
16379         (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
16380         (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
16381         (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
16382         (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
16383         (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
16384         (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
16385         (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
16386         (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
16387
16388 2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16389
16390         PR rtl-optimization/63210
16391         * ira-color.c (assign_hard_reg): Ignore conflict cost if the
16392         HARD_REGNO is not available for CONFLICT_A.
16393
16394 2014-09-23  Andi Kleen  <ak@linux.intel.com>
16395
16396         * cgraph.h (symtab_node): Add no_reorder attribute.
16397         (symbol_table::output_asm_statements): Remove.
16398         * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
16399         (cgraph_node::create_version_clone): Dito.
16400         (symbol_table::output_asm_statements): Remove.
16401         * trans-mem.c (ipa_tm_create_version_alias): Dito.
16402         * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
16403         (output_in_order): Add no_reorder flag. Only handle no_reorder
16404         nodes when set.
16405         (symbol_table::compile): Add separate pass for no_reorder nodes.
16406         (process_common_attributes): Set no_reorder flag in symtab node.
16407         Add node argument.
16408         (process_function_and_variable_attributes): Pass symtab nodes to
16409         process_common_attributes.
16410         * doc/extend.texi (no_reorder): Document no_reorder attribute.
16411         * lto-cgraph.c (lto_output_node): Serialize no_reorder.
16412         (lto_output_varpool_node): Dito.
16413         (input_overwrite_node): Dito.
16414         (input_varpool_node): Dito.
16415         * varpool.c (varpool_node::add): Set no_reorder attribute.
16416         (symbol_table::remove_unreferenced_decls): Handle no_reorder.
16417         (symbol_table::output_variables): Dito.
16418         * symtab.c (symtab_node::dump_base): Print no_reorder.
16419
16420 2014-09-23  Jiong Wang  <jiong.wang@arm.com>
16421
16422         * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
16423         be INVALID_REGNUM.
16424
16425 2014-09-23  Thomas Schwinge  <thomas@codesourcery.com>
16426
16427         * configure: Regenerate.
16428
16429 2014-09-23  Alan Lawrence  <alan.lawrence@arm.com>
16430
16431         * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
16432         when result_mode == shift_mode.
16433
16434 2014-09-23  Kostya Serebryany  <kcc@google.com>
16435
16436         Update to match the changed asan API.
16437         * asan.c (asan_global_struct): Update the __asan_global definition
16438         to match the new API.
16439         (asan_add_global): Ditto.
16440         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
16441         to __asan_init_v4.
16442
16443 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
16444
16445         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
16446         refine the constraints used on 32/64-bit floating point moves.
16447         (f32_av): Likewise.
16448         (f64_vsx): Likewise.
16449         (f64_dm): Likewise.
16450         (f64_av): Likewise.
16451         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
16452         (BOOL_REGS_OP1): Likewise.
16453         (BOOL_REGS_OP2): Likewise.
16454         (BOOL_REGS_UNARY): Likewise.
16455         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
16456         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
16457         for moves involving VSX registers.  Do not use constraints that
16458         target VSX registers for decimal types.
16459         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
16460         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
16461
16462 2014-09-23  Jan Hubicka  <hubicka@ucw.cz>
16463
16464         * tree.h (int_bit_position): Turn into inline function;
16465         implement using wide int.
16466         * tree.c (int_bit_position): Remove.
16467
16468 2014-09-23  Richard Sandiford  <richard.sandiford@arm.com>
16469
16470         PR bootstrap/63280
16471         * target-globals.c (target_globals::~target_globals): Fix location
16472         of ira_int destruction.
16473
16474 2014-09-23  Renlin Li  <renlin.li@arm.com>
16475
16476         * config/aarch64/aarch64.md (return): New.
16477         (simple_return): Likewise.
16478         * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
16479         * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
16480
16481 2014-09-23  Wilco Dijkstra  <wdijkstr@arm.com>
16482
16483         * common/config/aarch64/aarch64-common.c:
16484         (default_options aarch_option_optimization_table):
16485         Default to -fsched-pressure.
16486
16487 2014-09-23  Ilya Enkovich  <ilya.enkovich@intel.com>
16488
16489         * cfgcleanup.c (try_optimize_cfg): Do not remove label
16490         with LABEL_PRESERVE_P flag set.
16491
16492 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16493             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16494             Anna Tikhonova  <anna.tikhonova@intel.com>
16495             Ilya Tocar  <ilya.tocar@intel.com>
16496             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16497             Ilya Verbin  <ilya.verbin@intel.com>
16498             Kirill Yukhin  <kirill.yukhin@intel.com>
16499             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16500
16501         * config/i386/sse.md
16502         (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
16503         (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
16504         (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
16505         (define_insn "sse2_shufpd_v2df_mask"): New.
16506
16507 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16508             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16509             Anna Tikhonova  <anna.tikhonova@intel.com>
16510             Ilya Tocar  <ilya.tocar@intel.com>
16511             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16512             Ilya Verbin  <ilya.verbin@intel.com>
16513             Kirill Yukhin  <kirill.yukhin@intel.com>
16514             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16515
16516         * config/i386/sse.md
16517         (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
16518         (define_insn "avx_shufps256_1<mask_name>"): Ditto.
16519         (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
16520         (define_insn "sse_shufps_v4sf_mask"): New.
16521
16522 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16523             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16524             Anna Tikhonova  <anna.tikhonova@intel.com>
16525             Ilya Tocar  <ilya.tocar@intel.com>
16526             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16527             Ilya Verbin  <ilya.verbin@intel.com>
16528             Kirill Yukhin  <kirill.yukhin@intel.com>
16529             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16530
16531         * config/i386/sse.md
16532         (define_insn "avx_unpckhps256<mask_name>"): Add masking.
16533         (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
16534         (define_insn "avx_unpcklps256<mask_name>"): Ditto.
16535         (define_insn "unpcklps128_mask"): New.
16536
16537 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16538             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16539             Anna Tikhonova  <anna.tikhonova@intel.com>
16540             Ilya Tocar  <ilya.tocar@intel.com>
16541             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16542             Ilya Verbin  <ilya.verbin@intel.com>
16543             Kirill Yukhin  <kirill.yukhin@intel.com>
16544             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16545
16546         * config/i386/sse.md
16547         (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
16548         (define_insn "avx512vl_unpckhpd128_mask"): New.
16549         (define_expand "avx_movddup256<mask_name>"): Add masking.
16550         (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
16551         (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
16552         (define_insn "avx512vl_unpcklpd128_mask"): New.
16553
16554 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
16555
16556         * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16557         * doc/tm.texi: Regenerate.
16558         * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
16559         * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16560         * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16561         Remove.
16562         * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16563         * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16564         * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16565         * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16566         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16567         Remove.
16568         * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16569         * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16570         * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16571         * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16572         * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16573         * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16574         * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16575         * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16576         * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16577         * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16578         * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16579         Remove.
16580
16581 2014-09-22  Jan Hubicka  <hubicka@ucw.cz>
16582
16583         * tree-ssa-ccp.c (prop_value_d): Rename to ...
16584         (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
16585         * ipa-prop.c (struct type_change_info): Rename to ...
16586         (prop_type_change_info): ... this; update uses.
16587         * ggc-page.c (globals): Rename to ...
16588         (static struct ggc_globals): ... this; update uses.
16589         * tree-ssa-loop-im.c (mem_ref): Rename to ...
16590         (im_mem_ref): ... this; update uses.
16591         * ggc-common.c (loc_descriptor): Rename to ...
16592         (ggc_loc_descriptor): ... this; update uses.
16593         * lra-eliminations.c (elim_table): Rename to ...
16594         (lra_elim_table): ... this; update uses.
16595         * bitmap.c (output_info): Rename to ...
16596         (bitmap_output_info): ... this; update uses.
16597         * gcse.c (expr): Rename to ...
16598         (gcse_expr) ... this; update uses.
16599         (occr): Rename to ...
16600         (gcse_occr): .. this; update uses.
16601         * tree-ssa-copy.c (prop_value_d): Rename to ...
16602         (prop_value_t): ... this.
16603         * predict.c (block_info_def): Rename to ...
16604         (block_info): ... this; update uses.
16605         (edge_info_def): Rename to ...
16606         (edge_info): ... this; update uses.
16607         * profile.c (bb_info): Rename to ...
16608         (bb_profile_info): ... this; update uses.
16609         * alloc-pool.c (output_info): Rename to ...
16610         (pool_output_info): ... this; update uses.
16611         * ipa-cp.c (topo_info): Rename to ..
16612         (ipa_topo_info): ... this; update uses.
16613         * tree-nrv.c (nrv_data): Rename to ...
16614         (nrv_data_t): ... this; update uses.
16615         * ipa-split.c (bb_info): Rename to ...
16616         (split_bb_info): ... this one.
16617         * profile.h (edge_info): Rename to ...
16618         (edge_profile_info): ... this one; update uses.
16619         * dse.c (bb_info): Rename to ...
16620         (dse_bb_info): ... this one; update uses.
16621         * cprop.c (occr): Rename to ...
16622         (cprop_occr): ... this one; update uses.
16623         (expr): Rename to ...
16624         (cprop_expr): ... this one; update uses.
16625
16626 2014-09-22  Jason Merrill  <jason@redhat.com>
16627
16628         * Makefile.in (check-parallel-%): Add @.
16629
16630 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
16631
16632         * config/aarch64/geniterators.sh: New.
16633         * config/aarch64/iterators.md (VDQF_DF): New.
16634         * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
16635         * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
16636
16637 2014-09-22  Peter A. Bigot  <pab@pabigot.com>
16638
16639         * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
16640         -lnosys when -msim absent.
16641
16642 2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
16643
16644         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
16645
16646 2014-09-22  Richard Biener  <rguenther@suse.de>
16647
16648         * gimplify.c (gimplify_init_constructor): Do not leave
16649         non-GIMPLE vector constructors around.
16650         * tree-cfg.c (verify_gimple_assign_single): Verify that
16651         CONSTRUCTORs have gimple elements.
16652
16653 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
16654
16655         PR debug/63328
16656         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
16657         insert a debug source bind stmt setting DEBUG_EXPR_DECL
16658         instead of a normal gimple assignment stmt.
16659
16660 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
16661
16662         * config/bfin/bfin.md: Fix use of constraints in define_split.
16663
16664 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16665
16666         * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
16667         GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
16668
16669 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16670
16671         * hard-reg-set.h: Include hash-table.h.
16672         (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
16673         field.
16674         * target-globals.c (target_globals::~target_globals): Call
16675         hard_regs->finalize.
16676         * rtl.h (subreg_shape): New structure.
16677         (shape_of_subreg): New function.
16678         (simplifiable_subregs): Declare.
16679         * reginfo.c (simplifiable_subreg): New structure.
16680         (simplifiable_subregs_hasher): Likewise.
16681         (simplifiable_subregs): New function.
16682         (invalid_mode_changes): Delete.
16683         (alid_mode_changes, valid_mode_changes_obstack): New variables.
16684         (record_subregs_of_mode): Remove subregs_of_mode parameter.
16685         Record valid mode changes in valid_mode_changes.
16686         (find_subregs_of_mode): Remove subregs_of_mode parameter.
16687         Update calls to record_subregs_of_mode.
16688         (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
16689         handling.  Initialize new variables.  Update call to
16690         find_subregs_of_mode.
16691         (invalid_mode_change_p): Check new variables instead of
16692         invalid_mode_changes.
16693         (finish_subregs_of_mode): Finalize new variables instead of
16694         invalid_mode_changes.
16695         (target_hard_regs::finalize): New function.
16696         * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
16697         even when CLASS_CANNOT_CHANGE_MODE is undefined.
16698
16699 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16700
16701         * combine.c (subst): Use simplify_subreg_regno rather than
16702         REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
16703
16704 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16705
16706         * rtl.h (subreg_info): Expand commentary
16707         * rtlanal.c (subreg_get_info): Likewise.
16708
16709 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16710
16711         * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
16712         (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
16713         (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
16714
16715 2014-09-22  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16716
16717         * config/arm/arm.c: #include "tm-constrs.h"
16718         (thumb1_size_rtx_costs): Adjust rtx costs.
16719
16720 2014-09-22  Hans-Peter Nilsson  <hp@axis.com>
16721
16722         * configure.ac (target_header_dir): Move block defining
16723         this to before the block setting inhibit_libc.
16724         (inhibit_libc): When considering $with_headers, just
16725         check it it's explicitly "no".  If not, also check if
16726         $target_header_dir/stdio.h is present.  If not, set
16727         inhibit_libc=true.
16728         * configure: Regenerate.
16729
16730 2014-09-21  Patrick Oppenlander  <pattyo.lists@gmail.com>
16731
16732         * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
16733
16734 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16735
16736         * config/rs6000/rs6000.md (div<mode>3): Fix comment.  Use a different
16737         insn for divides by integer powers of two.
16738         (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
16739         (mod<mode>3): Fix formatting.
16740         (three anonymous define_insn and two define_split): Delete.
16741
16742 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16743
16744         * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
16745         *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
16746         (floatdisf2_internal2): Ditto.
16747         (ashrdi3_no_power): Ditto.  Fix formatting.
16748
16749 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16750
16751         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
16752         popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
16753         Tidy.
16754
16755 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16756
16757         * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
16758         constant, use addsi3 directly.
16759         (three anonymous define_insn, two define_split): Delete.
16760         (sub<mode>3): Move.  Do not allow constant second operand.
16761         Generate different insn for constant first operand.
16762         (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
16763         (subf<mode>3_imm): New.
16764         (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
16765         (*plus_ltu<mode>): Only handle registers.
16766         (*plus_ltu<mode>_1): New.  Handle integer third operand.
16767         (*plus_gtu<mode>): Only handle registers.
16768         (*plus_gtu<mode>_1): New.  Handle integer third operand.
16769
16770 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16771
16772         * config/rs6000/rs6000.md (iorxor): New code_iterator.
16773         (iorxor): New code_attr.
16774         (IORXOR): New code_attr.
16775         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
16776         (ior<mode>3, xor<mode>3): Delete.
16777         (<iorxor><mode>3): New.
16778         (splitter for "big" integer ior, xor): New.
16779         (*bool<mode>3): Move.  Also handle AND.
16780         (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
16781         (splitter for "big" integer ior, xor): Delete.
16782
16783 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16784
16785         * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
16786         (two anonymous define_insn and two define_split): Delete.
16787         (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
16788
16789 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16790
16791         * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
16792         (two anonymous define_insn and two define_split): Delete.
16793         (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
16794
16795 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16796
16797         * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
16798
16799 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16800
16801         * config/rs6000/predicates.md (ca_operand): Allow subregs.
16802         (input_operand): Do not allow ca_operand.
16803         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
16804         carry bit, allow SImode and Pmode.
16805         (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
16806
16807 2014-09-21  Uros Bizjak  <ubizjak@gmail.com>
16808
16809         * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
16810         clobbered registers using clobber_reg.  Remove UNSPEC decoration.
16811         * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
16812         (*call_rex64_ms_sysv): Remove.
16813         (*call_value_rex64_ms_sysv): Ditto.
16814         * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
16815
16816 2014-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>
16817
16818         * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
16819         operand 3 to "CnL".
16820
16821 2014-09-20  Andreas Schwab  <schwab@suse.de>
16822
16823         * config/ia64/ia64.md: Remove constraints from define_split
16824         patterns.
16825
16826 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16827
16828         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
16829         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
16830         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
16831         (get_dynamic_type): Remove.
16832         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
16833         (clear_speculation): Bring to ipa-deivrt.h
16834         (get_class_context): Rename to ...
16835         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
16836         (contains_type_p): Update.
16837         (get_dynamic_type): Rename to ...
16838         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
16839         (possible_polymorphic_call_targets): UPdate.
16840         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
16841         * ipa-prop.c (ipa_analyze_call_uses): Update.
16842
16843 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16844
16845         * ipa-visibility.c (varpool_node::externally_visible_p): Do not
16846         privatize dynamic TLS variables.
16847
16848 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16849
16850         * diagnostic.c (warning_n): New function.
16851         * diagnostic-core.h (warning_n): Declare.
16852         * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
16853         output dynamic counts when available.
16854
16855 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16856
16857         PR tree-optimization/63255
16858         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
16859         issue in setting body_removed flag.
16860
16861 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16862
16863         PR c++/61825
16864         * c-family/c-common.c (handle_alias_ifunc_attribute): Check
16865         that visibility change is possible
16866         (handle_weakref_attribute): Likewise.
16867         * cgraph.h (symtab_node): Add method get_create and
16868         field refuse_visibility_changes.
16869         (symtab_node::get_create): New method.
16870         * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
16871         * varasm.c (mark_weak): Verify that visibility change is
16872         possible.
16873
16874 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
16875
16876         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
16877         for base_reg_operand to be common between LO_SUM and PLUS.
16878         (fusion_gpr_mem_combo): New predicate to match a fused address
16879         that combines the addis and memory offset address.
16880
16881         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
16882         calling signature.
16883         (emit_fusion_gpr_load): Likewise.
16884
16885         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
16886         signature to pass each argument separately, rather than
16887         using an operands array.  Rewrite the insns found by peephole2 to
16888         be a single insn, rather than hoping the insns will still be
16889         together when the peephole pass is done.  Drop being called via a
16890         normal peephole.
16891         (emit_fusion_gpr_load): Change calling signature to be called from
16892         the fusion_gpr_load_<mode> insns with a combined memory address
16893         instead of the peephole pass passing the addis and offset
16894         separately.
16895
16896         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
16897         fusion.
16898         (power8 fusion peephole): Drop support for doing power8 via a
16899         normal peephole that was created by the peephole2 pass.
16900         (power8 fusion peephole2): Create a new insn with the fused
16901         address, so that the fused operation is kept together after
16902         register allocation is done.
16903         (fusion_gpr_load_<mode>): Likewise.
16904
16905 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16906
16907         PR lto/63286
16908         * tree.c (need_assembler_name_p): Do not mangle variadic types.
16909
16910 2014-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
16911
16912         * recog.c (scratch_operand): Do not simply allow all hard registers:
16913         only allow those that are allocatable.
16914
16915 2014-09-19  Felix Yang  <felix.yang@huawei.com>
16916
16917         * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
16918         comments and fix spacing to conform to coding style.
16919
16920 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
16921
16922         * genrecog.c (validate_pattern): Allow empty constraints in
16923         a match_scratch.
16924
16925 2014-09-19  Aldy Hernandez  <aldyh@redhat.com>
16926
16927         * dwarf2out.c (decl_ultimate_origin): Update comment.
16928         * tree.c (block_ultimate_origin): Same.
16929
16930 2014-09-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16931
16932         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
16933         Update GCC version name to GCC 5.
16934         (rs6000_function_arg_boundary): Likewise.
16935         (rs6000_function_arg): Likewise.
16936
16937 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
16938
16939         * config/sh/sh.md: Fix use of constraints in define_split.
16940
16941 2014-09-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
16942
16943         PR ipa/61998
16944         * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
16945
16946 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
16947
16948         * doc/md.texi (Modifiers): Consistently use "read/write"
16949         nomenclature rather than "input/output".
16950         * genrecog.c (constraints_supported_in_insn_p): New.
16951         (validate_pattern): If needed, also check constraints on
16952         MATCH_SCRATCH operands.
16953         * genoutput.c (validate_insn_alternatives): Catch earlyclobber
16954         operands with no '=' or '+' modifier.
16955
16956 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
16957
16958         * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
16959         scratch register as written.
16960
16961 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16962
16963         * config/s390/s390.c (s390_emit_epilogue): Remove bogus
16964         assignment.
16965
16966 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16967
16968         * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
16969         expanders.
16970
16971 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16972
16973         PR target/62662
16974         * config/s390/s390.c (s390_emit_epilogue): When doing the return
16975         address load optimization force s390_optimize_prologue to leave it
16976         that way.  Only do the optimization if we already decided to push
16977         r14 into a stack slot.
16978
16979 2014-09-19  Marat Zakirov  <m.zakirov@samsung.com>
16980
16981         * asan.c (build_check_stmt): Alignment arg was added.
16982         (asan_expand_check_ifn): Optimization for alignment >= 8.
16983
16984 2014-09-19  Olivier Hainque  <hainque@adacore.com>
16985
16986         * config/i386/vxworksae.h: Remove obsolete definitions.
16987         (STACK_CHECK_PROTECT): Define.
16988         * config/i386/vx-common.h: Remove.  Merge contents within
16989         config/i386/vxworks.h.
16990         * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
16991         i386/vx-common.h.
16992
16993 2014-09-19  Olivier Hainque  <hainque@adacore.com>
16994
16995         * config.gcc (powerpc-wrs-vxworksmils): New configuration.
16996         * config/rs6000/t-vxworksmils: New file.
16997         * config/rs6000/vxworksmils.h: New file.
16998
16999 2014-09-19  Olivier Hainque  <hainque@adacore.com>
17000
17001         * varasm.c (default_section_type_flags): Flag .persistent.bss
17002         sections as SECTION_BSS.
17003
17004 2014-09-19  Nick Clifton  <nickc@redhat.com>
17005
17006         * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
17007         pop'ed registers so that DCE does not eliminate them.
17008
17009 2014-09-18  Jan Hubicka  <hubicka@ucw.cz>
17010
17011         PR lto/63298
17012         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
17013
17014 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
17015
17016         * system.h (LIBGCC2_TF_CEXT): Poison.
17017         * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
17018         * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
17019         * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
17020         * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
17021         * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
17022         * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
17023         * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
17024         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
17025         * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
17026
17027 2014-09-19  Kito Cheng  <kito@0xlab.org>
17028
17029         * except.h: Fix header guard.
17030         * addresses.h: Add missing header guard.
17031         * cfghooks.h: Likewise.
17032         * collect-utils.h: Likewise.
17033         * collect2-aix.h: Likewise.
17034         * conditions.h: Likewise.
17035         * cselib.h: Likewise.
17036         * dwarf2asm.h: Likewise.
17037         * graphds.h: Likewise.
17038         * graphite-scop-detection.h: Likewise.
17039         * gsyms.h: Likewise.
17040         * hw-doloop.h: Likewise.
17041         * incpath.h: Likewise.
17042         * ipa-inline.h: Likewise.
17043         * ipa-ref.h: Likewise.
17044         * ira-int.h: Likewise.
17045         * ira.h: Likewise.
17046         * lra-int.h: Likewise.
17047         * lra.h: Likewise.
17048         * lto-section-names.h: Likewise.
17049         * read-md.h: Likewise.
17050         * reload.h: Likewise.
17051         * rtl-error.h: Likewise.
17052         * sdbout.h: Likewise.
17053         * targhooks.h: Likewise.
17054         * tree-affine.h: Likewise.
17055         * xcoff.h: Likewise.
17056         * xcoffout.h: Likewise.
17057
17058 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
17059
17060         PR debug/63285
17061         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
17062         if advance != 0.
17063
17064 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
17065
17066         PR target/61360
17067         * lra.c (lra): Call recog_init.
17068
17069 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
17070
17071         PR c++/62017
17072         * asan.c (transform_statements): Don't instrument clobber statements.
17073
17074 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17075
17076         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
17077         to neon_load1_1reg<q>.
17078
17079 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
17080
17081         PR debug/63284
17082         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
17083         if there are only debug stmts after the noreturn call, instead
17084         remove the debug stmts.
17085
17086 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
17087
17088         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
17089         (odr_types_equivalent_p): Use pair hash.
17090         (odr_subtypes_equivalent_p): Likewise, do structural compare
17091         on ODR types that may be mismatched.
17092         (warn_odr): Support warning when only one field is given.
17093         (odr_types_equivalent_p): Strenghten comparsions made;
17094         support VOIDtype.
17095         (add_type_duplicate): Update VISITED hash set.
17096
17097 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
17098
17099         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
17100         Enable selection of 'posix' or no thread model.
17101
17102 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
17103
17104         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
17105         when architecture is older than ARMv7.
17106
17107 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
17108
17109         PR target/61853
17110         * config/pa/pa.c (pa_function_value): Directly handle aggregates
17111         that fit exactly in a word or double word.
17112
17113 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
17114
17115         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
17116         zmm/k regs support.
17117
17118 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17119             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17120             Anna Tikhonova  <anna.tikhonova@intel.com>
17121             Ilya Tocar  <ilya.tocar@intel.com>
17122             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17123             Ilya Verbin  <ilya.verbin@intel.com>
17124             Kirill Yukhin  <kirill.yukhin@intel.com>
17125             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17126
17127         * config/i386/i386.c
17128         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
17129         * config/i386/sse.md
17130         (define_mode_iterator VI48F_256): New.
17131         (define_mode_attr extract_type): Ditto.
17132         (define_mode_attr extract_suf): Ditto.
17133         (define_mode_iterator AVX512_VEC): Ditto.
17134         (define_expand
17135         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
17136         AVX512_VEC.
17137         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
17138         (define_insn
17139         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
17140         Ditto.
17141         (define_mode_attr extract_type_2): Ditto.
17142         (define_mode_attr extract_suf_2): Ditto.
17143         (define_mode_iterator AVX512_VEC_2): Ditto.
17144         (define_expand
17145         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
17146         AVX512_VEC_2 mode iterator.
17147         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
17148         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
17149         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
17150         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
17151         (define_split for V16FI mode): Ditto.
17152         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
17153         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
17154         (define_split for VI8F_256 mode): Ditto.
17155         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
17156         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
17157         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
17158         (define_split for VI4F_256 mode): Ditto.
17159         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
17160         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
17161         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
17162         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
17163         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
17164         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
17165         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
17166         Update `type' attribute, remove explicit `memory' attribute calculation.
17167
17168 2014-09-16  Kito Cheng  <kito@0xlab.org>
17169
17170         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
17171         ira_spilled_reg_stack_slots_num if using lra.
17172         (do_reload): Remove release ira_spilled_reg_stack_slots part.
17173         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
17174         make sure not using lra.
17175         (ira_reuse_stack_slot): Likewise.
17176         (ira_mark_new_stack_slot): Likewise.
17177
17178 2014-09-15  Andi Kleen  <ak@linux.intel.com>
17179
17180         * function.c (allocate_struct_function): Force
17181         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
17182         profiling is disabled.
17183
17184 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
17185
17186         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
17187         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
17188         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
17189         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
17190         macro with statically checked member functions.
17191         * rtl.h (rtx_insn::deleted): New method.
17192         (rtx_insn::set_deleted): Likewise.
17193         (rtx_insn::set_undeleted): Likewise.
17194         (INSN_DELETED_P): Remove.
17195
17196 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
17197
17198         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
17199         result of emit_jump_insn_before to a new variable.
17200         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
17201         (mark_jump_label_1): Likewise.
17202         (mark_jump_label_asm): Likewise.
17203         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
17204         * rtl.h (mark_jump_label): Adjust.
17205
17206 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
17207
17208         * Makefile.in (dg_target_exps): Remove.
17209         (check_gcc_parallelize): Change to just an upper bound number.
17210         (check-%-subtargets): Always print the non-parallelized goals.
17211         (check_p_vars, check_p_comma, check_p_subwork): Remove.
17212         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
17213         check_p_numbers3, check_p_numbers4, check_p_numbers5,
17214         check_p_numbers6): New variables.
17215         (check_p_numbers): Set to sequence from 1 to 9999.
17216         (check_p_subdirs): Set to sequence from 1 to minimum of
17217         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
17218         or 128.
17219         (check-%, check-parallel-%): Rewritten so that for parallelized
17220         testing each job runs all the *.exp files, with
17221         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
17222
17223 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17224
17225         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
17226         rtx to rtx_insn *.
17227         (arc_sets_cc_p): Likewise.
17228         * config/arc/arc.c (arc_print_operand): Use methods of
17229         "final_sequence" for clarity, and to enable strengthening of
17230         locals "jump" and "delay" from rtx to rtx_insn *.
17231         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
17232         rtx_insn *; use method of rtx_sequence for typesafety.
17233         (arc_get_insn_variants): Use insn method of rtx_sequence for
17234         typesafety.
17235         (arc_pad_return): Likewise.
17236         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
17237         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
17238         dyn_cast to rtx_sequence *, using insn method for typesafety.
17239         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
17240         rtx_sequence * and use insn method when invoking get_attr_length.
17241         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
17242         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
17243         rtx_sequence *, introducing a local "seq", using its insn method
17244         from typesafety and clarity.
17245         (add_sched_insns_for_speculation): Strengthen local "next" from
17246         rtx to rtx_insn *.
17247         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
17248         (predicate_insn): Likewise.
17249         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
17250         second param.
17251         * config/cris/cris.c (cris_notice_update_cc): Likewise.
17252         * config/epiphany/epiphany-protos.h
17253         (extern void epiphany_insert_mode_switch_use): Likewise for param
17254         "insn".
17255         (get_attr_sched_use_fpu): Likewise for param.
17256         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
17257         Likewise for param "insn".
17258         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
17259         param "insn" of "target_insert_mode_switch_use" callback.
17260         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
17261         (frv_issues_to_branch_unit_p): Likewise.
17262         (frv_pack_insn_p): Likewise.
17263         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
17264         const rtx * (i.e. mutable rtx_def * const *) to
17265         rtx_insn * const *.
17266         * config/i386/i386-protos.h (standard_sse_constant_opcode):
17267         Strengthen first param from rtx to rtx_insn *.
17268         (output_fix_trunc): Likewise.
17269         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
17270         (output_fix_trunc): Likewise.
17271         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
17272         local "insn".
17273         (min_insn_size): Likewise for param "insn".
17274         (get_mem_group): Likewise.
17275         (is_cmp): Likewise.
17276         (get_insn_path): Likewise.
17277         (get_insn_group): Likewise.
17278         (count_num_restricted): Likewise.
17279         (fits_dispatch_window): Likewise.
17280         (add_insn_window): Likewise.
17281         (add_to_dispatch_window): Likewise.
17282         (debug_insn_dispatch_info_file): Likewise.
17283         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
17284         first param.
17285         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
17286         "cmp" and local "prev".
17287         (m32c_output_compare): Likewise for param "insn".
17288         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
17289         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
17290         (define_predicate "large_insn_p"): Likewise.
17291         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
17292         param from rtx to rtx_insn *.
17293         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
17294         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
17295         (m68k_sched_attr_size): Likewise.
17296         (sched_get_opxy_mem_type): Likewise for param "insn".
17297         (m68k_sched_attr_op_mem): Likewise.
17298         (sched_mem_operand_p): Likewise.
17299         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
17300         * config/mep/mep.c (mep_multi_slot): Likewise.
17301         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
17302         first param.
17303         (mips_sync_loop_insns): Likewise.
17304         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
17305         method of "final_sequence" for typesafety.
17306         (mips_process_sync_loop): Strengthen param "insn" from rtx to
17307         rtx_insn *.
17308         (mips_output_sync_loop): Likewise.
17309         (mips_sync_loop_insns): Likewise.
17310         (mips_74k_agen_init): Likewise.
17311         (mips_sched_init): Use NULL rather than NULL_RTX when working with
17312         insns.
17313         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
17314         Strengthen param "insn" from rtx to rtx_insn *.
17315         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
17316         local "insn".
17317         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
17318         param.
17319         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
17320         "insn".  Use method of rtx_sequence for typesafety.
17321         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
17322         rtx_insn *.
17323         (branch_needs_nop_p): Likewise.
17324         (use_skip_p): Likewise.
17325         (pa_insn_refs_are_delayed): Likewise.
17326         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
17327         for locals "insn", "ninsn".
17328         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
17329         "insn".
17330         (is_cracked_insn): Likewise.
17331         (is_branch_slot_insn): Likewise.
17332         (is_nonpipeline_insn): Likewise.
17333         (insn_terminates_group_p): Likewise.
17334         (insn_must_be_first_in_group): Likewise.
17335         (insn_must_be_last_in_group): Likewise.
17336         (force_new_group): Likewise for param "next_insn".
17337         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
17338         "insn".
17339         (s390_sched_score): Likewise.
17340         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
17341         (rtx sfunc_uses_reg): Likewise for sole param.
17342         * config/sh/sh.c (sh_print_operand): Use insn method of
17343         final_sequence for typesafety.
17344         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
17345         Use insn method of final_sequence for typesafety.
17346         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
17347         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
17348         for param.
17349         (eligible_for_return_delay): Likewise.
17350         (eligible_for_sibcall_delay): Likewise.
17351         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
17352         (eligible_for_return_delay): Likewise.
17353         (eligible_for_sibcall_delay): Likewise.
17354         * config/stormy16/stormy16-protos.h
17355         (xstormy16_output_cbranch_hi): Likewise for final param.
17356         (xstormy16_output_cbranch_si): Likewise.
17357         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
17358         (xstormy16_output_cbranch_si): Likewise.
17359         * config/v850/v850-protos.h (notice_update_cc): Likewise.
17360         * config/v850/v850.c (notice_update_cc): Likewise.
17361
17362         * final.c (get_attr_length_1): Strengthen param "insn" and param
17363         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
17364         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
17365         (get_attr_min_length): Likewise.
17366         (shorten_branches): Likewise for signature of locals "length_fun"
17367         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
17368         from a checked cast and use its methods for clarity and to enable
17369         strengthening local "inner_insn" from rtx to rtx_insn *.
17370         * genattr.c (gen_attr): When writing out the prototypes of the
17371         various generated "get_attr_" functions, strengthen the params of
17372         the non-const functions from rtx to rtx_insn *.
17373         Similarly, strengthen the params of insn_default_length,
17374         insn_min_length, insn_variable_length_p, insn_current_length.
17375         (main): Similarly, strengthen the param of num_delay_slots,
17376         internal_dfa_insn_code, insn_default_latency, bypass_p,
17377         insn_latency, min_issue_delay, print_reservation,
17378         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
17379         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
17380         to hook_int_rtx_insn_unreachable.
17381         * genattrtab.c (write_attr_get): When writing out the generated
17382         "get_attr_" functions, strengthen the param "insn" from rtx to
17383         rtx_insn *, eliminating a checked cast.
17384         (make_automaton_attrs): When writing out prototypes of
17385         "internal_dfa_insn_code_", "insn_default_latency_" functions
17386         and the "internal_dfa_insn_code" and "insn_default_latency"
17387         callbacks, strengthen their params from rtx to rtx_insn *
17388         * genautomata.c (output_internal_insn_code_evaluation): When
17389         writing out code, add a checked cast from rtx to rtx_insn * when
17390         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
17391         (output_dfa_insn_code_func): Strengthen param of generated
17392         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
17393         (output_trans_func): Likewise for generated function
17394         "state_transition".
17395         (output_internal_insn_latency_func): When writing out generated
17396         function "internal_insn_latency", rename params from "insn" and
17397         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
17398         locals "insn" and "insn2" as rtx_insn * with checked casts once
17399         we've proven that we're not dealing with const0_rtx.
17400         (output_insn_latency_func):  Strengthen param of generated
17401         function "insn_latency" from rtx to rtx_insn *.
17402         (output_print_reservation_func): Likewise for generated function
17403         "print_reservation".
17404         (output_insn_has_dfa_reservation_p): Likewise for generated
17405         function "insn_has_dfa_reservation_p".
17406         * hooks.c (hook_int_rtx_unreachable): Rename to...
17407         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
17408         from rtx to rtx_insn *.
17409         * hooks.h (hook_int_rtx_unreachable): Likewise.
17410         (extern int hook_int_rtx_insn_unreachable): Likewise.
17411         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
17412         (get_attr_min_length): Likewise.
17413         * recog.c (get_enabled_alternatives): Likewise.
17414         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
17415         * reorg.c (find_end_label): Introduce local rtx "pat" and
17416         strengthen local "insn" from rtx to rtx_insn *.
17417         (redundant_insn): Use insn method of "seq" rather than element for
17418         typesafety; strengthen local "control" from rtx to rtx_insn *.
17419         * resource.c (mark_referenced_resources): Add checked cast to
17420         rtx_insn * within INSN/JUMP_INSN case.
17421         (mark_set_resources): Likewise.
17422         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
17423         rtx to rtx_insn *.
17424
17425 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17426
17427         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
17428         param "label" from rtx to rtx_insn *.
17429         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
17430         and local "op".
17431         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
17432         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
17433         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
17434         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
17435         * final.c (default_label_align_after_barrier_max_skip): Strengthen
17436         param from rtx to rtx_insn *.
17437         (default_loop_align_max_skip): Likewise.
17438         (default_label_align_max_skip): Likewise.
17439         (default_jump_align_max_skip): Likewise.
17440         * target.def (label_align_after_barrier_max_skip): Likewise.
17441         (loop_align_max_skip): Likewise.
17442         (label_align_max_skip): Likewise.
17443         (jump_align_max_skip): Likewise.
17444         * targhooks.h (default_label_align_after_barrier_max_skip):
17445         Likewise.
17446         (default_loop_align_max_skip): Likewise.
17447         (default_label_align_max_skip): Likewise.
17448         (default_jump_align_max_skip): Likewise.
17449
17450 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17451
17452         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
17453         from const_rtx to const rtx_insn *.  Update union members from rtx
17454         to rtx_insn *.
17455         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
17456         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
17457         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
17458         strengthen both params from const_rtx to const rtx_insn *.
17459         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
17460         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
17461         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
17462         rtx_insn *.
17463         * target.def (can_follow_jump): Strengthen both params from
17464         const_rtx to const rtx_insn *, and update default implementation
17465         from hook_bool_const_rtx_const_rtx_true to
17466         hook_bool_const_rtx_insn_const_rtx_insn_true.
17467
17468 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17469
17470         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
17471         "insn" from rtx to rtx_insn *.
17472         * sched-int.h (deps_start_bb): Likewise for 2nd param.
17473
17474 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17475             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17476             Anna Tikhonova  <anna.tikhonova@intel.com>
17477             Ilya Tocar  <ilya.tocar@intel.com>
17478             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17479             Ilya Verbin  <ilya.verbin@intel.com>
17480             Kirill Yukhin  <kirill.yukhin@intel.com>
17481             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17482
17483         * config/i386/sse.md
17484         (define_insn "vcvtph2ps<mask_name>"): Add masking.
17485         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
17486         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
17487         (define_expand "vcvtps2ph_mask"): New.
17488         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
17489         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
17490         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
17491
17492 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17493             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17494             Anna Tikhonova  <anna.tikhonova@intel.com>
17495             Ilya Tocar  <ilya.tocar@intel.com>
17496             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17497             Ilya Verbin  <ilya.verbin@intel.com>
17498             Kirill Yukhin  <kirill.yukhin@intel.com>
17499             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17500
17501         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
17502         New.
17503         (define_mode_iterator VI24_AVX512BW_1): Ditto.
17504         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
17505         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
17506         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
17507         also for TARGET_AVX512VL.
17508         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
17509
17510 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
17511
17512         * doc/install.texi (Options specification): add
17513         --disable-libsanitizer item.
17514
17515 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
17516             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
17517
17518         PR target/61407
17519         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
17520         and above.
17521         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
17522         kernel version check to avoid incrementing it after every major OS X
17523         release.
17524         (darwin_default_min_version): Avoid static memory buffer.
17525
17526 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
17527
17528         * tree.c (need_assembler_name_p): Store C++ type mangling only
17529         for aggregates.
17530
17531 2014-09-13  Marek Polacek  <polacek@redhat.com>
17532
17533         * tree.c (protected_set_expr_location): Don't check whether T is
17534         non-null here.
17535
17536 2014-09-12  DJ Delorie  <dj@redhat.com>
17537
17538         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
17539         (extend_and_shift1_hipsi2): Likewise.
17540         (extend_and_shift2_hipsi2): Likewise.
17541
17542 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
17543
17544         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
17545         with NULL when dealing with an insn.
17546         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
17547         from rtx to rtx_insn *.
17548         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
17549         const_rtx to const rtx_insn *.
17550         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
17551
17552 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
17553
17554         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
17555         assert.
17556
17557 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
17558
17559         * target.def (libgcc_floating_mode_supported_p): New hook.
17560         * targhooks.c (default_libgcc_floating_mode_supported_p): New
17561         function.
17562         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
17563         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
17564         (LIBGCC2_HAS_TF_MODE): Remove.
17565         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
17566         * doc/tm.texi: Regenerate.
17567         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
17568         machine mode.
17569         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
17570         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
17571         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
17572         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
17573         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17574         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
17575         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
17576         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
17577         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
17578         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
17579         function.
17580         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
17581         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17582         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17583         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17584         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17585         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17586         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17587         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
17588         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
17589         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
17590         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17591         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
17592         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
17593         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
17594         Remove.
17595         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
17596         New macro.
17597         (ia64_libgcc_floating_mode_supported_p): New function.
17598         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
17599         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
17600         (IA64_NO_LIBGCC_TFMODE): Define.
17601         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
17602         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
17603         macro.
17604         (pdp11_scalar_mode_supported_p): New function.
17605         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
17606         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
17607
17608 2014-09-12  Richard Biener  <rguenther@suse.de>
17609
17610         PR middle-end/63237
17611         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
17612
17613 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
17614
17615         * tree.c (integer_each_onep): New function.
17616         * tree.h (integer_each_onep): Declare it.
17617         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
17618         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
17619         (X & 1) == 0 for vector and complex.
17620
17621 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17622
17623         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
17624         for A57.
17625         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
17626         cost to spilling from integer to FP registers.
17627
17628 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17629
17630         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
17631         move handling.
17632         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
17633         are now handled correctly.
17634
17635 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17636
17637         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
17638         handling of CALLER_SAVE_REGS and POINTER_REGS.
17639
17640 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17641
17642         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
17643         the number of hard registers.
17644
17645 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17646             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17647             Anna Tikhonova  <anna.tikhonova@intel.com>
17648             Ilya Tocar  <ilya.tocar@intel.com>
17649             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17650             Ilya Verbin  <ilya.verbin@intel.com>
17651             Kirill Yukhin  <kirill.yukhin@intel.com>
17652             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17653
17654         * config/i386/sse.md
17655         (define_mode_iterator VI48_AVX512VL): New.
17656         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
17657         "avx512f_vternlog<mode>_maskz" and update mode iterator.
17658         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
17659         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
17660         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
17661         "avx512f_vternlog<mode>_mask" and update mode iterator.
17662         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
17663         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
17664         iterator.
17665         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
17666         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
17667         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
17668         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
17669         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
17670         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
17671
17672 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17673             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17674             Anna Tikhonova  <anna.tikhonova@intel.com>
17675             Ilya Tocar  <ilya.tocar@intel.com>
17676             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17677             Ilya Verbin  <ilya.verbin@intel.com>
17678             Kirill Yukhin  <kirill.yukhin@intel.com>
17679             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17680
17681         * config/i386/sse.md (VI128_256): Delete.
17682         (define_mode_iterator VI124_256): New.
17683         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
17684         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
17685         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
17686         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
17687         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
17688         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
17689         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
17690         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
17691         iterator.
17692         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
17693         in presence of AVX-512.
17694
17695 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17696             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17697             Anna Tikhonova  <anna.tikhonova@intel.com>
17698             Ilya Tocar  <ilya.tocar@intel.com>
17699             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17700             Ilya Verbin  <ilya.verbin@intel.com>
17701             Kirill Yukhin  <kirill.yukhin@intel.com>
17702             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17703
17704         * config/i386/sse.md
17705         (define_expand "<avx512>_gathersi<mode>"): Rename from
17706         "avx512f_gathersi<mode>".
17707         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
17708         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
17709         (define_expand "<avx512>_gatherdi<mode>"): Rename from
17710         "avx512f_gatherdi<mode>".
17711         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
17712         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
17713         wide versions.
17714         (define_expand "<avx512>_scattersi<mode>"): Rename from
17715         "avx512f_scattersi<mode>".
17716         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
17717         (define_expand "<avx512>_scatterdi<mode>"): Rename from
17718         "avx512f_scatterdi<mode>".
17719         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
17720
17721 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
17722
17723         * ira.h (ira_finish_once): Delete.
17724         * ira-int.h (target_ira_int::~target_ira_int): Declare.
17725         (target_ira_int::free_ira_costs): Likewise.
17726         (target_ira_int::free_register_move_costs): Likewise.
17727         (ira_finish_costs_once): Delete.
17728         * ira.c (free_register_move_costs): Replace with...
17729         (target_ira_int::free_register_move_costs): ...this new function.
17730         (target_ira_int::~target_ira_int): Define.
17731         (ira_init): Call free_register_move_costs as a member function rather
17732         than a global function.
17733         (ira_finish_once): Delete.
17734         * ira-costs.c (free_ira_costs): Replace with...
17735         (target_ira_int::free_ira_costs): ...this new function.
17736         (ira_init_costs): Call free_ira_costs as a member function rather
17737         than a global function.
17738         (ira_finish_costs_once): Delete.
17739         * target-globals.c (target_globals::~target_globals): Call the
17740         target_ira_int destructor.
17741         * toplev.c: Include lra.h.
17742         (finalize): Call lra_finish_once rather than ira_finish_once.
17743
17744 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
17745
17746         * common.opt (flto-odr-type-merging): New flag.
17747         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
17748         (types_same_for_odr): Likewise.
17749         (odr_subtypes_equivalent_p): Likewise.
17750         (add_type_duplicate): Do not walk type variants.
17751         (register_odr_type): New function.
17752         * ipa-utils.h (register_odr_type): Declare.
17753         (odr_type_p): New function.
17754         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
17755         TYPE_DECLs
17756         * doc/invoke.texi (-flto-odr-type-merging): Document.
17757         * tree.c (need_assembler_name_p): Compute ODR names when asked
17758         for it.
17759         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
17760
17761 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
17762
17763         PR target/63228
17764         * config/i386/i386.c (ix86_option_override_internal): Also turn
17765         off OPTION_MASK_ABI_X32 for -m16.
17766
17767 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
17768
17769         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
17770         GPR instead of P.
17771
17772 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
17773
17774         PR target/58757
17775         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
17776         Directly forward to __*_DENORM_MIN__.
17777
17778 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
17779
17780         * rtl.h (LABEL_REF_LABEL): New macro.
17781
17782         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
17783         of XEXP (, 0), where we know that we have a LABEL_REF.
17784         * cfgbuild.c (make_edges): Likewise.
17785         (purge_dead_tablejump_edges): Likewise.
17786         * cfgexpand.c (convert_debug_memory_address): Likewise.
17787         * cfgrtl.c (patch_jump_insn): Likewise.
17788         * combine.c (distribute_notes): Likewise.
17789         * cse.c (hash_rtx_cb): Likewise.
17790         (exp_equiv_p): Likewise.
17791         (fold_rtx): Likewise.
17792         (check_for_label_ref): Likewise.
17793         * cselib.c (rtx_equal_for_cselib_1): Likewise.
17794         (cselib_hash_rtx): Likewise.
17795         * emit-rtl.c (mark_label_nuses): Likewise.
17796         * explow.c (convert_memory_address_addr_space): Likewise.
17797         * final.c (output_asm_label): Likewise.
17798         (output_addr_const): Likewise.
17799         * gcse.c (add_label_notes): Likewise.
17800         * genconfig.c (walk_insn_part): Likewise.
17801         * genrecog.c (validate_pattern): Likewise.
17802         * ifcvt.c (cond_exec_get_condition): Likewise.
17803         (noce_emit_store_flag): Likewise.
17804         (noce_get_alt_condition): Likewise.
17805         (noce_get_condition): Likewise.
17806         * jump.c (maybe_propagate_label_ref): Likewise.
17807         (mark_jump_label_1): Likewise.
17808         (redirect_exp_1): Likewise.
17809         (rtx_renumbered_equal_p): Likewise.
17810         * lra-constraints.c (operands_match_p): Likewise.
17811         * reload.c (operands_match_p): Likewise.
17812         (find_reloads): Likewise.
17813         * reload1.c (set_label_offsets): Likewise.
17814         * reorg.c (get_branch_condition): Likewise.
17815         * rtl.c (rtx_equal_p_cb): Likewise.
17816         (rtx_equal_p): Likewise.
17817         * rtlanal.c (reg_mentioned_p): Likewise.
17818         (rtx_referenced_p): Likewise.
17819         (get_condition): Likewise.
17820         * sched-vis.c (print_value): Likewise.
17821         * varasm.c (const_hash_1): Likewise.
17822         (compare_constant): Likewise.
17823         (const_rtx_hash_1): Likewise.
17824         (output_constant_pool_1): Likewise.
17825
17826 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
17827
17828         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
17829         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
17830         instead of minus.
17831         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
17832         cr6_test_for_lt_reverse): Ditto.
17833
17834 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
17835
17836         PR c++/61489
17837         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
17838
17839 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
17840
17841         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
17842         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
17843         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
17844         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
17845         Delete.
17846
17847         (aarch64_fold_builtin): Remove all reinterpret cases.
17848
17849         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
17850
17851         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
17852
17853         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
17854         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
17855         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
17856         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
17857         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
17858         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
17859         aarch64_reinterpretv2df<mode>): Delete.
17860
17861         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
17862
17863         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
17864         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
17865         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
17866         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
17867         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
17868         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
17869         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
17870         vreinterpret_u32_f64): Use cast.
17871
17872         * config/aarch64/iterators.md (VD_RE): Delete.
17873
17874 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
17875
17876         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
17877         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
17878         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
17879         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
17880         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
17881         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
17882         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
17883         Replace inline assembler with __aarch64_vset_lane_any.
17884
17885 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
17886
17887         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
17888         types.
17889         (vmull_high_lane_s32): Likewise.
17890         (vmull_high_lane_u16): Likewise.
17891         (vmull_high_lane_u32): Likewise.
17892
17893 2014-09-11  Jason Merrill  <jason@redhat.com>
17894
17895         PR c++/58678
17896         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
17897
17898 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
17899
17900         PR target/63223
17901         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
17902         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
17903         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
17904
17905 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17906             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17907             Anna Tikhonova  <anna.tikhonova@intel.com>
17908             Ilya Tocar  <ilya.tocar@intel.com>
17909             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17910             Ilya Verbin  <ilya.verbin@intel.com>
17911             Kirill Yukhin  <kirill.yukhin@intel.com>
17912             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17913
17914         * config/i386/sse.md
17915         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
17916         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
17917         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
17918         New.
17919         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
17920         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
17921         iterator.
17922         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
17923         New.
17924         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
17925         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
17926         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
17927         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
17928         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
17929         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
17930         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
17931         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
17932         iterator.
17933         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
17934         New.
17935         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
17936         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
17937         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
17938
17939 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
17940
17941         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
17942         to access removed nodes.
17943
17944 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
17945
17946         PR tree-optimization/63186
17947         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
17948         (mark_nonssa_use): Likewise.
17949         (verify_non_ssa_vars): Verify all header blocks for label
17950         definitions.
17951
17952 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17953             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17954             Anna Tikhonova  <anna.tikhonova@intel.com>
17955             Ilya Tocar  <ilya.tocar@intel.com>
17956             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17957             Ilya Verbin  <ilya.verbin@intel.com>
17958             Kirill Yukhin  <kirill.yukhin@intel.com>
17959             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17960
17961         * config/i386/sse.md
17962         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
17963         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
17964         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
17965         "<avx2_avx512f>_permvar<mode><mask_name>".
17966         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
17967         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
17968         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
17969         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
17970         Ditto.
17971         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
17972         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
17973         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
17974         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
17975
17976 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
17977
17978         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
17979         V2DF, V4SF, DF, and DI modes.
17980         (vsx_fmav2df2): Likewise.
17981         (vsx_float_fix_<mode>2): Likewise.
17982         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
17983
17984 2014-09-10  Xinliang David Li  <davidxl@google.com>
17985
17986         PR target/63209
17987         * config/arm/arm.md (movcond_addsi): Handle case where source
17988         and target operands are the same.
17989
17990 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
17991
17992         * final.c (this_is_asm_operands): Strengthen this variable from
17993         rtx to const rtx_insn *.
17994         * output.h (this_is_asm_operands): Likewise.
17995         * rtl-error.c (location_for_asm): Strengthen param "insn" from
17996         const_rtx to const rtx_insn *.
17997         (diagnostic_for_asm): Likewise.
17998         * rtl-error.h (error_for_asm): Likewise.
17999         (warning_for_asm): Likewise.
18000
18001 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
18002
18003         * genextract.c (print_header): When writing out insn_extract to
18004         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
18005         * recog.h (insn_extract): Strengthen the param from rtx to
18006         rtx_insn *.
18007
18008 2014-09-10  Mike Stump  <mikestump@comcast.net>
18009
18010         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
18011         8.6.1.
18012
18013 2014-09-10  Martin Jambor  <mjambor@suse.cz>
18014
18015         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
18016         (analyze): Do not set analyze flag if expand_thunk returns false;.
18017         (create_wrapper): Likewise.
18018         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
18019
18020 2014-09-10  Martin Jambor  <mjambor@suse.cz>
18021
18022         PR ipa/61654
18023         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
18024         new decl properly.  Analyze the new thunk if it is expanded.
18025
18026 2014-09-10  Andreas Schwab  <schwab@suse.de>
18027
18028         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
18029         [USED_FOR_TARGET]: Define.
18030
18031 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
18032
18033         * config/mips/mips.c (mips_secondary_reload_class): Handle
18034         regno < 0 case.
18035
18036 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
18037
18038         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
18039         assignment.
18040
18041 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
18042
18043         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
18044         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
18045         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
18046         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
18047         flag_delete_null_pointer_checks for them.
18048         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
18049         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
18050         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
18051         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
18052         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
18053         stmt's iterator.
18054         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
18055         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
18056         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
18057         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
18058         * doc/invoke.texi (-fsanitize=nonnull-attribute,
18059         -fsanitize=returns-nonnull-attribute): Document.
18060
18061         * ubsan.h (struct ubsan_mismatch_data): Removed.
18062         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
18063         * ubsan.c (ubsan_source_location): For unknown locations,
18064         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
18065         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
18066         Allow more than one location and arbitrary extra arguments passed
18067         in ... instead of through MISMATCH pointer.
18068         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
18069         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
18070         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
18071         callers.
18072
18073 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18074             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18075             Anna Tikhonova  <anna.tikhonova@intel.com>
18076             Ilya Tocar  <ilya.tocar@intel.com>
18077             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18078             Ilya Verbin  <ilya.verbin@intel.com>
18079             Kirill Yukhin  <kirill.yukhin@intel.com>
18080             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18081
18082         * config/i386/sse.md
18083         (define_mode_iterator VI48F): New.
18084         (define_insn "<avx512>_compress<mode>_mask"): Rename from
18085         "avx512f_compress<mode>_mask" and update mode iterator.
18086         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
18087         "avx512f_compressstore<mode>_mask" and update mode iterator.
18088         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
18089         "avx512f_expand<mode>_maskz" and update mode iterator.
18090         (define_insn "<avx512>_expand<mode>_mask"): Rename from
18091         "avx512f_expand<mode>_mask" and update mode iterator.
18092
18093 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18094             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18095             Anna Tikhonova  <anna.tikhonova@intel.com>
18096             Ilya Tocar  <ilya.tocar@intel.com>
18097             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18098             Ilya Verbin  <ilya.verbin@intel.com>
18099             Kirill Yukhin  <kirill.yukhin@intel.com>
18100             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18101
18102         * config/i386/i386.c
18103         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
18104         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
18105         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
18106         avx512dq_rangepv4sf_mask.
18107         * config/i386/sse.md
18108         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
18109         UNSPEC_RANGE.
18110         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
18111         (define_insn "reduces<mode>"): Ditto.
18112         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
18113         Ditto.
18114         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
18115         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
18116         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
18117
18118 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18119             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18120             Anna Tikhonova  <anna.tikhonova@intel.com>
18121             Ilya Tocar  <ilya.tocar@intel.com>
18122             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18123             Ilya Verbin  <ilya.verbin@intel.com>
18124             Kirill Yukhin  <kirill.yukhin@intel.com>
18125             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18126
18127         * config/i386/i386.c
18128         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
18129         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
18130         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
18131         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
18132         avx512vl_getmantv2df_mask.
18133         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
18134         avx512f_vgetmantv4sf_round.
18135         * config/i386/sse.md
18136         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
18137         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
18138         mode iterator.
18139         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
18140         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
18141         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
18142         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
18143         iterator..
18144         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
18145         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
18146         update mode iterator.
18147         (define_expand
18148         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
18149         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
18150         mode iterator.
18151         (define_insn
18152         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
18153         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
18154         update mode iterator.
18155         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
18156         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
18157         iterator..
18158         (define_insn
18159         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
18160         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
18161         mode iterator..
18162         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
18163         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
18164         update mode iterator.
18165         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
18166         "avx512f_getmant<mode><round_saeonly_name>".
18167
18168 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
18169
18170         PR ipa/63166
18171         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
18172
18173 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18174             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18175             Anna Tikhonova  <anna.tikhonova@intel.com>
18176             Ilya Tocar  <ilya.tocar@intel.com>
18177             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18178             Ilya Verbin  <ilya.verbin@intel.com>
18179             Kirill Yukhin  <kirill.yukhin@intel.com>
18180             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18181
18182         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
18183         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
18184         (define_mode_iterator FMAMODE_AVX512): New.
18185         (define_mode_iterator FMAMODE): Remove conditions.
18186         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
18187         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
18188         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
18189         mode iterator.
18190         (define_mode_iterator FMAMODE_NOVF512): Remove.
18191         (define_insn "*fma_fmadd_<mode>"): Rename from
18192         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
18193         FMAMODE mode iterator.
18194         (define_mode_iterator VF_SF_AVX512VL): New.
18195         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
18196         Use VF_SF_AVX512VL mode iterator.
18197         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
18198         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18199         iterator.
18200         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
18201         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18202         iterator.
18203         (define_insn "*fma_fmsub_<mode>"): Rename from
18204         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
18205         FMAMODE mode iterator.
18206         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
18207         Use VF_SF_AVX512VL mode iterator.
18208         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
18209         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18210         iterator.
18211         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
18212         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18213         iterator.
18214         (define_insn "*fma_fnmadd_<mode>"): Rename from
18215         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
18216         use FMAMODE mode iterator.
18217         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
18218         Use VF_SF_AVX512VL mode iterator.
18219         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
18220         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18221         iterator.
18222         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
18223         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18224         iterator.
18225         (define_insn "*fma_fnmsub_<mode>"): Rename from
18226         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
18227         FMAMODE mode iterator.
18228         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
18229         Use VF_SF_AVX512VL mode iterator.
18230         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
18231         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18232         iterator.
18233         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
18234         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18235         iterator.
18236         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
18237         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
18238         use VF_AVX512VL mode iterator.
18239         (define_insn "*fma_fmaddsub_<mode>"): Rename from
18240         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
18241         remove subst usage.
18242         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
18243         Use VF_SF_AVX512VL mode iterator.
18244         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
18245         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18246         iterator.
18247         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
18248         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18249         iterator.
18250         (define_insn "*fma_fmsubadd_<mode>"): Rename from
18251         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
18252         remove usage of subst.
18253         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
18254         Use VF_SF_AVX512VL mode iterator.
18255         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
18256         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18257         iterator.
18258         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
18259         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18260         iterator.
18261
18262 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
18263
18264         Revert r213751:
18265         * calls.c (precompute_arguments): Check
18266          promoted_for_signed_and_unsigned_p and set the promoted mode.
18267         (promoted_for_signed_and_unsigned_p): New function.
18268         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
18269         and set the promoted mode.
18270         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
18271         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
18272         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
18273
18274 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18275
18276         * opth-gen.awk: Generate mapping from cpp message reasons to the
18277         options that enable them.
18278         * doc/options.texi (CppReason): Document.
18279
18280 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18281
18282         * doc/invoke.texi (Wnormalized=): Update.
18283
18284 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
18285
18286         PR target/63195
18287         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
18288         operands.  Split off the constant operand alternative to ...
18289         (*bool<mode>3_imm): New.
18290
18291 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18292
18293         * rtl.h (single_set_2): Strengthen first param from const_rtx to
18294         const rtx_insn *, and move prototype to above...
18295         (single_set): ...this.  Convert this from a macro to an inline
18296         function, enforcing the requirement that the param is a const
18297         rtx_insn *.
18298         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
18299
18300         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
18301         Strengthen both params from rtx to rtx_insn *.
18302         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
18303         Likewise; introduce locals "producer_set", "consumer_set", using
18304         them in place of "producer" and "consumer" when dealing with SET
18305         rather than insn.
18306         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
18307         when invoking single_set in region guarded by INSN_P.
18308         (avr_out_bitop): Likewise.
18309         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
18310         region guarded by GET_CODE check, using methods to strengthen
18311         local "this_insn" from rtx to rtx_insn *, and for clarity.
18312         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
18313         Strengthen local "insn" from rtx to rtx_insn *.
18314         (define_insn_and_split "xload<mode>_A"): Likewise.
18315         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
18316         "insn".
18317         (find_load): Likewise for return type.
18318         (workaround_speculation): Likewise for both locals named
18319         "load_insn".
18320         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
18321         local "cc0_user".
18322         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
18323         for local "prev".
18324         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
18325         param 2.
18326         * config/h8300/h8300.c (notice_update_cc): Likewise.
18327         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
18328         "insn" and "dep_insn".
18329         (exact_store_load_dependency): Likewise for both params.
18330         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
18331         since this now clashes with inline function.  Instead, delay
18332         calling single_set until the point where its needed, and then
18333         assign the result to "compare_set" and rework the conditional that
18334         follows.
18335         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
18336         local "last" from rtx to rtx_insn *.
18337         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
18338         second param.
18339         (mips_store_data_bypass_p): Likewise for both params.
18340         * config/mips/mips.c (mips_load_store_insns): Likewise for second
18341         param.
18342         (mips_store_data_bypass_p): Likewise for both params.
18343         (mips_orphaned_high_part_p): Likewise for param "insn".
18344         * config/mn10300/mn10300.c (extract_bundle): Likewise.
18345         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
18346         Introduce local rtx "insn2_pat".
18347         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
18348         "ninsn".
18349         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
18350         Introduce local rtx "set", using it in place of "insn" for the
18351         result of single_set.  This appears to fix a bug, since the call
18352         to find_regno_note on a SET does nothing.
18353         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
18354         params from rtx to rtx_insn *.
18355         (set_to_load_agen): Likewise.
18356         * config/s390/s390.c (s390_label_align): Likewise for local
18357         "prev_insn".  Introduce new rtx locals "set" and "src", using
18358         them in place of "prev_insn" for the results of single_set
18359         and SET_SRC respectively.
18360         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
18361         Introduce new rtx local "set" using in place of "jump" for the
18362         result of single_set.  Use SET_SRC (set) rather than plain
18363         XEXP (set, 1).
18364         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
18365         rtx to rtx_insn *.
18366         (noncall_uses_reg): Likewise.
18367         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
18368         guarded by GET_CODE check, using its methods for clarity, and to
18369         enable strengthening local "this_insn" from rtx to rtx_insn *.
18370         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
18371         "insn" from rtx to rtx_insn *.
18372         (define_expand "umulhisi3"): Likewise.
18373         (define_expand "smulsi3_highpart"): Likewise.
18374         (define_expand "umulsi3_highpart"): Likewise.
18375         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
18376         local "after".  Replace GET_CODE check with a dyn_cast,
18377         introducing new local rtx_sequence * "seq", using insn method for
18378         typesafety.
18379
18380         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
18381         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
18382         place of "insn" once we're dealing with patterns rather than the
18383         input insn.
18384         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
18385         (scan_trace): Likewise for local "elt", updating lookups within
18386         sequence to use insn method rather than element method.
18387         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
18388         to rtx_insn *.
18389         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
18390         * ifcvt.c (noce_try_abs): Likewise for local "insn".
18391         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
18392         invoking single_set.
18393         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
18394         "insn" from rtx to rtx_insn *.
18395         (skip_usage_debug_insns): Likewise for return type, adding a
18396         checked cast.
18397         (check_secondary_memory_needed_p): Likewise for local "insn".
18398         (inherit_reload_reg): Likewise.
18399         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
18400         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
18401         checked casts.
18402         (store_data_bypass_p): Likewise for both params.
18403         (if_test_bypass_p): Likewise.
18404         * recog.h (store_data_bypass_p): Likewise for both params.
18405         (if_test_bypass_p): Likewise.
18406         * reload.c (find_equiv_reg): Likewise for local "where".
18407         * reorg.c (delete_jump): Likewise for param "insn".
18408         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
18409         to const rtx_insn *.
18410         * store-motion.c (replace_store_insn): Likewise for param "del".
18411         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
18412         and use its methods for clarity, and to strengthen local "del"
18413         from rtx to rtx_insn *.
18414         (build_store_vectors): Use insn method of "st" when calling
18415         replace_store_insn for typesafety and clarity.
18416
18417 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18418
18419         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
18420         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
18421         on how to make it legal in future.
18422
18423 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18424
18425         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
18426         to rtx_insn *.
18427         (restinsn): Likewise.
18428         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
18429         Likewise for param.
18430         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
18431         Likewise.
18432         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
18433         first param.
18434         (arc_hazard): Likewise for both params.
18435         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
18436         checked casts to rtx_sequence * and uses of the insn method for
18437         type-safety.
18438         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
18439         (arc_adjust_insn_length): Likewise for param "insn".
18440         (struct insn_length_parameters_s): Likewise for first param of
18441         "get_variants" callback field.
18442         (arc_get_insn_variants): Likewise for first param and local
18443         "inner".  Replace a check of GET_CODE with a dyn_cast to
18444         rtx_sequence *, using methods for type-safety and clarity.
18445         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
18446         rtx_sequence * and uses of the insn method for type-safety when
18447         invoking arc_adjust_insn_length.
18448         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
18449         for param.
18450         (arm_address_offset_is_imm): Likewise.
18451         (struct tune_params): Likewise for params 1 and 3 of the
18452         "sched_adjust_cost" callback field.
18453         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
18454         params 1 and 3 ("insn" and "dep").
18455         (xscale_sched_adjust_cost): Likewise.
18456         (fa726te_sched_adjust_cost): Likewise.
18457         (cortexa7_older_only): Likewise for param "insn".
18458         (cortexa7_younger): Likewise.
18459         (arm_attr_length_move_neon): Likewise.
18460         (arm_address_offset_is_imm): Likewise.
18461         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
18462         * config/avr/avr.c (avr_notice_update_cc): Likewise.
18463         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
18464         (workaround_speculation): Likewise for local "last_condjump".
18465         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
18466         (shadow_or_blockage_p): Likewise.
18467         (get_unit_reqs): Likewise.
18468         (get_unit_operand_masks): Likewise.
18469         (c6x_registers_update): Likewise.
18470         (returning_call_p): Likewise.
18471         (can_use_callp): Likewise.
18472         (convert_to_callp): Likewise.
18473         (find_last_same_clock): Likwise for local "t".
18474         (reorg_split_calls): Likewise for local "shadow".
18475         (hwloop_pattern_reg): Likewise for param "insn".
18476         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
18477         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
18478         (frv_extract_membar): Likewise.
18479         (frv_optimize_membar_local): Strengthen param "last_membar" from
18480         rtx * to rtx_insn **.
18481         (frv_optimize_membar_global): Strengthen param "membar" from rtx
18482         to rtx_insn *.
18483         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
18484         to rtx_insn **.
18485         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
18486         both params from rtx to rtx_insn *.
18487         (ia64_ld_address_bypass_p): Likewise.
18488         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
18489         "insn".
18490         (ia64_safe_type): Likewise.
18491         (group_barrier_needed): Likewise.
18492         (safe_group_barrier_needed): Likewise.
18493         (ia64_single_set): Likewise.
18494         (is_load_p): Likewise.
18495         (record_memory_reference): Likewise.
18496         (get_mode_no_for_insn): Likewise.
18497         (important_for_bundling_p): Likewise.
18498         (unknown_for_bundling_p): Likewise.
18499         (ia64_st_address_bypass_p): Likewise for both params.
18500         (ia64_ld_address_bypass_p): Likewise.
18501         (expand_vselect): Introduce new local rtx_insn * "insn", using it
18502         in place of rtx "x" after the emit_insn call.
18503         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
18504         Strengthen param from rtx to rtx_insn *.
18505         (ix86_agi_dependent): Likewise for both params.
18506         (ix86_attr_length_immediate_default): Likewise for param 1.
18507         (ix86_attr_length_address_default): Likewise for param.
18508         (ix86_attr_length_vex_default): Likewise for param 1.
18509         * config/i386/i386.c (ix86_attr_length_immediate_default):
18510         Likewise for param "insn".
18511         (ix86_attr_length_address_default): Likewise.
18512         (ix86_attr_length_vex_default): Likewise.
18513         (ix86_agi_dependent): Likewise for both params.
18514         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
18515         (vselect_insn): Likewise for this variable.
18516         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
18517         for param 1.
18518         (m68k_sched_attr_opy_type): Likewise.
18519         * config/m68k/m68k.c (sched_get_operand): Likewise.
18520         (sched_attr_op_type): Likewise.
18521         (m68k_sched_attr_opx_type): Likewise.
18522         (m68k_sched_attr_opy_type): Likewise.
18523         (sched_get_reg_operand): Likewise.
18524         (sched_get_mem_operand): Likewise.
18525         (m68k_sched_address_bypass_p): Likewise for both params.
18526         (sched_get_indexed_address_scale): Likewise.
18527         (m68k_sched_indexed_address_bypass_p): Likewise.
18528         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
18529         (m68k_sched_indexed_address_bypass_p): Likewise.
18530         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
18531         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
18532         removing another.
18533         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
18534         params from rtx to rtx_insn *.
18535         (mips_fmadd_bypass): Likewise.
18536         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
18537         (mips_linked_madd_p): Likewise.
18538         (mips_macc_chains_last_hilo): Likewise for this variable.
18539         (mips_macc_chains_record): Likewise for param.
18540         (vr4130_last_insn): Likewise for this variable.
18541         (vr4130_swap_insns_p): Likewise for both params.
18542         (mips_ls2_variable_issue): Likewise for param.
18543         (mips_need_noat_wrapper_p): Likewise for param "insn".
18544         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
18545         in place of "x" after the emit_insn.
18546         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
18547         params from rtx to rtx_insn *.
18548         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
18549         (pa_combine_instructions): Introduce local "par" for result of
18550         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
18551         to make_insn_raw.
18552         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
18553         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
18554         (rl78_alloc_physical_registers_op1): Likewise.
18555         (rl78_alloc_physical_registers_op2): Likewise.
18556         (rl78_alloc_physical_registers_ro1): Likewise.
18557         (rl78_alloc_physical_registers_cmp): Likewise.
18558         (rl78_alloc_physical_registers_umul): Likewise.
18559         (rl78_alloc_address_registers_macax): Likewise.
18560         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
18561         * config/s390/predicates.md (execute_operation): Likewise for
18562         local "insn".
18563         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
18564         params.
18565         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
18566         (addr_generation_dependency_p): Likewise for param "insn".
18567         (s390_agen_dep_p): Likewise for both params.
18568         (s390_fpload_toreg): Likewise for param "insn".
18569         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
18570         * config/sh/sh.c (sh_loop_align): Likewise for param and local
18571         "next".
18572         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
18573         * config/sh/sh_treg_combine.cc
18574         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
18575         and local "i".
18576         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
18577         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
18578         "and_insn", "load", "shift".
18579         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
18580         "insn".
18581         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
18582         for XEXP (note, 0) of the REG_CC_SETTER note.
18583         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
18584         rtx_insn *, eliminating a checked cast made redundant by this.
18585         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
18586         to rtx_insn *.
18587         * genattr.c (main): When writing out the prototype to
18588         const_num_delay_slots, strengthen the param from rtx to
18589         rtx_insn *.
18590         * genattrtab.c (write_const_num_delay_slots): Likewise when
18591         writing out the implementation of const_num_delay_slots.
18592         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
18593         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
18594         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
18595         favor of new rtx locals "src" and "set" and new local rtx_insn *
18596         "insn" and "seq".
18597         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
18598         to rtx_insn *.
18599         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
18600         locals "cond", "if_then_else", "set" and new rtx_insn * locals
18601         "insn" and "seq".
18602         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
18603         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
18604         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
18605         the top-level scope, replacing with new more tightly-scoped rtx
18606         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
18607         "new_insn", "copy_of_insn_b", and make local rtx "set" more
18608         tightly-scoped.
18609         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
18610         rtx_insn *.
18611         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
18612         "move_insn".
18613         (ira_setup_alts): Likewise for param "insn".
18614         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
18615         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
18616         and an rtx_insn *.
18617         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
18618         new more-tightly scoped rtx locals "add3_insn", "insn",
18619         "add2_insn" and rtx_insn * "move_insn".
18620         * postreload-gcse.c (eliminate_partially_redundant_load): Add
18621         checked cast on result of gen_move_insn when invoking
18622         extract_insn.
18623         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
18624         rtx_insn *.
18625         (verify_changes): Add a checked cast on "object" when invoking
18626         insn_invalid_p.
18627         (extract_insn_cached): Strengthen param "insn" from rtx to
18628         rtx_insn *.
18629         (extract_constrain_insn_cached): Likewise.
18630         (extract_insn): Likewise.
18631         * recog.h (insn_invalid_p): Likewise for param 1.
18632         (recog_memoized): Likewise for param.
18633         (extract_insn): Likewise.
18634         (extract_constrain_insn_cached): Likewise.
18635         (extract_insn_cached): Likewise.
18636         * reload.c (can_reload_into): Likewise for local "test_insn".
18637         * reload.h (cleanup_subreg_operands): Likewise for param.
18638         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
18639         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
18640         result of emit_insn.  Remove a checked cast made redundant by this
18641         change.
18642         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
18643         rtx to rtx_insn *.
18644         * sel-sched.c (get_reg_class): Likewise.
18645
18646 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
18647             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18648
18649         * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
18650         * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
18651         Define.
18652         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
18653
18654 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18655
18656         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
18657         const rtx_insn *, and from rtx to rtx_insn * for the other
18658         overloaded variant.
18659         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
18660         INSN_LOCATION, since we know INSN_P holds.
18661         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
18662         (insn_file): Likewise.
18663         (insn_scope): Likewise.
18664         (insn_location): Likewise.
18665
18666         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
18667         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
18668         for the result of gen_load_const_gp.
18669         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
18670         param from rtx to rtx_insn *.
18671         * config/rs6000/rs6000.c (output_call): Likewise.
18672         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
18673         introducing a checked cast to rtx_sequence * and use of the insn
18674         method.
18675         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
18676         from rtx to rtx_insn *.
18677         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
18678         (insn_line): Likewise.
18679         (insn_file): Likewise.
18680         (insn_location): Likewise.
18681         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
18682         from rtx to rtx_insn *.
18683         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
18684         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
18685         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
18686         via a checked cast.
18687         * reorg.c (relax_delay_slots): Strengthen locals named "after"
18688         from rtx to rtx_insn *; use methods of "pat" for type-safety.
18689
18690 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18691
18692         * combine.c (try_combine): Eliminate checked cast on result of
18693         gen_rtx_INSN.
18694         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
18695         autogenerated one by strengthening the return type and params 2 and 3
18696         from rtx to rtx_insn *, and by naming the params.
18697         * gengenrtl.c (special_rtx): Add INSN to those that are
18698         special-cased.
18699         * rtl.h (gen_rtx_INSN): New prototype.
18700
18701 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18702
18703         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
18704         than NULL_RTX.
18705         (no_equiv): Likewise.
18706         (update_equiv_regs): Likewise.
18707         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
18708         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
18709         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
18710         clarity.
18711         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
18712         from rtx to rtx_insn_list *.
18713         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
18714         rtx_insn_list * and use methods for clarity and typesafety.
18715         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
18716         "list".
18717         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
18718         redundant check on INSN_P (insns): this cannot hold, as "insns" is
18719         an INSN_LIST, not an insn.
18720         (reverse_equiv_p): Strengthen local "insns" from rtx to
18721         rtx_insn_list * and use methods for clarity and typesafety.
18722         (contains_reloaded_insn_p): Likewise for local "list".
18723
18724 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
18725
18726         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
18727         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
18728         (arm_builtin_vectorized_function): Likewise.
18729         * config/arm/arm_neon_builtins.def: New macro for copysignf.
18730         * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
18731
18732 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
18733
18734         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
18735         * builtins.h (default_target_builtins): Likewise.
18736         * gcse.h (default_target_gcse): Likewise.
18737         * target-globals.h (target_globals): Add a destructor.  Convert
18738         void-pointer fields back to their real type and change from
18739         GTY((atomic)) to GTY((skip)).
18740         (restore_target_globals): Remove casts accordingly.
18741         * target-globals.c (save_target_globals): Use XCNEW rather than
18742         ggc_internal_cleared_alloc to allocate non-GC structures.
18743         Use ggc_cleared_alloc to allocate the target_globals structure
18744         itself.
18745         (target_globals::~target_globals): Define.
18746
18747 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18748
18749         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
18750         mnemonic instead of fldmfdd.
18751         * config/arm/arm.c (vfp_output_fstmd): Rename to...
18752         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
18753         Output vpush when address register is SP.
18754         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
18755         (vfp_output_vstmd): ... This.
18756         * config/arm/vfp.md (push_multi_vfp): Update call to
18757         vfp_output_vstmd.
18758
18759 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18760
18761         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
18762
18763 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18764
18765         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
18766         (*sqrtdf2_vfp): Likewise.
18767         (*cmpsf_vfp): Likewise.
18768         (*cmpsf_trap_vfp): Likewise.
18769         (*cmpdf_vfp): Likewise.
18770         (*cmpdf_trap_vfp): Likewise.
18771
18772 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18773
18774         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
18775         (*truncdfsf2_vfp): Likewise.
18776         (*truncsisf2_vfp): Likewise.
18777         (*truncsidf2_vfp): Likewise.
18778         (fixuns_truncsfsi2): Likewise.
18779         (fixuns_truncdfsi2): Likewise.
18780         (*floatsisf2_vfp): Likewise.
18781         (*floatsidf2_vfp): Likewise.
18782         (floatunssisf2): Likewise.
18783         (floatunssidf2): Likewise.
18784
18785 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18786
18787         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
18788         (*muldf3_vfp): Likewise.
18789         (*mulsf3negsf_vfp): Likewise.
18790         (*muldf3negdf_vfp): Likewise.
18791         (*mulsf3addsf_vfp): Likewise.
18792         (*muldf3adddf_vfp): Likewise.
18793         (*mulsf3subsf_vfp): Likewise.
18794         (*muldf3subdf_vfp): Likewise.
18795         (*mulsf3negsfaddsf_vfp): Likewise.
18796         (*fmuldf3negdfadddf_vfp): Likewise.
18797         (*mulsf3negsfsubsf_vfp): Likewise.
18798         (*muldf3negdfsubdf_vfp): Likewise.
18799
18800 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18801
18802         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
18803         (*absdf2_vfp): Likewise.
18804         (*negsf2_vfp): Likewise.
18805         (*negdf2_vfp): Likewise.
18806         (*addsf3_vfp): Likewise.
18807         (*adddf3_vfp): Likewise.
18808         (*subsf3_vfp): Likewise.
18809         (*subdf3_vfp): Likewise.
18810         (*divsf3_vfp): Likewise.
18811         (*divdf3_vfp): Likewise.
18812
18813 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18814
18815         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
18816         multiple.
18817         (arm_print_operand): Don't convert real values to decimal
18818         representation in default case.
18819         (fp_immediate_constant): Delete.
18820         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
18821         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
18822         syntax.
18823         (*thumb2_movsi_vfp): Likewise.
18824         (*movdi_vfp): Likewise.
18825         (*movdi_vfp_cortexa8): Likewise.
18826         (*movhf_vfp_neon): Likewise.
18827         (*movhf_vfp): Likewise.
18828         (*movsf_vfp): Likewise.
18829         (*thumb2_movsf_vfp): Likewise.
18830         (*movdf_vfp): Likewise.
18831         (*thumb2_movdf_vfp): Likewise.
18832         (*movsfcc_vfp): Likewise.
18833         (*thumb2_movsfcc_vfp): Likewise.
18834         (*movdfcc_vfp): Likewise.
18835         (*thumb2_movdfcc_vfp): Likewise.
18836
18837 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
18838
18839         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
18840         (-mtune): Likewise.
18841         (-mcpu): Likewise.
18842
18843 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18844
18845         PR target/61749
18846         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
18847         Use qualifier_immediate for last operand.  Rename to...
18848         (aarch64_types_ternop_lane_qualifiers): ... This.
18849         (TYPES_QUADOP): Rename to...
18850         (TYPES_TERNOP_LANE): ... This.
18851         (aarch64_simd_expand_args): Return const0_rtx when encountering user
18852         error.  Change return of 0 to return of NULL_RTX.
18853         (aarch64_crc32_expand_builtin): Likewise.
18854         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
18855         ICE when expanding unknown builtin.
18856         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
18857         TERNOP_LANE qualifiers.
18858         (sqdmlsl_lane): Likewise.
18859         (sqdmlal_laneq): Likewise.
18860         (sqdmlsl_laneq): Likewise.
18861         (sqdmlal2_lane): Likewise.
18862         (sqdmlsl2_lane): Likewise.
18863         (sqdmlal2_laneq): Likewise.
18864         (sqdmlsl2_laneq): Likewise.
18865
18866 2014-09-09  Nick Clifton  <nickc@redhat.com>
18867
18868         * doc/invoke.texi (Optimization Options): Add missing @gol to the
18869         end of a line.
18870         (S/390 and zSeries Options): Remove superfluous word from the
18871         description of the -mhotpatch option.
18872
18873 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
18874
18875         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
18876         * ira.c: #include "shrink-wrap.h"
18877         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
18878         * ifcvt.c: #include "shrink-wrap.h"
18879         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
18880
18881 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
18882
18883         * common/config/picochip/picochip-common.c: Remove.
18884         * config.gcc: Remove support for picochip.
18885         * config/picochip/constraints.md: Remove.
18886         * config/picochip/dfa_space.md: Remove.
18887         * config/picochip/dfa_speed.md: Remove.
18888         * config/picochip/picochip-protos.h: Remove.
18889         * config/picochip/picochip.c: Remove.
18890         * config/picochip/picochip.h: Remove.
18891         * config/picochip/picochip.md: Remove.
18892         * config/picochip/picochip.opt: Remove.
18893         * config/picochip/predicates.md: Remove.
18894         * config/picochip/t-picochip: Remove.
18895         * doc/md.texi: Don't document picochi.
18896
18897 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
18898
18899         * basic-block.h (control_flow_insn_p): Strengthen param from
18900         const_rtx to const rtx_insn *.
18901         * cfgbuild.c (control_flow_insn_p): Likewise.
18902
18903 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
18904
18905         * gcse.c (modify_mem_list): Strengthen this variable from
18906         vec<rtx> * to vec<rtx_insn *> *.
18907         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
18908         vec<rtx_insn *>.
18909         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
18910         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
18911         (record_last_mem_set_info): Strengthen param "insn" from rtx to
18912         rtx_insn *.
18913         (record_last_set_info): Likewise for local "last_set_insn".
18914
18915 2014-09-08  DJ Delorie  <dj@redhat.com>
18916
18917         * doc/invoke.texi (MSP430 Options): Add -minrt.
18918
18919 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18920
18921         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
18922         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
18923         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
18924         handling SH_SPLAT.
18925         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
18926         of extracted lane.
18927         (adjust_splat): New function.
18928         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
18929         (dump_swap_insn_table): Add case for SH_SPLAT.
18930
18931 2014-09-08  Richard Biener  <rguenther@suse.de>
18932
18933         PR ipa/63196
18934         * tree-inline.c (copy_loops): The source loop header should
18935         always be non-NULL.
18936         (tree_function_versioning): If loops need fixup after removing
18937         unreachable blocks fix them.
18938         * omp-low.c (simd_clone_adjust): Do not add incr block to
18939         loop under construction.
18940
18941 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
18942
18943         * config/aarch64/aarch64-builtins.c
18944         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
18945
18946 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
18947
18948         * config/i386/cygming.h (TF_SIZE): Remove.
18949         * config/i386/darwin.h (TF_SIZE): Remove.
18950         * config/i386/dragonfly.h (TF_SIZE): Remove.
18951         * config/i386/freebsd.h (TF_SIZE): Remove.
18952         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
18953         * config/i386/openbsdelf.h (TF_SIZE): Remove.
18954         * config/i386/sol2.h (TF_SIZE): Remove.
18955         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
18956         * config/ia64/linux.h (TF_SIZE): Remove.
18957         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
18958         * doc/tm.texi: Regenerate.
18959         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
18960
18961 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
18962
18963         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
18964         Remove.
18965         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
18966         Remove.
18967         * doc/tm.texi: Regenerate.
18968         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
18969         Poison.
18970         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
18971         * config/cris/cris.h (__make_dp): Remove.
18972
18973 2014-09-08  Richard Biener  <rguenther@suse.de>
18974
18975         PR bootstrap/63204
18976         * cfgloop.c (mark_loop_for_removal): Track former header
18977         unconditionally.
18978         * cfgloop.h (struct loop): Add former_header member unconditionally.
18979         * loop-init.c (fix_loop_structure): Enable bogus loop removal
18980         diagnostic unconditionally.
18981
18982 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
18983
18984         PR target/63190
18985         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
18986         constraint for operand0 and remove write only modifier from operand3.
18987
18988 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
18989
18990         PR rtl-optimization/62208
18991         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
18992         rather than const0_rtx in eq/ne-xor simplifications.
18993
18994 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
18995
18996         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
18997         (arc_output_mi_thunk): Likewise.
18998
18999         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
19000         arguments to silence bogus warning.
19001
19002 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
19003
19004         PR middle-end/63171
19005         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
19006
19007 2014-09-06  Tom de Vries  <tom@codesourcery.com>
19008
19009         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
19010         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
19011         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
19012
19013 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
19014
19015         PR target/63188
19016         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
19017         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
19018
19019 2014-09-05  Easwaran Raman  <eraman@google.com>
19020
19021         PR rtl-optimization/62146
19022         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
19023         hoisted instruction unconditional.
19024
19025 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
19026
19027         PR target/63187
19028         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
19029         Do not allow any_mask_operand for operands[2].
19030         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
19031
19032 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19033
19034         * config/arc/arc.c (arc_print_operand): Use insn method of
19035         final_sequence for type-safety.
19036         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
19037         "insn" from rtx to rtx_insn *.
19038         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
19039         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
19040         Likewise for locals "branch", "label".
19041         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
19042         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
19043         (same_cmp_following_p): Likewise for locals "i2", "i3".
19044         * config/sh/sh_optimize_sett_clrt.cc
19045         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
19046         param "cbranch_insn".
19047         * function.c (convert_jumps_to_returns): Likewis for local "jump".
19048         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
19049         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
19050         const rtx_insn *.
19051         (condjump_p): Likewise.
19052         (condjump_in_parallel_p): Likewise.
19053         (pc_set): Likewise.
19054         (any_uncondjump_p): Likewise.
19055         (any_condjump_p): Likewise.
19056         (condjump_label): Likewise.
19057         (returnjump_p): Strengthen param "insn" from rtx to
19058         const rtx_insn *.
19059         (onlyjump_p): Strengthen param "insn" from const_rtx to
19060         const rtx_insn *.
19061         (jump_to_label_p): Likewise.
19062         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
19063         (invert_jump): Likewise.
19064         * reorg.c (simplejump_or_return_p): Add checked cast when calling
19065         simplejump_p.
19066         (get_jump_flags): Strengthen param "insn" from rtx to
19067         const rtx_insn *.
19068         (get_branch_condition): Likewise.
19069         (condition_dominates_p): Likewise.
19070         (make_return_insns): Move declaration of local "pat" earlier, to
19071         after we've handled NONJUMP_INSN_P and non-sequences, using its
19072         methods to simplify the code and for type-safety.
19073         * rtl.h (find_constant_src): Strengthen param from const_rtx to
19074         const rtx_insn *.
19075         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
19076         (condjump_p): Strengthen param from const_rtx to
19077         const rtx_insn *.
19078         (any_condjump_p): Likewise.
19079         (any_uncondjump_p): Likewise.
19080         (pc_set): Likewise.
19081         (condjump_label): Likewise.
19082         (simplejump_p): Likewise.
19083         (returnjump_p): Likewise.
19084         (onlyjump_p): Likewise.
19085         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
19086         (invert_jump): Likewise.
19087         (condjump_in_parallel_p): Strengthen param from const_rtx to
19088         const rtx_insn *.
19089         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
19090         to const rtx_insn *.
19091         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
19092         to const rtx_insn *.
19093         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
19094
19095 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19096
19097         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
19098         above the conditional, and convert the check on GET_CODE to a
19099         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
19100         the conditional.  Simplify the conditional by using methods of
19101         "trial_seq".
19102
19103 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19104
19105         * haifa-sched.c (check_clobbered_conditions): Strengthen local
19106         "link" from rtx to rtx_insn_list *, and use its methods for
19107         clarity and type-safety.
19108         (toggle_cancelled_flags): Likewise.
19109         (restore_last_backtrack_point): Likewise.
19110         (queue_to_ready): Use insn method of "link" in one place.
19111         (schedule_block): Strengthen local "link" from rtx to
19112         rtx_insn_list *, and use its methods for clarity and type-safety.
19113
19114 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19115
19116         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
19117         param "insn" from const_rtx to const rtx_insn *.
19118         (sched_get_reverse_condition_uncached): Likewise.
19119         (sched_get_condition_with_rev): Likewise.
19120         (sched_has_condition_p): Likewise.
19121         (sched_insns_conditions_mutex_p): Likewise for both params.
19122         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
19123         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
19124         (setup_insn_reg_uses): Move local "list" to be more tightly
19125         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
19126         its methods for clarity and type-safety.
19127         (sched_analyze_1): Strengthen local "pending" from rtx to
19128         rtx_insn_list *, and local "pending_mem" from rtx to
19129         rtx_expr_list *.  Use methods of each for clarity and type-safety.
19130         (sched_analyze_2): Likewise.
19131         (sched_analyze_insn): Likewise.
19132
19133         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
19134         param from const_rtx to const rtx_insn *.
19135         (sched_insns_conditions_mutex_p): Likewise for both params.
19136         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
19137         param.
19138
19139         * system.h (CONST_CAST_RTX_INSN): New macro.
19140
19141 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19142
19143         * recog.c (peep2_attempt): Strengthen return type from rtx to
19144         rtx_insn *.
19145         (peep2_update_life): Likewise for params "last", "prev", removing
19146         a checked cast made redundant by this.
19147         (peephole2_optimize): Likewise for local "last".
19148
19149 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19150
19151         * basic-block.h (set_block_for_insn): Eliminate this macro in
19152         favor of...
19153         * rtl.h (set_block_for_insn): New inline function, imposing the
19154         requirement that the "insn" param is an rtx_insn *.
19155
19156 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19157
19158         * caller-save.c (setup_save_areas): Strengthen local "insn" from
19159         rtx to rtx_insn *.
19160         * final.c (get_call_reg_set_usage): Likewise for first param,
19161         eliminating a checked cast.
19162         * regs.h (get_call_reg_set_usage): Likewise for first param.
19163         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
19164         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
19165         cast, replacing references to "x" with "call_insn" where
19166         appropriate.
19167         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
19168         rtx_insn *, adding a checked cast.
19169
19170 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19171
19172         * output.h (final_scan_insn): Strengthen first param from rtx to
19173         rtx_insn *.
19174
19175         * final.c (final_scan_insn): Likewise, renaming it back from
19176         "uncast_insn" to "insn", eliminating the checked cast.
19177
19178         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
19179         "vec" with an rtx_sequence * "seq", taking a copy of
19180         "final_sequence", and using methods of "seq" for clarity, and for
19181         type-safety in the calls to final_scan_insn.
19182         * config/mips/mips.c (mips_output_conditional_branch): Use methods
19183         of "final_sequence" for clarity, and for type-safety in the call to
19184         final_scan_insn.
19185         * config/sh/sh.c (print_slot): Strengthen param from rtx to
19186         rtx_sequence * and rename from "insn" to "seq".
19187
19188 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19189
19190         * jump.c (delete_related_insns): Introduce a new local "table" by
19191         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
19192         get_labels method of "table" to simplify access to the labels in
19193         the jump table.
19194
19195 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19196
19197         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
19198         f_minmaxs, f_minmaxd types.
19199
19200 2014-09-05  Richard Biener  <rguenther@suse.de>
19201
19202         * cfgloop.c (mark_loop_for_removal): Record former header
19203         when ENABLE_CHECKING.
19204         * cfgloop.h (strut loop): Add former_header member when
19205         ENABLE_CHECKING.
19206         * loop-init.c (fix_loop_structure): Sanity check loops
19207         marked for removal if they re-appeared.
19208
19209 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19210
19211         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
19212         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
19213
19214         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
19215         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
19216         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
19217         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
19218         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
19219         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
19220         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
19221         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
19222         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
19223         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
19224         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
19225         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
19226         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
19227         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
19228         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
19229         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
19230         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
19231         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
19232         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
19233         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
19234         with int{32,16,8}_t.
19235
19236 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19237
19238         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
19239         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
19240         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
19241         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
19242         Remove temporary __asm__ and reimplement.
19243
19244 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19245
19246         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
19247         handling cmge, cmgt, cmeq, cmtst.
19248
19249         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
19250         cmlt, cmgeu, cmgtu, cmtst): Remove.
19251
19252         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
19253         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
19254         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
19255         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
19256
19257 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19258
19259         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
19260         TYPES_TST): Define.
19261         (aarch64_fold_builtin): Update pattern for cmtst.
19262
19263         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
19264         Declare.
19265
19266         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
19267
19268         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
19269         Switch operands, separate out more cases, refactor.
19270
19271         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
19272
19273         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
19274         argument; rename old version to...
19275         (aarch64_const_vec_all_same_in_range_p): ...this.
19276         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
19277
19278         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
19279
19280 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19281
19282         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
19283         Remove qualifier_const_pointer, update comment.
19284
19285 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19286
19287         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
19288
19289 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19290
19291         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
19292         varargs with pointer parameter.
19293         (aarch64_simd_expand_builtin): pass pointer into previous.
19294
19295 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19296
19297         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
19298         alus_ext.
19299
19300 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19301
19302         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
19303         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
19304         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
19305         Replace temporary asm with call to builtin.
19306         (vrbit_p8, vrbitq_p8): New functions.
19307
19308 2014-09-05  Richard Biener  <rguenther@suse.de>
19309
19310         * cfgloop.c (mark_loop_for_removal): New function.
19311         * cfgloop.h (mark_loop_for_removal): Declare.
19312         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
19313         (merge_blocks): Likewise.
19314         (duplicate_block): Likewise.
19315         * except.c (sjlj_emit_dispatch_table): Likewise.
19316         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
19317         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
19318         (thread_through_loop_header): Likewise.
19319
19320 2014-09-05  Richard Biener  <rguenther@suse.de>
19321
19322         PR middle-end/63148
19323         * fold-const.c (try_move_mult_to_index): Remove.
19324         (fold_binary_loc): Do not call it.
19325         * tree-data-ref.c (dr_analyze_indices): Strip conversions
19326         from the base object again.
19327
19328 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
19329
19330         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
19331         DImode.
19332
19333 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19334
19335         PR target/55701
19336         * config/arm/arm.md (setmem): New pattern.
19337         * config/arm/arm-protos.h (struct tune_params): New fields.
19338         (arm_gen_setmem): New prototype.
19339         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
19340         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
19341         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
19342         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
19343         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
19344         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
19345         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
19346         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
19347         (arm_const_inline_cost): New function.
19348         (arm_block_set_max_insns): New function.
19349         (arm_block_set_non_vect_profit_p): New function.
19350         (arm_block_set_vect_profit_p): New function.
19351         (arm_block_set_unaligned_vect): New function.
19352         (arm_block_set_aligned_vect): New function.
19353         (arm_block_set_unaligned_non_vect): New function.
19354         (arm_block_set_aligned_non_vect): New function.
19355         (arm_block_set_vect, arm_gen_setmem): New functions.
19356
19357 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19358
19359         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
19360
19361 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19362
19363         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
19364
19365 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19366
19367         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
19368         an rtx.
19369         * valtrack.h: Adjust.
19370
19371 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19372
19373         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
19374         an rtx.
19375         (emit_jump_insn_before_noloc): Likewise.
19376         (emit_call_insn_before_noloc): Likewise.
19377         (emit_label_before): Likewise.
19378         (emit_label_after): Likewise.
19379         (emit_insn_before_setloc): Likewise.
19380         (emit_jump_insn_before_setloc): Likewise.
19381         (emit_call_insn_before_setloc): Likewise.
19382         (emit_call_insn_before): Likewise.
19383         * rtl.h: Adjust.
19384
19385 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19386
19387         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
19388         rtx_insn *, eliminating a checked cast.
19389
19390 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19391
19392         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
19393         const_rtx to const rtx_insn *.
19394         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
19395         cast.
19396
19397 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19398
19399         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
19400         fixup_args_size_notes.
19401         * expr.c (fixup_args_size_notes): Strengthen first two params from
19402         rtx to rtx_insn *, eliminating a checked cast.
19403         * rtl.h (fixup_args_size_notes): Strengthen first two params from
19404         rtx to rtx_insn *.
19405
19406 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19407
19408         * haifa-sched.c (get_ready_element): Strengthen return type from
19409         rtx to rtx_insn *.
19410         * sched-int.h (get_ready_element): Likewise.
19411
19412 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
19413
19414         PR target/63165
19415         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
19416         indexed_or_indirect_operand instead of memory_operand.
19417         (floatsi<mode>2_lfiwzx_mem): Ditto.
19418
19419 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19420
19421         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
19422         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
19423         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
19424
19425 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19426
19427         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
19428         rtx.
19429         (get_last_nonnote_insn): Likewise.
19430         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
19431         * resource.c (find_basic_block): Likewise.
19432         * rtl.h: Adjust.
19433         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
19434         const_rtx.
19435
19436 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
19437
19438         * genattr.c (main): Within the prototype of insn_latency written
19439         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
19440         * genautomata.c (output_internal_maximal_insn_latency_func):
19441         Within the implementation of insn_latency written out to
19442         insn-automata.c, strengthen both params from rtx to rtx_insn *,
19443         eliminating a pair of checked casts.
19444
19445 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
19446
19447         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
19448         rtx_insn *.
19449
19450         * rtl.h (eh_returnjump_p): Likewise.
19451
19452 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
19453
19454         * Makefile.in (TAGS): Handle constructs in timevar.def.
19455
19456 2014-09-04  Guozhi Wei  <carrot@google.com>
19457
19458         PR target/62040
19459         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
19460         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
19461         it into two patterns.
19462         (move_lo_quad_internal_be_<mode>): Likewise.
19463
19464 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19465
19466         * doc/options.texi: Document that Var and Init are required if CPP
19467         is given.
19468         * optc-gen.awk: Require Var and Init if CPP is given.
19469         * common.opt (Wpedantic): Use Init.
19470
19471 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19472
19473         * config/rs6000/rs6000.c (special_handling_values): Add
19474         SH_EXTRACT.
19475         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
19476         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
19477         as swappable with special handling SH_EXTRACT.  Remove
19478         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
19479         optimization.
19480         (adjust_extract): New function.
19481         (handle_special_swappables): Add default to case statement; add
19482         case for SH_EXTRACT that calls adjust_extract.
19483         (dump_swap_insn_table): Handle SH_EXTRACT.
19484
19485 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19486
19487         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
19488         selection of 0th memory doubleword, regardless of endianness.
19489
19490 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
19491
19492         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
19493
19494 2014-09-04  Alan Modra  <amodra@gmail.com>
19495
19496         PR debug/60655
19497         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
19498         can't be output.
19499
19500 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
19501
19502         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
19503         * targhooks.c (default_dwarf_frame_reg_mode): New function.
19504         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
19505         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
19506         * doc/tm.texi: Regenerate.
19507         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
19508         selection logic to default_dwarf_frame_reg_mode.
19509
19510 2014-09-03  Marek Polacek  <polacek@redhat.com>
19511
19512         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
19513         by -Wall.
19514
19515 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
19516
19517         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
19518         the automodified register.
19519
19520 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
19521
19522         * output.h (get_some_local_dynamic_name): Declare.
19523         * final.c (some_local_dynamic_name): New variable.
19524         (get_some_local_dynamic_name): New function.
19525         (final_end_function): Clear some_local_dynamic_name.
19526         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
19527         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19528         (print_operand): Report an error if '%&' is used inappropriately.
19529         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
19530         (get_some_local_dynamic_name_1): Delete.
19531         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
19532         (rs6000_get_some_local_dynamic_name): Delete.
19533         (rs6000_get_some_local_dynamic_name_1): Delete.
19534         (print_operand): Report an error if '%&' is used inappropriately.
19535         * config/s390/s390.c (machine_function): Remove some_ld_name.
19536         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19537         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
19538         * config/sparc/sparc.c: Include rtl-iter.h.
19539         (machine_function): Remove some_ld_name.
19540         (sparc_print_operand): Report an error if '%&' is used inappropriately.
19541         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19542
19543 2014-09-03  Richard Henderson  <rth@redhat.com>
19544
19545         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
19546         (aarch64_popwb_pair_reg): Remove.
19547         (aarch64_set_frame_expr): Remove.
19548         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
19549         the restore ops performed by the insns generated.
19550         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
19551         insn.  Perform the calls_eh_return addition later; do not attempt to
19552         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
19553         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
19554         special markup at all.  Load cfun->machine->frame.hard_fp_offset
19555         into a local variable.
19556         (aarch64_frame_pointer_required): Don't check calls_alloca.
19557
19558 2014-09-03  Richard Biener  <rguenther@suse.de>
19559
19560         * opts.c (default_options_optimization): Adjust
19561         max-combine-insns to 2 for -Og.
19562
19563 2014-09-03  Martin Jambor  <mjambor@suse.cz>
19564
19565         PR ipa/62015
19566         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
19567         pass-trough jump functions correctly.
19568
19569 2014-09-03  Martin Jambor  <mjambor@suse.cz>
19570
19571         PR ipa/61986
19572         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
19573         created replacements in ascending order of offsets.
19574         (known_aggs_to_agg_replacement_list): Likewise.
19575
19576 2014-09-03  Martin Liska  <mliska@suse.cz>
19577
19578         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
19579         is set to set uninitialized value for vnresult.
19580
19581 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19582
19583         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
19584         for TARGET_MUST_PASS_IN_STACK.
19585
19586 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19587
19588         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
19589         for TARGET_ARG_PARTIAL_BYTES.
19590
19591 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19592
19593         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
19594         instructions for varargs implementation.
19595         (nds32_expand_epilogue): Emit stack adjustment instructions for
19596         varargs implementation.
19597
19598 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19599
19600         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
19601         optimization detection.
19602
19603 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19604
19605         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
19606         arguments.
19607         (nds32_function_arg_advance): Deal with nameless arguments.
19608         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
19609         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
19610         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
19611
19612 2014-09-03  Richard Biener  <rguenther@suse.de>
19613
19614         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
19615         (struct bb_bitmap_sets): Remove deferred member.
19616         (BB_DEFERRED): Remove.
19617         (defer_or_phi_translate_block): Remove.
19618         (compute_antic_aux): Remove deferring of blocks, assert
19619         proper iteration order.
19620         (compute_antic): Do not set BB_DEFERRED.
19621         (eliminate): Allocate el_avail of proper size initially.
19622
19623 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19624
19625         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
19626         according to the value of crtl->args.pretend_args_size.
19627
19628 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19629
19630         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
19631         varargs information.
19632
19633 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19634
19635         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
19636         implementation for TARGET_SETUP_INCOMING_VARARGS.
19637         (nds32_strict_argument_naming): Refine comment.
19638         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
19639         Define for future implementation.
19640
19641 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
19642
19643         * config/i386/adxintrin.h (_subborrow_u32): New.
19644         (_addcarry_u32): Ditto.
19645         (_subborrow_u64): Ditto.
19646         (_addcarry_u64): Ditto.
19647         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
19648         IX86_BUILTIN_SBB64.
19649         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
19650         __builtin_ia32_sbb_u64
19651
19652 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19653
19654         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
19655         GPR-specific stuff.
19656         (nds32_function_arg_advance): Likewise.
19657         (nds32_init_cumulative_args): Likewise.
19658         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
19659         (NDS32_FIRST_GPR_REGNUM): Define.
19660         (NDS32_LAST_GPR_REGNUM): Define.
19661         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
19662         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
19663         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
19664         (machine_function): Use GRP-specific stuff.
19665
19666 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19667
19668         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
19669         (nds32_expand_epilogue): Likewise.
19670         (nds32_expand_prologue_v3push): Likewise.
19671         (nds32_expand_epilogue_v3pop): Likewise.
19672
19673 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19674
19675         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
19676         v3push/v3pop for variadic function.
19677         * config/nds32/nds32.md (prologue, epilogue): Likewise.
19678
19679 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19680
19681         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
19682         Check rtx for varargs implementation.
19683         (nds32_output_stack_pop): Likewise.
19684         * config/nds32/nds32-protos.h: Have a rtx argument for
19685         nds32_output_stack_push and nds32_output_stack_pop.
19686         * config/nds32/nds32.md: Likewise.
19687
19688 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19689
19690         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
19691         to check if FUNC is an interrupt service routine.
19692         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
19693
19694 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19695
19696         * config/nds32/nds32.h (machine_function): Add some fields for variadic
19697         arguments implementation.
19698
19699 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19700
19701         * config/nds32/nds32-predicates.c
19702         (nds32_valid_stack_push_pop): Rename to ...
19703         (nds32_valid_stack_push_pop_p): ... this.
19704         * config/nds32/nds32-protos.h: Likewise.
19705         * config/nds32/predicates.md: Likewise.
19706
19707 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19708
19709         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
19710         (nds32_emit_stack_v3push): ... this.
19711         (nds32_gen_stack_v3pop): Rename to ...
19712         (nds32_emit_stack_v3pop): ... this and consider CFA restore
19713         information.
19714
19715 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19716
19717         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
19718         (nds32_emit_stack_push_multiple): ... this.
19719         (nds32_gen_stack_pop_multiple): Rename to ...
19720         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
19721         information.
19722
19723 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19724
19725         PR target/61078
19726         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
19727         and add a second splitter to handle the remaining cases.
19728
19729 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19730
19731         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
19732
19733 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
19734
19735         * cfgexpand.c (label_rtx_for_bb): Change type to
19736         hash_map<basic_block, rtx_code_label *> *.
19737         (expand_gimple_basic_block): Adjust.
19738         (pass_expand::execute): Likewise.
19739
19740 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
19741
19742         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
19743         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
19744         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
19745         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
19746         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
19747         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
19748         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
19749         of rtx.
19750
19751 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
19752
19753         * alloc-pool.c: Include coretypes.h.
19754         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
19755         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
19756         hash_set instead of htab.
19757         * ggc-page.c (in_gc): New variable.
19758         (ggc_free): Do nothing if a collection is taking place.
19759         (ggc_collect): Set in_gc appropriately.
19760         * ggc.h (gt_ggc_mx(const char *)): New function.
19761         (gt_pch_nx(const char *)): Likewise.
19762         (gt_ggc_mx(int)): Likewise.
19763         (gt_pch_nx(int)): Likewise.
19764         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
19765         (hash_map::hash_entry::pch_nx): Likewise.
19766         (hash_map::hash_entry::pch_nx_helper): Likewise.
19767 (hash_map::hash_map): Adjust.
19768 (hash_map::create_ggc): New function.
19769 (gt_ggc_mx): Likewise.
19770 (gt_pch_nx): Likewise.
19771         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
19772 (default_hashset_traits::pch_nx): Likewise.
19773 (hash_set::hash_entry::ggc_mx): Likewise.
19774 (hash_set::hash_entry::pch_nx): Likewise.
19775 (hash_set::hash_entry::pch_nx_helper): Likewise.
19776 (hash_set::hash_set): Adjust.
19777 (hash_set::create_ggc): New function.
19778 (hash_set::elements): Likewise.
19779 (gt_ggc_mx): Likewise.
19780 (gt_pch_nx): Likewise.
19781         * hash-table.h (hash_table::hash_table): Adjust.
19782 (hash_table::m_ggc): New member.
19783         (hash_table::~hash_table): Adjust.
19784         (hash_table::expand): Likewise.
19785         (hash_table::empty): Likewise.
19786 (gt_ggc_mx): New function.
19787         (hashtab_entry_note_pointers): Likewise.
19788 (gt_pch_nx): Likewise.
19789
19790 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19791
19792         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
19793         built-in definition.
19794         (XVCVUXDDP_SCALE): Likewise.
19795         (XVCVDPSXDS_SCALE): Likewise.
19796         (XVCVDPUXDS_SCALE): Likewise.
19797         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
19798         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
19799         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
19800         VSX_BUILTIN_XVCVDPUXDS_SCALE.
19801         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
19802         prototype.
19803         * config/rs6000/rs6000.c (real.h): New include.
19804         (rs6000_scale_v2df): New function.
19805         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
19806         (UNSPEC_VSX_XVCVUXDDP): Likewise.
19807         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
19808         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
19809         (vsx_xvcvsxddp_scale): New define_expand.
19810         (vsx_xvcvsxddp): New define_insn.
19811         (vsx_xvcvuxddp_scale): New define_expand.
19812         (vsx_xvcvuxddp): New define_insn.
19813         (vsx_xvcvdpsxds_scale): New define_expand.
19814         (vsx_xvcvdpsxds): New define_insn.
19815         (vsx_xvcvdpuxds_scale): New define_expand.
19816         (vsx_xvcvdpuxds): New define_insn.
19817         * doc/extend.texi (vec_ctf): Add new prototypes.
19818         (vec_cts): Likewise.
19819         (vec_ctu): Likewise.
19820         (vec_splat): Likewise.
19821         (vec_div): Likewise.
19822         (vec_mul): Likewise.
19823
19824 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19825
19826         PR target/62275
19827         * config/arm/neon.md
19828         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
19829         <v_cmp_result>): New pattern.
19830         * config/arm/iterators.md (NEON_VCVT): New int iterator.
19831         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
19832         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
19833         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
19834         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
19835         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
19836
19837 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19838
19839         PR target/62275
19840         * config/arm/iterators.md (FIXUORS): New code iterator.
19841         (VCVT): New int iterator.
19842         (su_optab): New code attribute.
19843         (su): Likewise.
19844         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
19845
19846 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19847
19848         * config/aarch64/predicates.md (aarch64_comparison_operation):
19849         New special predicate.
19850         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
19851         aarch64_comparison_operation instead of matching an operator.
19852         Update operand numbers.
19853         (csinc3<mode>_insn): Likewise.
19854         (*csinv3<mode>_insn): Likewise.
19855         (*csneg3<mode>_insn): Likewise.
19856         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
19857         * config/aarch64/aarch64.c (aarch64_get_condition_code):
19858         Return -1 instead of aborting on invalid condition codes.
19859         (aarch64_print_operand): Update aarch64_get_condition_code callsites
19860         to assert that the returned condition code is valid.
19861         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
19862
19863 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
19864
19865         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
19866         tree.def, and gimple.def
19867
19868 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
19869             Balaji V. Iyer  <balaji.v.iyer@intel.com>
19870             Igor Zamyatin  <igor.zamyatin@intel.com>
19871
19872         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
19873         (__cilkrts_cilk_for_64): Likewise.
19874         * cilk-common.c (declare_cilk_for_builtin): New function.
19875         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
19876         __cilkrts_cilk_for_64 bultins.
19877         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
19878         CILK_TI_F_LOOP_64.
19879         (cilk_for_32_fndecl): New define.
19880         (cilk_for_64_fndecl): Likewise.
19881         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
19882         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
19883         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
19884         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
19885         GF_OMP_FOR_COMBINED_INTO.
19886         * gimplify.c (gimplify_scan_omp_clauses): Added
19887         OMP_CLAUSE__CILK_FOR_COUNT_ case.
19888         (gimplify_adjust_omp_clauses): Ditto.
19889         (gimplify_omp_for): Added CILK_FOR case.
19890         (gimplify_expr): Ditto.
19891         * omp-low.c: Include cilk.h.
19892         (extract_omp_for_data): Set appropriate kind for
19893         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
19894         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
19895         (create_omp_child_function_name): Added second argument to handle
19896         cilk_for case.
19897         (cilk_for_check_loop_diff_type): New function.
19898         (expand_cilk_for_call): Likewise.
19899         (expand_cilk_for): Likewise.
19900         (create_omp_child_function): Set cilk_for_count; handle the cases when
19901         it is true; call create_omp_child_function_name with second argument.
19902         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
19903         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
19904         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
19905         * tree-nested.c (convert_nonlocal_omp_clauses): Added
19906         OMP_CLAUSE__CILK_FOR_COUNT_ case.
19907         (convert_local_omp_clauses): Ditto.
19908         * tree-pretty-print.c (dump_omp_clause): Added
19909         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
19910         (dump_generic_node): Added CILK_FOR case.
19911         * tree.c (omp_clause_num_ops): New element
19912         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
19913         (omp_clause_code_name): New element _Cilk_for_count_.
19914         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
19915         * tree.def: Add tree code for CILK_FOR.
19916
19917 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
19918
19919         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
19920         (ppc403-compare): Add "exts with dot" case.
19921         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
19922         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
19923         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
19924         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
19925         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
19926         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
19927         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
19928         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19929         cell-cmp-microcoded): Similarly.
19930         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
19931         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
19932         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
19933         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
19934         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
19935         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
19936         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
19937         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
19938         (power6-compare): Add "exts with dot" case.
19939         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
19940         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
19941         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
19942
19943         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
19944         if avoiding Cell microcode.
19945         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
19946         (is_cracked_insn): Ditto.
19947         (insn_must_be_first_in_group): Ditto.
19948         * config/rs6000/rs6000.md (dot): Adjust comment.
19949         (cell_micro): Handle exts+dot.
19950         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
19951         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
19952         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
19953         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
19954         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
19955         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
19956         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
19957
19958 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
19959
19960         * config/rs6000/rs6000.md (QHSI): Delete.
19961         (EXTQI, EXTHI, EXTSI): New mode iterators.
19962         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
19963         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
19964         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
19965         9 anonymous instructions, and 8 splitters): Delete.
19966         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
19967         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
19968         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
19969         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
19970         *zero_extendsi<mode>2_dot2): New.
19971
19972 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
19973
19974         * config/rs6000/rs6000.md (any_extend): New code iterator.
19975         (u, su): New code attributes.
19976         (dmode, DMODE): New mode attributes.
19977         (<su>mul<mode>3_highpart): New.
19978         (*<su>mul<mode>3_highpart): New.
19979         (<su>mulsi3_highpart_le): New.
19980         (<su>muldi3_highpart_le): New.
19981         (<su>mulsi3_highpart_64): New.
19982         (<u>mul<mode><dmode>3): New.
19983         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
19984         splitters): Delete.
19985         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
19986         splitters): Delete.
19987
19988 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
19989
19990         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
19991         *mulsi3_internal2, and two splitters): Delete.
19992         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
19993         Delete.
19994         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
19995
19996 2014-09-02  Richard Biener  <rguenther@suse.de>
19997
19998         PR tree-optimization/62695
19999         * tree-ssa-structalias.c (find_func_clobbers): Add missing
20000         vector truncate.
20001
20002 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
20003
20004         PR target/62312
20005         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
20006
20007 2014-09-01  Andi Kleen  <ak@linux.intel.com>
20008
20009         * file-find.c (add_prefix_begin): Add.
20010         (do_add_prefix): Rename from add_prefix with first argument.
20011         (add_prefix): Add new wrapper.
20012         * file-find.h (add_prefix_begin): Add.
20013         * gcc-ar.c (main): Support -B option.
20014
20015 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
20016
20017         * genemit.c: Include dumpfile.h.
20018         (gen_split): Print name of splitter function to dump file.
20019
20020 2014-09-01  Richard Biener  <rguenther@suse.de>
20021
20022         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
20023         Use stack auto_vecs for constraint expressions.
20024         (find_func_aliases_for_call): Likewise.
20025         (find_func_aliases): Likewise.
20026         (find_func_clobbers): Likewise.
20027
20028 2014-09-01  Richard Biener  <rguenther@suse.de>
20029
20030         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
20031         operands vector in most cases.  Remove redundant code.
20032
20033 2014-09-01  Olivier Hainque  <hainque@adacore.com>
20034
20035         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
20036         $WIND_BASE instead of designating a harcoded arbitrary home dir.
20037         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
20038
20039 2014-09-01  Richard Biener  <rguenther@suse.de>
20040
20041         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
20042         copy_reference_ops_from_call, vn_nary_op_compute_hash,
20043         vn_reference_compute_hash, vn_reference_insert): Remove.
20044         (vn_reference_lookup_call): New function.
20045         * tree-ssa-sccvn.c (vn_reference_compute_hash,
20046         copy_reference_ops_from_ref, copy_reference_ops_from_call,
20047         vn_reference_insert, vn_nary_op_compute_hash): Make static.
20048         (create_reference_ops_from_call): Remove.
20049         (vn_reference_lookup_3): Properly update shared_lookup_references.
20050         (vn_reference_lookup_pieces): Assert that we updated
20051         shared_lookup_references properly.
20052         (vn_reference_lookup): Likewise.
20053         (vn_reference_lookup_call): New function.
20054         (visit_reference_op_call): Use it.  Avoid re-building the
20055         reference ops.
20056         (visit_reference_op_load): Remove redundant lookup.
20057         (visit_reference_op_store): Perform special tail-merging work
20058         only when possibly doing tail-merging.
20059         (visit_use): Likewise.
20060         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
20061
20062 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
20063
20064         PR target/62025
20065         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
20066         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
20067         (find_inc): Revert 2014-08-13 change.
20068
20069 2014-09-01  Marek Polacek  <polacek@redhat.com>
20070
20071         PR middle-end/61903
20072         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
20073         Change the type of V to unsigned HOST_WIDE_INT.
20074
20075 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20076
20077         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
20078         the size of byte markers.
20079         (do_shift_rotate): Fix confusion between host, target and marker byte
20080         size.
20081         (verify_symbolic_number_p): Likewise.
20082         (find_bswap_or_nop_1): Likewise.
20083         (find_bswap_or_nop): Likewise.
20084
20085 2014-09-01  Olivier Hainque  <hainque@adacore.com>
20086
20087         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
20088         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
20089
20090 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
20091
20092         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
20093         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
20094         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
20095
20096 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
20097
20098         PR sanitizer/61897
20099         PR sanitizer/62140
20100         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
20101         (build_check_stmt): Likewise.
20102         (instrument_strlen_call): Likewise.
20103         (asan_expand_check_ifn): Likewise and fix types.
20104         (maybe_cast_to_ptrmode): New function.
20105
20106 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20107
20108         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
20109
20110 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
20111
20112         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
20113
20114 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
20115
20116         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
20117         prefix to function labels when generating fast indirect calls.
20118
20119 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
20120
20121         PR bootstrap/62304
20122
20123         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
20124         param back from rtx_insn * to rtx.  Rename param from "label" to
20125         "label_or_return", reintroducing "label" as an rtx_insn * after
20126         we've ensured it's not a RETURN.
20127         (first_active_target_insn): Likewise for return type and param;
20128         add a checked cast to rtx_insn * once we've ensured "insn" is not
20129         a RETURN.
20130         (steal_delay_list_from_target): Convert param "pnew_thread" back
20131         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
20132         with JUMP_LABEL.
20133         (own_thread_p): Convert param "thread" back from an rtx_insn * to
20134         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
20135         cast once we've established we're not dealing with a RETURN,
20136         renaming subsequent uses of "thread" to "thread_insn".
20137         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
20138         to JUMP_LABEL.
20139         (follow_jumps): Convert return type and param "label" from
20140         rtx_insn * back to rtx.  Move initialization of "value" to after
20141         the handling for ANY_RETURN_P, adding a checked cast there to
20142         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
20143         rename to "this_label_or_return", reintroducing "this_label" as
20144         an rtx_insn * once we've handled the case where it could be an
20145         ANY_RETURN_P.
20146         (fill_slots_from_thread): Rename param "thread" to
20147         "thread_or_return", converting from an rtx_insn * back to an rtx.
20148         Reintroduce name "thread" as an rtx_insn * local with a checked
20149         cast once we've handled the case of it being an ANY_RETURN_P.
20150         Convert local "new_thread" from an rtx_insn * back to an rtx.
20151         Add a checked cast when assigning to "trial" from "new_thread".
20152         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
20153         checked cast to rtx_insn * from "new_thread" when invoking
20154         get_label_before.
20155         (fill_eager_delay_slots): Convert locals "target_label",
20156         "insn_at_target" from rtx_insn * back to rtx.
20157         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
20158         (relax_delay_slots): Convert locals "trial", "target_label" from
20159         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
20160         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
20161         invoking update_block.
20162         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
20163         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
20164
20165         * resource.h (mark_target_live_regs): Undo erroneous conversion
20166         of second param of r214693, converting it back from rtx_insn * to
20167         rtx, since it could be a RETURN.
20168
20169         * resource.c (find_dead_or_set_registers): Similarly, convert
20170         param "jump_target" back from an rtx_insn ** to an rtx *, as we
20171         could be writing back a RETURN.  Rename local rtx_insn * "next" to
20172         "next_insn", and introduce "lab_or_return" as a local rtx,
20173         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
20174         (mark_target_live_regs): Undo erroneous conversion
20175         of second param of r214693, converting it back from rtx_insn * to
20176         rtx, since it could be a RETURN.  Rename it from "target" to
20177         "target_maybe_return", reintroducing the name "target" as a local
20178         rtx_insn * with a checked cast, after we've handled the case of
20179         ANY_RETURN_P.
20180
20181 2014-08-29  DJ Delorie  <dj@redhat.com>
20182
20183         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
20184         pointer size up to a power of two.
20185         * defaults.h (DWARF2_ADDR_SIZE): Round up.
20186         (POINTER_SIZE_UNITS): New, rounded up value.
20187         * dwarf2asm.c (size_of_encoded_value): Use it.
20188         (dw2_output_indirect_constant_1): Likewise.
20189         * expmed.c (init_expmed_one_conv): We now know the sizes of
20190         partial int modes.
20191         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
20192         * optabs.c (expand_float): Use precision, not size.
20193         (expand_fix): Likewise.
20194         * simplify-rtx (simplify_unary_operation_1): Likewise.
20195         * tree-dfa.c (get_ref_base_and_extent): Likewise.
20196         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
20197         (default_assemble_integer) Likewise.
20198         (dump_tm_clone_pairs): Likewise.
20199         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
20200         * var-tracking.c (adjust_mems): Allow partial-int modes also.
20201         (prepare_call_arguments): Likewise.
20202         * stor-layout.c (finalize_type_size): Preserve precision.
20203         (layout_type): Use precision, not size.
20204
20205         * expr.c (convert_move): If the target has an explicit converter,
20206         use it.
20207
20208 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
20209
20210         * gdbinit.in: Skip various inline functions in rtl.h when
20211         stepping.
20212
20213 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
20214
20215         PR bootstrap/62301
20216         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
20217
20218 2014-08-29  Richard Biener  <rguenther@suse.de>
20219
20220         PR tree-optimization/62291
20221         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
20222         exactly the vector size needed and use quick_push.
20223         (phi_translate_1): Adjust comment.
20224         (valid_in_sets): Remove block argument and remove pointless
20225         checking of NAMEs.
20226         (dependent_clean): Adjust for removal of block argument.
20227         (clean): Likewise.
20228         (compute_antic_aux): Likewise.
20229         (compute_partial_antic_aux): Likewise.
20230
20231 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20232             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20233             Anna Tikhonova  <anna.tikhonova@intel.com>
20234             Ilya Tocar  <ilya.tocar@intel.com>
20235             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20236             Ilya Verbin  <ilya.verbin@intel.com>
20237             Kirill Yukhin  <kirill.yukhin@intel.com>
20238             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20239
20240         * config/i386/sse.md
20241         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
20242         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
20243         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
20244         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
20245
20246 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20247             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20248             Anna Tikhonova  <anna.tikhonova@intel.com>
20249             Ilya Tocar  <ilya.tocar@intel.com>
20250             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20251             Ilya Verbin  <ilya.verbin@intel.com>
20252             Kirill Yukhin  <kirill.yukhin@intel.com>
20253             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20254
20255         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
20256         * config/i386/sse.md
20257         (define_mode_iterator VI4_128_8_256): New.
20258         (define_mode_iterator VI2_128_4_256): Ditto.
20259         (define_mode_iterator PMOV_DST_MODE): Rename into
20260         (define_mode_iterator PMOV_DST_MODE_1): this.
20261         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
20262         Use PMOV_DST_MODE_1 mode iterator.
20263         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
20264         Ditto.
20265         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
20266         Ditto.
20267         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
20268         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
20269         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
20270         (define_mode_iterator PMOV_DST_MODE_2): New.
20271         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
20272         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
20273         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
20274         Ditto.
20275         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
20276         (define_mode_attr pmov_dst_3): Ditto.
20277         (define_mode_attr pmov_dst_zeroed_3): Ditto.
20278         (define_mode_attr pmov_suff_3): Ditto.
20279         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
20280         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
20281         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
20282         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
20283         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
20284         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
20285         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
20286         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
20287         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
20288         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
20289         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
20290         (define_mode_attr pmov_dst_4): Ditto.
20291         (define_mode_attr pmov_dst_zeroed_4): Ditto.
20292         (define_mode_attr pmov_suff_4): Ditto.
20293         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
20294         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
20295         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
20296         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
20297         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
20298         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
20299         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
20300         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
20301         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
20302         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
20303         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
20304
20305 2014-08-29  Richard Biener  <rguenther@suse.de>
20306
20307         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
20308         NON_LVALUE_EXPR in gimple.
20309
20310 2014-08-29  Richard Biener  <rguenther@suse.de>
20311
20312         PR middle-end/62292
20313         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
20314         from previous refactoring.
20315         (gimple_fold_builtin_strncpy): Likewise.
20316
20317 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
20318
20319         PR bootstrap/62300
20320         * function.c (assign_parm_setup_reg): Remove erroneous checked
20321         cast to rtx_insn * on result of gen_extend_insn in favor of
20322         introducing a new local rtx "pat".
20323
20324 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20325
20326         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
20327         to silence warning.
20328         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
20329
20330 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20331
20332         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
20333         (next_insn): Likewise.
20334         * emit-rtl.c (next_insn): Likewise.
20335         (previous_insn): Likewise.
20336         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
20337         "insn" and "next" from rtx to rtx_insn *.
20338         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
20339         "insn", "insn1", "vliw_start",  "prologue_end_note",
20340         "last_insn_in_packet".
20341
20342 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20343
20344         * shrink-wrap.h (active_insn_between): Strengthen both params from
20345         rtx to rtx_insn *.
20346         * function.c (active_insn_between): Likewise.
20347
20348 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20349
20350         * genattr.c (main): When writing out insn-attr.h, strengthen param
20351         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
20352         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
20353         writing out the definition of dfa_clear_single_insn_cache to the
20354         generated insn-automata.c
20355
20356 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20357
20358         * resource.h (clear_hashed_info_for_insn): Strengthen param from
20359         rtx to rtx_insn *.
20360         (incr_ticks_for_insn): Likewise.
20361         (init_resource_info): Likewise.
20362
20363         * resource.c (init_resource_info): Likewise.
20364         (clear_hashed_info_for_insn): Likewise.
20365         (incr_ticks_for_insn): Likewise.
20366
20367         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
20368         rtx to rtx_insn *.
20369         (steal_delay_list_from_target): Use methods of "seq".
20370         (try_merge_delay_insns): Use methods of "merged_insns".
20371         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
20372         (reorg_redirect_jump): Likewise for param "jump".
20373
20374 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20375
20376         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
20377         rtx to rtx_insn *.
20378         * config/s390/s390.c (s390_split_branches): Eliminate top-level
20379         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
20380         "set_insn".
20381         (s390_mainpool_finish): In three places, split out a local rtx
20382         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
20383         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
20384         and split another local rtx "insn" out into rtx "pat" and
20385         rtx_insn * "insn".
20386         * config/sh/sh.c (output_branchy_insn): Rather than working
20387         directly on operands[9], introduce local rtx_code_label *
20388         variables named "lab" in two places, working on them, and then
20389         assigning them to operands[9], so that the intervening operations
20390         are known by the type system to be on insns.
20391
20392 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20393
20394         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
20395         const rtx_insn *.
20396
20397         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
20398         in invocation of INSN_HAS_LOCATION.
20399
20400 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20401
20402         * config/rs6000/altivec.h (vec_xl): New #define.
20403         (vec_xst): Likewise.
20404         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
20405         (XXSPLTD_V2DI): Likewise.
20406         (DIV_V2DI): Likewise.
20407         (UDIV_V2DI): Likewise.
20408         (MUL_V2DI): Likewise.
20409         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20410         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
20411         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
20412         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
20413         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
20414         (UNSPEC_VSX_DIVSD): Likewise.
20415         (UNSPEC_VSX_DIVUD): Likewise.
20416         (UNSPEC_VSX_MULSD): Likewise.
20417         (vsx_mul_v2di): New insn-and-split.
20418         (vsx_div_v2di): Likewise.
20419         (vsx_udiv_v2di): Likewise.
20420         (vsx_xxspltd_<mode>): New insn.
20421
20422 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20423
20424         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
20425         NEXT_INSN.
20426         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
20427         (NEXT_INSN): Likewise.
20428         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
20429         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
20430         const rtx_insn *.
20431         (no_labels_between_p): Likewise for both params.
20432
20433         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
20434         cast when using NEXT_INSN on operands[2].
20435         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
20436         "insn" from rtx to rtx_insn *, adding a checked cast.
20437         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
20438         rtx_insn *.
20439         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
20440         for third param.
20441         (arc_text_label): Likewise for param "insn".
20442         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
20443         "insn".
20444         (arc_ccfsm_record_condition): Likewise for param "jump".
20445         (arc_text_label): Likewise for local "label".
20446         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
20447         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
20448         a method for typesafety.  Add a checked cast.
20449         * config/arc/constraints.md (Clb): Add a checked cast when getting
20450         the CODE_LABEL from a LABEL_REF.
20451         * config/arm/arm.c (require_pic_register): Strengthen locals
20452         "seq", "insn" from rtx to rtx_insn *.
20453         (create_fix_barrier): Likewise for locals "selected", "next".
20454         (thumb1_reorg): Likewise for locals "prev", "insn".
20455         (arm_expand_prologue): Likewise for local "last".
20456         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
20457         operands[0].
20458         (thumb2_output_casesi): Likewise for operands[2].
20459         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
20460         strengthen local "insn" from rtx to rtx_insn *.
20461         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
20462         type and param "insn".
20463         (find_prev_insn_start): Likewise.
20464         (hwloop_optimize): Likewise for locals "insn", "last_insn",
20465         "prev".
20466         (gen_one_bundle): Likewise for loal "t".
20467         (find_load): Likewise for param "insn".
20468         (workaround_speculation): Likewise for locals "insn", "next",
20469         "target", "next_tgt".
20470         * config/c6x/c6x.c (assign_reservations): Likewise for both params
20471         and for locals "insn", "within", "last".
20472         (count_unit_reqs): Likewise for params "head", "tail" and local
20473         "insn".
20474         (try_rename_operands): Likewise for params "head", "tail".
20475         (reshuffle_units): Likewise for locals "head", "tail", "insn".
20476         (struct c6x_sched_context): Likewise for fields
20477         "last_scheduled_insn", "last_scheduled_iter0".
20478         (init_sched_state): Replace NULL_RTX with NULL.
20479         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
20480         to rtx_insn *.
20481         (undo_split_delayed_nonbranch): Likewise for param and for local
20482         "prev".
20483         (conditionalize_after_sched): Likewise for local "insn".
20484         (bb_earliest_end_cycle): Likewise.
20485         (filter_insns_above): Likewise for locals "insn", "next".
20486         (hwloop_optimize): Remove redundant checked cast.
20487         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
20488         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
20489         NULL_RTX with NULL.
20490         (cris_simple_epilogue): Likewise.
20491         (cris_expand_prologue): Likewise.
20492         (cris_expand_epilogue): Likewise.
20493         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
20494         local "insn" from rtx to rtx_insn *.
20495         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
20496         (struct frv_packet_group): Likewise for the elements within array
20497         fields "insns", "sorted", and for field "nop".
20498         (frv_packet): Likewise for the elements within array field
20499         "insns".
20500         (frv_add_insn_to_packet): Likewise for param "insn".
20501         (frv_insert_nop_in_packet): Likewise for param "insn" and local
20502         "last".
20503         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
20504         (frv_sort_insn_group_1): Likewise for local "insn".
20505         (frv_optimize_membar_local): Likewise.
20506         (frv_align_label): Likewise for locals "x", "last", "barrier",
20507         "label".
20508         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
20509         local.
20510         (ia64_sched_init): Likewise for local "insn".
20511         (scheduled_good_insn): Likewise for param "last".
20512         (struct _ia64_sched_context): Likewise for field
20513         "last_scheduled_insn".
20514         (ia64_init_sched_context): Replace NULL_RTX with NULL.
20515         (struct bundle_state): Likewise for field "insn".
20516         (issue_nops_and_insn): Likewise for param "insn".
20517         (get_next_important_insn): Likewise for return type and both
20518         params.
20519         (ia64_add_bundle_selector_before): Likewise for param "insn".
20520         (bundling): Likewise for params "prev_head_insn", "tail" and
20521         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
20522         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
20523         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
20524         Strengthen final param from rtx to rtx_insn *.
20525         (iq2000_move_1word): Likewise for second param.
20526         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
20527         param "cur_insn" and local "next_insn".
20528         (iq2000_move_1word): Likewise for param "insn".
20529         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
20530         casts when using NEXT_INSN on operands[1].
20531         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
20532         "insn" from rtx to rtx_insn *.
20533         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
20534         "x", introducing local rtx_insn * "insn" for when working with the
20535         CODE_LABEL of the LABEL_REF.
20536         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
20537         rtx_insn *.
20538         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
20539         param.
20540         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
20541         type.
20542         (conditionalize_block): Likewise for return type and param.
20543         (mcore_is_dead): Likewise for param "first" and local "insn".
20544         (emit_new_cond_insn): Likewise for return type.
20545         (conditionalize_block): Likewise for return type, param, and
20546         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
20547         "newinsn".
20548         (conditionalize_optimization): Likewise for local "insn".
20549         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
20550         using NEXT_INSN.
20551         * config/microblaze/microblaze.md: Add checked casts when using
20552         NEXT_INSN.
20553         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
20554         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
20555         and rtx_insn * "insn".
20556         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
20557         checked cast when using NEXT_INSN on operands[2].
20558         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
20559         local "insn" from rtx to rtx_insn *.
20560         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
20561         Likewise.
20562         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
20563         Add a checked cast when using NEXT_INSN on operands[1].
20564         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
20565         rtx to rtx_insn *.
20566         (pa_output_cbranch): Likewise for final param.
20567         (pa_output_lbranch): Likewise for second param.
20568         (pa_output_bb): Likewise for third param.
20569         (pa_output_bvb): Likewise.
20570         (pa_output_dbra): Likewise for second param.
20571         (pa_output_movb): Likewise.
20572         (pa_output_parallel_movb): Likewise.
20573         (pa_output_parallel_addb): Likewise.
20574         (pa_output_millicode_call): Likewise for first param.
20575         (pa_output_mul_insn): Likewise for second param.
20576         (pa_output_div_insn): Likewise for third param.
20577         (pa_output_mod_insn): Likewise for second param.
20578         (pa_jump_in_call_delay): Likewise for param.
20579         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
20580         (pa_output_div_insn): Likewise.
20581         (pa_output_mod_insn): Likewise.
20582         (pa_output_cbranch): Likewise.
20583         (pa_output_lbranch): Likewise.
20584         (pa_output_bb): Likewise.
20585         (pa_output_bvb): Likewise.
20586         (pa_output_dbra): Likewise.
20587         (pa_output_movb): Likewise.
20588         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
20589         to simplify and for typesafety.
20590         (pa_output_call): Use method of rtx_sequence *.
20591         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
20592         (pa_jump_in_call_delay): Likewise.
20593         (pa_output_parallel_movb): Likewise.
20594         (pa_output_parallel_addb): Likewise.
20595         (pa_following_call): Likewise.
20596         (pa_combine_instructions): Likewise for locals "anchor",
20597         "floater".
20598         (pa_can_combine_p): Likewise for params "anchor", "floater" and
20599         locals "start", "end".
20600         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
20601         param "insn" and local "local_insn".
20602         (picochip_final_prescan_insn): Likewise for local "local_insn".
20603         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
20604         local "insn".
20605         (uses_TOC): Likewise.
20606         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
20607         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
20608         splitting out to more tightly-scoped locals, 3 as rtx and one as
20609         rtx_insn *.
20610         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
20611         to rtx_insn *.
20612         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
20613         where needed.
20614         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
20615         to rtx_insn *.
20616         (fixup_addr_diff_vecs): Likewise.
20617         (reg_unused_after): Likewise for param 2.
20618         (sh_can_redirect_branch): Likewise for both params.
20619         (check_use_sfunc_addr): Likewise for param 1.
20620         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
20621         (find_barrier): Likewise for local "last_got".
20622         (gen_block_redirect): Likewise for return type, param "jump" and
20623         locals "prev", "scan", "next", "insn".
20624         (struct far_branch): Likewise for fields "near_label",
20625         "insert_place", "far_label".
20626         (gen_far_branch): Likewise for local "jump".
20627         (fixup_addr_diff_vecs): Likewise for param "first" and locals
20628         "insn", "prev".
20629         (barrier_align): Likewise for param and for locals "prev", "x".
20630         Introduce local rtx_sequence * "prev_seq" and use insn method for
20631         typesafety and clarity.
20632         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
20633         (get_dest_uid): Likewise for local "dest".
20634         (split_branches): Likewise for locals "next", "beyond", "label",
20635         "block", "far_label".  Add checked casts when assigning to
20636         bp->far_label and "far_label".
20637         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
20638         (sequence_insn_p): Likewise.
20639         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
20640         more loop-scoped rtx "insn" when walking LABEL_REFS.
20641         (sh_can_redirect_branch): Strengthen both params from rtx to
20642         rtx_insn *.
20643         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
20644         new local rtx_sequence * "seq" via a dyn_cast, and use a method
20645         for clarity and typesafety.
20646         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
20647         "insn" from rtx to rtx_insn *.
20648         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
20649         when using NEXT_INSN on the CODE_LABEL in operands[2].
20650         (define_insn "casesi_worker_2"): Likewise.
20651         (define_insn "casesi_shift_media"): Likewise.
20652         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
20653         operands[3].
20654         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
20655         Strengthen field "insn" from rtx to rtx_insn *.
20656         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
20657         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
20658         param "start_insn" and local "start_insn".
20659         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
20660         field "insn".
20661         (find_set_of_reg_bb): Likewise for param "insn".
20662         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
20663         (trace_reg_uses): Likewise for param "start_insn".
20664         (sh_treg_combine::cbranch_trace): Likewise for field
20665         "cbranch_insn".
20666         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
20667         param "insn".
20668         (sh_treg_combine::record_set_of_reg): Likewise for param
20669         "start_insn" and local "i".
20670         (sh_treg_combine::can_remove_cstore): Likewise for local
20671         "prev_insn".
20672         (sh_treg_combine::try_optimize_cbranch): Likewise for param
20673         "insn".
20674         (sh_treg_combine::execute): Likewise for local "i".
20675         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
20676         param.
20677         (sparc_check_64): Likewise for second param.
20678         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
20679         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
20680         dyn_cast, using its insn method for typesafety and clarity.
20681         (empty_delay_slot): Strengthen param "insn" from rtx to
20682         rtx_insn *.
20683         (set_extends): Likewise.
20684         (sparc_check_64): Likewise.
20685         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
20686         for locals "seq", "last_insn".
20687         (combine_bnp): Likewise for param "insn".
20688         (xstormy16_reorg): Likewise for local "insn".
20689         * config/v850/v850.c (substitute_ep_register): Likewise for params
20690         "first_insn", "last_insn" and local "insn".
20691         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
20692         elements of "regs" array, and local "insn".
20693         * except.c (emit_note_eh_region_end): Likewise for param "insn".
20694         * final.c (final_sequence): Strengthen this global from rtx to
20695         rtx_sequence *.
20696         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
20697         rtx_insn *.
20698         (final_scan_insn): Update assignment to "final_sequence" to be
20699         from "seq", the cast version of "body", for type-safety.
20700         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
20701         "insns" from rtx to rtx_insn *.
20702         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
20703         * genattr.c (main): When writing out generated insn-attr.h,
20704         strengthen params 1 and 3 of eligible_for_delay,
20705         eligible_for_annul_true, eligible_for_annul_false from rtx to
20706         rtx_insn *.
20707         * genattrtab.c (write_eligible_delay): Likewise when writing out
20708         generated insn-attrtab.c; also local "insn" the generated
20709         functions.
20710         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
20711         to rtx_insn *.
20712         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
20713         "start_label" from rtx to rtx_insn *.
20714         * ira.c (decrease_live_ranges_number): Likewise for local "p".
20715         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
20716         "insns" and local "insn".
20717         (validate_equiv_mem): Likewise for param "start" and local "insn".
20718         (memref_used_between_p): Likewise for params "start", "end" and
20719         local "insn".
20720         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
20721         final param.
20722         * loop-doloop.c (doloop_optimize): Within region guarded by
20723         INSN_P (doloop_pat), introduce a new local rtx_insn *
20724         "doloop_insn" via a checked cast, and use it for typesafety,
20725         eventually writing the value back into doloop_pat.
20726         * output.h (final_sequence): Strengthen this global from rtx to
20727         rtx_sequence *.
20728         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
20729         reintroducing "insn" as an rtx_insn * via a checked cast.
20730         Strengthen param "attempt" and local "new_insn"from rtx to
20731         rtx_insn *.
20732         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
20733         to rtx_insn *.
20734         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
20735         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
20736         "p" in favor of more tightly-scoped replacements, sometimes rtx
20737         and sometimes rtx_insn *, as appropriate.
20738         (delete_output_reload): Eliminate top-level rtx "i1", splitting
20739         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
20740         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
20741         local "trial" from rtx to rtx_insn *.
20742         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
20743         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
20744         rtx_sequence * and use methods for clarity and typesafety.
20745         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
20746         rtx to rtx_insn *.  Strenghten local "li" from rtx to
20747         rtx_insn_list * and use its methods for clarity and typesafety.
20748         (steal_delay_list_from_target): Strengthen param "insn" from rtx
20749         to rtx_insn *.
20750         (steal_delay_list_from_fallthrough): Likewise.
20751         (try_merge_delay_insns): Likewise for param "thread" and locals
20752         "trial", "next_trial", "delay_insn".
20753         (redundant_insn): Likewise for param "target" and local "trial".
20754         (own_thread_p): Likewise for param "thread" and locals
20755         "active_insn", "insn".
20756         (get_label_before): Likewise for param "insn".
20757         (fill_simple_delay_slots): Likewise for local "new_label"; use
20758         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
20759         (label_before_next_insn): Strengthen return type and local "insn"
20760         from rtx to rtx_insn *.
20761         (relax_delay_slots): Likewise for locals "other", "tmp".
20762         (make_return_insns): Likewise for param "first" and locals "insn",
20763         "jump_insn", "prev".  Move declaration of "pat" to its assignment
20764         and strengthen from rtx to rtx_sequence *.  Use its methods for
20765         clarity and typesafety.
20766         * rtlanal.c (no_labels_between_p): Strengthen params from
20767         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
20768         rtx_insn *.
20769         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
20770         from const_rtx to const rtx_insn *.
20771         (reg_set_between_p): Rename param "from_insn" to
20772         "uncast_from_insn", and reintroduce "from_insn" as a
20773         const rtx_insn * via a checked cast.
20774         (modified_between_p): Likewise for param "start" as "uncast_start".
20775         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
20776         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
20777         "tmp", head" from rtx to rtx_insn *.
20778         (recompute_rev_top_order): Likewise for local "insn".
20779         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
20780         * store-motion.c (build_store_vectors): Likewise for local "insn".
20781         Strengthen local "st" from rtx to rtx_insn_list * and use methods
20782         for clarity and typesafety.
20783         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
20784         rtx to rtx_insn *.
20785         (computation_cost): Likewise for local "seq".
20786         (get_address_cost): Likewise.
20787
20788 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20789
20790         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
20791         const rtx_insn *.
20792         (label_is_jump_target_p): Likewise for second param.
20793
20794         * rtlanal.c (tablejump_p): Likewise for param "insn".
20795         (label_is_jump_target_p): Likewise for param "jump_insn".
20796
20797 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20798
20799         * rtl.h (find_first_parameter_load): Strengthen return type and
20800         both params from rtx to rtx_insn *.
20801         * rtlanal.c (find_first_parameter_load): Strengthen return type,
20802         both params and locals "before", "first_set" from rtx to
20803         rtx_insn *.  Remove now-redundant cast.
20804         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
20805
20806 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20807
20808         * rtl.h (find_last_value): Delete.
20809         * rtlanal.c (find_last_value): Delete.
20810
20811 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20812
20813         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
20814         from rtx to rtx_insn *.
20815         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
20816         rtx "note" with new local rtx_insn * "new_head" when calculating
20817         head insn of new basic block.
20818         * combine.c (combine_split_insns): Strengthen return type and local
20819         "ret" from rtx to rtx_insn *.
20820         (likely_spilled_retval_p): Likewise for locals "use" and "p".
20821         (try_combine): Eliminate local "m_split", splitting into new
20822         locals "m_split_insn" and "m_split_pat".
20823         (find_split_point): Strengthen local "seq" from rtx into
20824         rtx_insn *.
20825         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
20826         locals "label", "branch".
20827         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
20828         for local "insn".
20829         (define_expand "umulsi3_highpart"): Likewise for local "insn".
20830         * dse.c (note_add_store_info): Likewise for fields "first",
20831         "current".
20832         (note_add_store): Likewise for local "insn".
20833         (emit_inc_dec_insn_before): Likewise for locals "insn",
20834         "new_insn", "cur".
20835         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
20836         (replace_read): Likewise for locals "insns", "this_insn".
20837         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
20838         (notice_eh_throw): Likewise for param "insn".
20839         (before_next_cfi_note): Likewise for return type, param, and local
20840         "prev".
20841         (connect_traces): Likewise for local "note".
20842         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
20843         (verify_rtl_sharing): Likewise.
20844         (unshare_all_rtl_in_chain): Likewise for param "insn".
20845         (get_first_nonnote_insn): Likewise for local "insn".
20846         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
20847         "seq" and use its methods to clarify things.
20848         (next_insn): Strengthen return type from rtx to rtx_insn *.
20849         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
20850         local rtx_insn * using a checked cast, dropping a checked cast
20851         made redundant by this change.  Use a cast to and method of
20852         rtx_sequence to clarify the code.
20853         (previous_insn): Rename param "insn" to "uncast_insn" and
20854         reintroduce "insn" as a local rtx_insn * using a checked cast,
20855         dropping a checked cast made redundant by this change.  Use a cast
20856         to and method of rtx_sequence to clarify the code.
20857         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
20858         reintroduce "insn" as a local rtx_insn * using a checked cast,
20859         dropping a checked cast made redundant by this change.
20860         (next_nonnote_insn_bb): Likewise.
20861         (prev_nonnote_insn): Likewise.
20862         (prev_nonnote_insn_bb): Likewise.
20863         (next_nondebug_insn): Likewise.
20864         (prev_nondebug_insn): Likewise.
20865         (next_nonnote_nondebug_insn): Likewise.
20866         (prev_nonnote_nondebug_insn): Likewise.
20867         (next_real_insn): Likewise.
20868         (prev_real_insn): Likewise.
20869         (next_active_insn): Likewise.
20870         (prev_active_insn): Likewise.
20871         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
20872         clarity.
20873         (prev_cc0_setter): Likewise.
20874         (try_split): Rename param "trial" to "uncast_trial" and
20875         reintroduce "insn" as a local rtx_insn * using a checked cast,
20876         dropping checked casts made redundant by this change.
20877         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
20878         rtx to rtx_insn *.
20879         (remove_insn): Rename param "insn" to "uncast_insn" and
20880         reintroduce "insn" as a local rtx_insn * using a checked cast.
20881         (emit_pattern_after_setloc): Likewise for param "after", as
20882         "uncast_after".
20883         (emit_pattern_after): Likewise.  Strengthen local "prev" from
20884         rtx to rtx_insn *.
20885         (emit_pattern_before_setloc): Rename param "before" to
20886         "uncast_before" and reintroduce "before" as a local rtx_insn *
20887         using a checked cast.  Strengthen locals "first", "last" from
20888         rtx to rtx_insn *.
20889         (emit_pattern_before): Likewise rename/cast param "before" to
20890         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
20891         * except.c (copy_reg_eh_region_note_forward): Strengthen param
20892         "first" and local "insn" from rtx to rtx_insn *.
20893         (copy_reg_eh_region_note_backward): Likewise for param "last"
20894         and local "insn".
20895         * expr.c (fixup_args_size_notes): Rename param "last" to
20896         "uncast_last" and reintroduce "last" as a local rtx_insn *
20897         using a checked cast.  Strengthen local "insn" from rtx to
20898         rtx_insn *.
20899         * function.c (set_insn_locations): Strengthen param "insn" from
20900         rtx to rtx_insn *.
20901         (record_insns): Likewise for param "insns" and local "tmp".
20902         (active_insn_between): Rename param "tail" to
20903         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
20904         using a checked cast.
20905         (thread_prologue_and_epilogue_insns): Split out top-level local
20906         rtx "seq" into three different rtx_insn * locals.  Strengthen
20907         local "prologue_seq" from rtx to rtx_insn *.
20908         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
20909         from rtx to rtx_insn *.
20910         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
20911         (priority): Likewise for locals "prev_first", "twin".
20912         (setup_insn_max_reg_pressure): Likewise for param "after".
20913         (sched_setup_bb_reg_pressure_info): Likewise.
20914         (no_real_insns_p): Strengthen params from const_rtx to
20915         const rtx_insn *.
20916         (schedule_block): Strengthen local "next_tail" from rtx to
20917         rtx_insn *.
20918         * ifcvt.c (find_active_insn_before): Strengthen return type and
20919         param "insn" from rtx to rtx_insn *.
20920         (find_active_insn_after): Likewise.
20921         (cond_exec_process_insns): Likewise for param "start" and local "insn".
20922         (cond_exec_process_if_block): Likewise for locals "then_start",
20923         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
20924         (noce_process_if_block): Likewise for local "jump".
20925         (merge_if_block): Likewise for two locals named "end".
20926         (cond_exec_find_if_block): Likewise for local "last_insn".
20927         * jump.c (delete_related_insns): Rename param "insn" to
20928         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
20929         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
20930         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
20931         NULL.
20932         (split_reg): Likewise.
20933         * lra.c (lra_process_new_insns): Likewise.
20934         * modulo-sched.c (permute_partial_schedule): Strengthen param
20935         "last" from rtx to rtx_insn *.
20936         * optabs.c (add_equal_note): Likewise for param "insns" and local
20937         "last_insn".
20938         (expand_binop_directly): Add checked casts to rtx_insn * within
20939         NEXT_INSN (pat) uses.
20940         (expand_unop_direct): Likewise.
20941         (maybe_emit_unop_insn): Likewise.
20942         * recog.c (peep2_attempt): Strengthen locals "last",
20943         "before_try", "x" from rtx to rtx_insn *.
20944         * reorg.c (optimize_skip): Strengthen return type and local
20945         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
20946         and locals "trial", "next_trial" from rtx to rtx_insn *.
20947         * resource.c (next_insn_no_annul): Strengthen return type and
20948         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
20949         rtx_sequence to clarify the code.
20950         (mark_referenced_resources): Add a checked cast to rtx_insn *
20951         within PREV_INSN (x).
20952         (find_dead_or_set_registers): Strengthen return type, param
20953         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
20954         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
20955         to rtx_insn **.
20956         (mark_target_live_regs): Strengthen params "insns" and "target",
20957         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
20958         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
20959         the code.
20960         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
20961         from rtx to rtx_insn *.
20962         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
20963         from rtx to rtx_insn *.
20964         (copy_reg_eh_region_note_backward): Likewise.
20965         (unshare_all_rtl_in_chain): Likewise for sole param.
20966         (dump_rtl_slim): Strengthen second and third params from const_rtx
20967         to const rtx_insn *.
20968         * sched-deps.c (sched_free_deps): Strengthen params "head" and
20969         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
20970         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
20971         "next_tail" from rtx to rtx_insn *.
20972         (begin_move_insn): Likewise for local "next".
20973         * sched-int.h (sched_free_deps): Likewise for first and second
20974         params.
20975         (no_real_insns_p): Strengthen both params from const_rtx to
20976         const rtx_insn *.
20977         (sched_setup_bb_reg_pressure_info): Strengthen second params from
20978         rtx to rtx_insn *.
20979         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
20980         "next_tail".
20981         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
20982         and locals "insn", "tail" from const_rtx to const rtx_insn *.
20983         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
20984         rtx_insn *.
20985         (debug_rtl_slim): Strengthen params "first" and "last" from
20986         const_rtx to const rtx_insn *.
20987         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
20988         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
20989         (convert_to_simple_return): Likewise for param "returnjump".
20990         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
20991         "prologue_seq".
20992         (convert_to_simple_return): Likewise for param "returnjump".
20993         * valtrack.c (propagate_for_debug): Likewise for params
20994         "insn", "last".
20995         * valtrack.h (propagate_for_debug): Likewise for second param.
20996
20997 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20998
20999         * output.h (insn_current_reference_address): Strengthen param
21000         from rtx to rtx_insn *.
21001         * final.c (insn_current_reference_address): Likewise.
21002
21003 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21004
21005         * basic-block.h (inside_basic_block_p): Strengthen param from
21006         const_rtx to const rtx_insn *.
21007         * cfgbuild.c (inside_basic_block_p): Likewise.
21008
21009 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21010
21011         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
21012         rtx_insn *.
21013         (get_trace_info): Likewise for param "insn".
21014         (save_point_p): Likewise.
21015         (maybe_record_trace_start): Likewise for both params.
21016         (maybe_record_trace_start_abnormal): Likewise.
21017         (create_trace_edges): Likewise for sole param and for three of the
21018         locals named "lab".
21019         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
21020         to rtx_insn *, and update a call to pat->element to pat->insn.
21021
21022 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21023
21024         * function.h (struct expr_status): Convert field "x_forced_labels"
21025         from rtx_expr_list * to rtx_insn_list *.
21026
21027         * cfgbuild.c (make_edges): Convert local "x" from an
21028         rtx_expr_list * to an rtx_insn_list *, replacing use of
21029         "element" method with "insn" method.
21030         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
21031         * except.c (sjlj_emit_dispatch_table): Replace use of
21032         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
21033         forced_labels.
21034         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
21035         rtx_expr_list * to an rtx_insn_list *, replacing use of
21036         "element" method with "insn" method.
21037         * reload1.c (set_initial_label_offsets): Likewise for local "x".
21038         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
21039         rtx_insn *, adding a checked cast.  Replace use of
21040         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
21041         forced_labels.
21042         (expand_label): Likewise for local "label_r".
21043
21044 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21045
21046         * function.h (struct rtl_data): Convert field
21047         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
21048         rtx_insn_list *.
21049         * rtl.h (remove_node_from_insn_list): New prototype.
21050
21051         * builtins.c (expand_builtin): When prepending to
21052         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
21053         gen_rtx_EXPR_LIST.
21054         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
21055         to rtx_insn_list *, and use its "insn" method rather than
21056         "element" method.
21057         * cfgrtl.c (delete_insn): Use new function
21058         remove_node_from_insn_list rather than
21059         remove_node_from_expr_list.
21060         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
21061         to rtx_insn_list *, and use its "insn" method rather than
21062         "element" method.
21063         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
21064         * reload1.c (set_initial_label_offsets): Likewise for local "x".
21065         * rtlanal.c (remove_node_from_insn_list): New function, adapted
21066         from remove_node_from_expr_list.
21067         * stmt.c (expand_label): When prepending to
21068         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
21069         gen_rtx_EXPR_LIST.
21070
21071 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21072
21073         * function.h (struct rtl_data): Strengthen fields "x_return_label"
21074         and "x_naked_return_label" from rtx to rtx_code_label *.
21075
21076 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21077
21078         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
21079         (SET_NEXT_INSN): Likewise.
21080         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
21081
21082         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
21083         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
21084         to split out the SEQUENCE from local "bundle", strengthening the
21085         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
21086         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
21087         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
21088         and the type of the elements of the "slot" array from rtx to
21089         rtx_insn *.
21090         (reorg_split_calls): Likewise for locals "insn" and "next", and
21091         the type of the elements of the "slot" array.
21092
21093         * config/frv/frv.c (frv_nops): Likewise for the elements of this
21094         array.
21095         (frv_function_prologue): Likewise for locals "insn", "next",
21096         "last_call".
21097         (frv_register_nop): Introduce a local "nop_insn" to be the
21098         rtx_insn * containing rtx "nop".
21099
21100         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
21101         used as an insn and sometimes as a pattern, so rename it to
21102         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
21103         using it where dealing with the core insn.
21104
21105         * config/picochip/picochip.c (reorder_var_tracking_notes):
21106         Strengthen locals "insn", "next", "last_insn", "queue",
21107         "next_queue", "prev" from rtx to rtx_insn *.
21108
21109         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
21110         the second param is an rtx_insn ** rather than an rtx **.
21111         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
21112         from rtx to rtx_sequence *, and introduce local named "sequence",
21113         using methods of rtx_sequence to clarify the code.
21114         (remove_insn): Introduce local rtx_sequence * named "sequence" and
21115         use its methods.
21116         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
21117         Rename param "after" to "uncast_after", reintroducing "after" as a
21118         local rtx_insn * with a checked cast.
21119         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
21120         reintroducing "after" as a local rtx_insn * with a checked cast.
21121         Strengthen local "last" from rtx to rtx_insn * and remove the
21122         now-redundant checked casts.
21123         (copy_delay_slot_insn): Strengthen return type and param from rtx
21124         to rtx_insn *.
21125
21126         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
21127         "last" from rtx to rtx_insn *.
21128
21129 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21130
21131         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
21132         param from rtx to rtx_insn *.
21133
21134         * emit-rtl.c (copy_delay_slot_insn): Likewise.
21135
21136         * reorg.c (skip_consecutive_labels): Strengthen return type, param
21137         and local "insn" from rtx to rtx_insn *.
21138         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
21139         (unfilled_slots_next): Likewise.
21140         (function_return_label): Strengthen from rtx to rtx_code_label *.
21141         (function_simple_return_label): Likewise.
21142         (first_active_target_insn): Strengthen return type and param from
21143         rtx to rtx_insn *.
21144         (find_end_label): Strengthen return type from rtx to
21145         rtx_code_label *; strengthen locals as appropriate.
21146         (emit_delay_sequence): Strengthen return type, param "insn" and
21147         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
21148         and local "li" from rtx to rtx_insn_list *, using methods of
21149         rtx_insn_list for clarity and typesafety.
21150         (add_to_delay_list): Strengthen return type and param "insn" from
21151         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
21152         rtx_insn_list * and use methods of rtx_insn_list.
21153         (delete_from_delay_slot): Strengthen return type, param "insn",
21154         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
21155         Strengthen local "seq" from rtx to rtx_sequence *, and local
21156         "delay_list" from rtx to rtx_insn_list *, using methods of
21157         rtx_sequence for clarity and type-safety.
21158         (delete_scheduled_jump): Add checked cast when invoking
21159         delete_from_delay_slot.  Strengthen local "trial" from rtx to
21160         rtx_insn *.
21161         (optimize_skip): Strengthen return type and local "delay_list"
21162         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
21163         rtx_insn *.
21164         (steal_delay_list_from_target): Strengthen return type, param
21165         "delay_list" and local "new_delay_list" from rtx to
21166         rtx_insn_list *.  Strengthen param "seq" from rtx to
21167         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
21168         rtx_insn **.
21169         Split out local "temp" into multiple more-tightly scoped locals:
21170         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
21171         of rtx_insn_list and rtx_sequence for clarity and typesafety.
21172         Strengthen locals named "trial" from rtx to rtx_insn *.
21173         (steal_delay_list_from_fallthrough): Strengthen return type and
21174         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
21175         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
21176         Strengthen local "trial" from rtx to rtx_insn *.
21177         (try_merge_delay_insns): Strength local "merged_insns" from rtx
21178         to rtx_insn_list * and use its methods.  Strengthen local "pat"
21179         from rtx to rtx_sequence * and use its methods.  Strengthen locals
21180         "dtrial" and "new_rtx" from rtx to rtx_insn *.
21181         (get_label_before): Strengthen return type and local "label" from
21182         rtx to rtx_insn *.
21183         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
21184         "next_trial", "next", prev".  Strengthen local "delay_list" from
21185         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
21186         rtx_insn **.
21187         (follow_jumps): Strengthen return type, param "label" and locals
21188         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
21189         (fill_slots_from_thread): Strengthen return type, param
21190         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
21191         "insn", "thread", "opposite_thread" and locals "new_thread",
21192         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
21193         "sequence" from a checked cast to rtx_sequence so that we can call
21194         steal_delay_list_from_target and steal_delay_list_from_fallthrough
21195         with an rtx_sequence *.
21196         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
21197         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
21198         Strengthen local "delay_list" from rtx to rtx_insn_list *.
21199         (relax_delay_slots): Strengthen param "first" and locals "insn",
21200         "next", "trial", "delay_insn", "target_label" from rtx to
21201         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
21202         Introduce a local "trial_seq" for PATTERN (trial) of type
21203         rtx_sequence *, in both cases using methods of rtx_sequence.
21204         (dbr_schedule): Strengthen param "first" and locals "insn",
21205         "next", "epilogue_insn" from rtx to rtx_insn *.
21206
21207 2014-08-28  Richard Biener  <rguenther@suse.de>
21208
21209         PR tree-optimization/62283
21210         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
21211         Do not peel loops for alignment where the vector loop likely
21212         doesn't run at least VF times.
21213
21214 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
21215
21216         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
21217         important_candidates.  Consider all important candidates if
21218         IVS doesn't give any result.  Remove check on ivs->upto.
21219         (try_add_cand_for): Call iv_ca_add_use only once.
21220
21221 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21222             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21223             Anna Tikhonova  <anna.tikhonova@intel.com>
21224             Ilya Tocar  <ilya.tocar@intel.com>
21225             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21226             Ilya Verbin  <ilya.verbin@intel.com>
21227             Kirill Yukhin  <kirill.yukhin@intel.com>
21228             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21229
21230         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
21231         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
21232         masking.
21233         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
21234         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
21235         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
21236         (define_insn "*mul<mode>3"): Add EVEX version.
21237
21238 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21239             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21240             Anna Tikhonova  <anna.tikhonova@intel.com>
21241             Ilya Tocar  <ilya.tocar@intel.com>
21242             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21243             Ilya Verbin  <ilya.verbin@intel.com>
21244             Kirill Yukhin  <kirill.yukhin@intel.com>
21245             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21246
21247         * config/i386/sse.md
21248         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
21249         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
21250         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
21251         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
21252         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
21253         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
21254         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
21255         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
21256         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
21257         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
21258         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
21259         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
21260         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
21261         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
21262         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
21263         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
21264
21265 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21266             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21267             Anna Tikhonova  <anna.tikhonova@intel.com>
21268             Ilya Tocar  <ilya.tocar@intel.com>
21269             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21270             Ilya Verbin  <ilya.verbin@intel.com>
21271             Kirill Yukhin  <kirill.yukhin@intel.com>
21272             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21273
21274         * config/i386/sse.md
21275         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
21276         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
21277         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
21278
21279 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21280             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21281             Anna Tikhonova  <anna.tikhonova@intel.com>
21282             Ilya Tocar  <ilya.tocar@intel.com>
21283             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21284             Ilya Verbin  <ilya.verbin@intel.com>
21285             Kirill Yukhin  <kirill.yukhin@intel.com>
21286             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21287
21288         * config/i386/sse.md
21289         (define_mode_iterator VI128_256): New.
21290         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
21291
21292 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21293             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21294             Anna Tikhonova  <anna.tikhonova@intel.com>
21295             Ilya Tocar  <ilya.tocar@intel.com>
21296             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21297             Ilya Verbin  <ilya.verbin@intel.com>
21298             Kirill Yukhin  <kirill.yukhin@intel.com>
21299             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21300
21301         * config/i386/sse.md
21302         (define_mode_iterator VI8_256_512): New.
21303         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
21304         Ditto.
21305         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
21306         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
21307         Ditto.
21308         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
21309
21310 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21311
21312         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
21313         pointer to the cumulative reloc value and return the value for
21314         this reloc instead.
21315         (compute_reloc_for_rtx): Take a const_rtx.  Call
21316         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
21317         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
21318         for_each_rtx for the CONST case.
21319
21320 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21321
21322         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
21323         (mark_constants_in_pattern): ...this new function to iterate over
21324         all the subrtxes.
21325         (mark_constants): Update accordingly.
21326
21327 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21328
21329         * varasm.c: Include rtl-iter.h.
21330         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
21331         Remove the pointer to the cumulative hashval_t and just return
21332         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
21333         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21334         Accumulate the hashval_ts here instead of const_rtx_hash_1.
21335
21336 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21337
21338         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
21339         Give real type of data parameter.  Remove return value.
21340         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
21341         to iterate over subrtxes.
21342
21343 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21344
21345         * var-tracking.c (use_narrower_mode_test): Turn from being a
21346         for_each_rtx callback to being a function that examines each
21347         subrtx itself.
21348         (adjust_mems): Update accordingly.
21349
21350 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21351
21352         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
21353         callback to being a function that examines each subrtx itself.
21354         Remove handling of null rtxes.
21355         (add_uses): Update accordingly.
21356
21357 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21358
21359         * var-tracking.c: Include rtl-iter.h.
21360         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
21361         to being a function that examines each subrtx itself.
21362         (use_type): Update accordingly.
21363
21364 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21365
21366         * store-motion.c: Include rtl-iter.h.
21367         (extract_mentioned_regs_1): Delete.
21368         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
21369         for_each_rtx to iterate over subrtxes.
21370
21371 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21372
21373         * sel-sched.c: Include rtl-iter.h
21374         (count_occurrences_1): Delete.
21375         (count_occurrences_equiv): Turn rtxes into const_rtxes.
21376         Use FOR_EACH_SUBRTX rather than for_each_rtx.
21377
21378 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21379
21380         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
21381         * rtlanal.c (tls_referenced_p_1): Delete.
21382         (tls_referenced_p): Take a const_rtx rather than an rtx.
21383         Use FOR_EACH_SUBRTX rather than for_each_rtx.
21384
21385 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21386
21387         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
21388         (for_each_inc_dec): Take an rtx rather than an rtx *.
21389         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
21390         (cselib_record_sets): Likewise.
21391         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
21392         (check_for_inc_dec): Likewise.
21393         * rtlanal.c (for_each_inc_dec_ops): Delete.
21394         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
21395         rather than a pointer to the memory address.  Replace
21396         for_each_inc_dec_ops argument with separate function and data
21397         arguments.  Abort on non-autoinc addresses.
21398         (for_each_inc_dec_find_mem): Delete.
21399         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
21400         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
21401
21402 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21403
21404         * rtl.h (find_all_hard_regs): Declare.
21405         * rtlanal.c (find_all_hard_regs): New function.
21406         (record_hard_reg_uses_1): Delete.
21407         (record_hard_reg_uses): Use find_all_hard_regs.
21408
21409 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21410
21411         * rtl.h (replace_label_data): Delete.
21412         (replace_label): Take the old label, new label and update-nuses flag
21413         as direct arguments.  Return void.
21414         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
21415         * rtlanal.c (replace_label): Update interface as above.  Handle
21416         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
21417         iterator.  Use FOR_EACH_SUBRTX_PTR.
21418
21419 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21420
21421         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
21422         with const_rtx parameters.
21423         * varasm.c (get_pool_constant): Likewise.
21424         * rtlanal.c (rtx_referenced_p_1): Delete.
21425         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21426         Assert that the rtx we're looking for is nonnull.  Allow searches
21427         for constant pool SYMBOL_REFs.
21428
21429 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21430
21431         * reload1.c: Include rtl-iter.h.
21432         (note_reg_elim_costly): Turn from being a for_each_rtx callback
21433         to being a function that examines each subrtx itself.
21434         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
21435
21436 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21437
21438         * regcprop.c (cprop_find_used_regs_1): Delete.
21439         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21440
21441 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21442
21443         * regcprop.c: Include rtl-iter.h.
21444         (kill_value): Take a const_rtx.
21445         (kill_autoinc_value): Turn from being a for_each_rtx callback
21446         to being a function that examines each subrtx itself.
21447         (copyprop_hardreg_forward_1): Update accordingly.
21448
21449 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21450
21451         * reg-stack.c: Include rtl-iter.h.
21452         (subst_stack_regs_in_debug_insn): Delete.
21453         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
21454         instead of for_each_rtx.
21455
21456 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21457
21458         * lower-subreg.c (find_decomposable_subregs): Turn from being
21459         a for_each_rtx callback to being a function that examines each
21460         subrtx itself.  Remove handling of null rtxes.
21461         (decompose_multiword_subregs): Update accordingly.
21462
21463 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21464
21465         * lower-subreg.c (adjust_decomposed_uses): Delete.
21466         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
21467         Remove handling of null rtxes.
21468
21469 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21470
21471         * lower-subreg.c: Include rtl-iter.h.
21472         (resolve_subreg_use): Turn from being a for_each_rtx callback
21473         to being a function that examines each subrtx itself.  Remove
21474         handling of null rtxes.
21475         (resolve_reg_notes, resolve_simple_move): Update accordingly.
21476         (decompose_multiword_subregs): Likewise.
21477
21478 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21479
21480         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
21481         to being a function that examines each subrtx itself.
21482         (simplify_using_condition, simplify_using_initial_values): Update
21483         accordingly.
21484
21485 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21486
21487         * loop-iv.c: Include rtl-iter.h.
21488         (find_single_def_src): New function.
21489         (replace_single_def_regs): Turn from being a for_each_rtx callback
21490         to being a function that examines each subrtx itself.
21491         (replace_in_expr, simplify_using_initial_values): Update accordingly.
21492
21493 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21494
21495         * jump.c (eh_returnjump_p_1): Delete.
21496         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21497         Remove handling of null rtxes.
21498
21499 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21500
21501         * jump.c: Include rtl-iter.h.
21502         (returnjump_p_1): Delete.
21503         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21504         Remove handling of null rtxes.
21505
21506 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21507
21508         * ira.c: Include rtl-iter.h.
21509         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
21510         to being a function that examines each subrtx itself.  Remove
21511         handling of null rtxes.
21512         (update_equiv_regs): Update call accordingly.
21513
21514 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21515
21516         * fwprop.c: Include rtl-iter.h.
21517         (varying_mem_p): Turn from being a for_each_rtx callback to being
21518         a function that examines each subrtx itself.
21519         (propagate_rtx): Update accordingly.
21520
21521 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21522
21523         * function.c: Include rtl-iter.h
21524         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
21525         callback to being a function that examines each subrtx itself.
21526         Return the changed flag.
21527         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
21528         (instantiate_virtual_regs): Update calls accordingly.
21529
21530 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21531
21532         * final.c: Include rtl-iter.h.
21533         (mark_symbol_ref_as_used): Delete.
21534         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
21535         for_each_rtx.
21536
21537 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21538
21539         * emit-rtl.c: Include rtl-iter.h.
21540         (find_auto_inc): Turn from being a for_each_rtx callback to being
21541         a function that examines each subrtx itself.  Assume the first operand
21542         to an RTX_AUTOINC is the automodified register.
21543         (try_split): Update call accordingly.
21544
21545 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21546
21547         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
21548         Return a bool, inverting the result so that 0/false means "not ok".
21549         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
21550         subrtxes of a CONST.
21551         (mem_loc_descriptor, add_const_value_attribute)
21552         (resolve_addr_in_expr): Update calls accordingly.
21553
21554 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21555
21556         * dwarf2out.c: Include rtl-iter.h.
21557         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
21558         Remove unused data parameter.  Return a bool, inverting the result
21559         so that 0/false means "not ok".
21560         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
21561         instead of for_each_rtx.
21562
21563 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21564
21565         * dse.c: Include rtl-iter.h.
21566         (check_mem_read_rtx): Change void * parameter to real type.
21567         Remove return value.
21568         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
21569         for_each_rtx.  Don't handle null rtxes.
21570
21571 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21572
21573         * df-problems.c: Include rtl-iter.h.
21574         (find_memory): Turn from being a for_each_rtx callback to being
21575         a function that examines each subrtx itself.  Continue to look for
21576         volatile references even after a nonvolatile one has been found.
21577         (can_move_insns_across): Update calls accordingly.
21578
21579 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21580
21581         * ddg.c (walk_mems_2, walk_mems_1): Delete.
21582         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
21583         to iterate over subrtxes.  Return a bool rather than an int.
21584
21585 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21586
21587         * ddg.c: Include rtl-iter.h.
21588         (mark_mem_use_1): Rename to...
21589         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
21590         instead of for_each_rtx.
21591         (mem_read_insn_p): Update accordingly.
21592
21593 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21594
21595         * cse.c (change_cc_mode_args): Delete.
21596         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
21597         a function that examines each subrtx itself.  Take the fields of
21598         change_cc_mode_args as argument and return void.
21599         (cse_change_cc_mode_insn): Update calls accordingly.
21600
21601 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21602
21603         * cse.c (is_dead_reg): Change argument to const_rtx.
21604         (dead_debug_insn_data): Delete.
21605         (is_dead_debug_insn): Expand commentary.  Turn from being a
21606         for_each_rtx callback to being a function that examines
21607         each subrtx itself.  Take the fields of dead_debug_insn_data
21608         as argument.
21609         (delete_trivially_dead_insns): Update call accordingly.
21610
21611 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21612
21613         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
21614         being a for_each_rtx callback to being a function that examines
21615         each subrtx itself.
21616         (cse_extended_basic_block): Update call accordingly.
21617
21618 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21619
21620         * cse.c (check_dependence_data): Delete.
21621         (check_dependence): Change from being a for_each_rtx callback to being
21622         a function that examines all subrtxes itself.  Don't handle null rtxes.
21623         (invalidate): Update call accordingly.
21624
21625 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21626
21627         * cse.c: Include rtl-iter.h.
21628         (approx_reg_cost_1): Delete.
21629         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21630         Don't handle null rtxes.
21631
21632 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21633
21634         * cfgcleanup.c: Include rtl-iter.h.
21635         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
21636         to being a function that examines each subrtx itself.
21637         (thread_jump): Update accordingly.
21638
21639 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21640
21641         * combine-stack-adj.c: Include rtl-iter.h.
21642         (record_stack_refs_data): Delete.
21643         (record_stack_refs): Turn from being a for_each_rtx callback
21644         to being a function that examines each subrtx itself.
21645         Take a pointer to the reflist.  Invert sense of return value
21646         so that true means success and false means failure.  Don't
21647         handle null rtxes.
21648         (combine_stack_adjustments_for_block): Update accordingly.
21649
21650 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21651
21652         * combine.c (record_truncated_value): Turn from being a for_each_rtx
21653         callback to a function that takes an rtx and returns a bool
21654         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
21655         for_each_rtx.
21656
21657 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21658
21659         * combine.c: Include rtl-iter.h.
21660         (unmentioned_reg_p_1): Delete.
21661         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21662         Don't handle null rtxes.
21663
21664 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21665
21666         * calls.c: Include rtl-iter.h.
21667         (internal_arg_pointer_based_exp_1): Delete.
21668         (internal_arg_pointer_based_exp): Take a const_rtx.
21669         Use FOR_EACH_SUBRTX to iterate over subrtxes.
21670
21671 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21672
21673         * caller-save.c: Include rtl-iter.h.
21674         (add_used_regs_1): Delete.
21675         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
21676         to iterate over subrtxes.  Assert that any remaining pseudos
21677         have been spilled.
21678
21679 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21680
21681         * bt-load.c: Include rtl-iter.h.
21682         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
21683         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
21684         to iterate over subrtxes.
21685         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
21686         find_btr_use rather than btr_referenced_p.
21687
21688 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21689
21690         * alias.c: Include rtl-iter.h.
21691         (refs_newer_value_cb): Delete.
21692         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21693
21694 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21695
21696         * rtl-iter.h: New file.
21697         * rtlanal.c: Include it.
21698         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
21699         (generic_subrtx_iterator <T>::add_single_to_queue)
21700         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
21701         (generic_subrtx_iterator <T>::free_array): New functions.
21702         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
21703         (generic_subrtx_iterator <const_rtx_accessor>)
21704         (generic_subrtx_iterator <rtx_var_accessor>
21705         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
21706         (setup_reg_subrtx_bounds): New function.
21707         (init_rtlanal): Call it.
21708
21709 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
21710
21711         PR target/62261
21712         * config/sh/sh.md (ashlsi3): Handle negative shift count for
21713         TARGET_SHMEDIA.
21714         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
21715
21716 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
21717
21718         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
21719
21720 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21721
21722         * rtl.h (JUMP_LABEL_AS_INSN): New.
21723
21724 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21725
21726         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
21727         rtx_expr_list **.
21728         (alloc_EXPR_LIST): Strengthen return type from rtx to
21729         rtx_expr_list *.
21730         (remove_free_EXPR_LIST_node): Likewise for param.
21731         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
21732         from rtx to rtx_expr_list *.
21733         * sched-int.h (struct deps_desc): Strengthen fields
21734         "pending_read_mems" and "pending_write_mems" from rtx to
21735         rtx_expr_list *.
21736
21737         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
21738         rtx to rtx_expr_list *.
21739         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
21740         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
21741         rtx_expr_list **.
21742         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
21743         from rtx to rtx_expr_list *.
21744         * loop-iv.c (simplify_using_initial_values): Strengthen local
21745         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
21746         "pnote_next" from rtx * to rtx_expr_list **.
21747         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
21748         param "exprp" from rtx * to rtx_expr_list **.
21749         (add_insn_mem_dependence): Strengthen local "mem_list" from
21750         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
21751         to rtx_expr_list *.
21752         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
21753         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
21754         param "old_mems_p" from rtx * to rtx_expr_list **.
21755         * var-tracking.c (struct adjust_mem_data): Strengthen field
21756         "side_effects" from rtx to rtx_expr_list *.
21757         (adjust_insn): Replace NULL_RTX with NULL when assigning to
21758         rtx_expr_list *.
21759         (prepare_call_arguments): Likewise.
21760
21761 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21762
21763         * function.h (struct rtl_data): Strengthen field
21764         "x_stack_slot_list" from rtx to rtx_expr_list *.
21765
21766         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
21767         when assigning to stack_slot_list.
21768
21769 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21770
21771         * function.h (struct rtl_data): Strengthen field
21772         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
21773         * rtl.h (remove_node_from_expr_list): Strengthen second param from
21774         rtx * to rtx_expr_list **.
21775
21776         * cfgbuild.c (make_edges): In loop over
21777         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
21778         rtx_expr_list *, and use methods of the latter class to clarify
21779         the code.
21780         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
21781         rtx_expr_list *, and use methods of the latter class to clarify
21782         the code.
21783         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
21784         * reload1.c (set_initial_label_offsets): Likewise for local "x".
21785         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
21786         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
21787         to rtx_expr_list *.  Use methods of the latter class to clarify
21788         the code.
21789
21790 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21791
21792         * function.h (struct expr_status): Strengthen field
21793         "x_forced_labels" from rtx to rtx_expr_list *.
21794
21795         * cfgbuild.c (make_edges): Split local "x" into two locals,
21796         strengthening one from rtx to rtx_expr_list *, and using methods
21797         of said class.
21798         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
21799         loop over forced_labels, introduce strengthen it from rtx to
21800         rtx_expr_list *, using methods to clarify the code.
21801         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
21802         to rtx_expr_list *, using methods of said class to clarify the
21803         code.
21804         * reload1.c (set_initial_label_offsets): Split local "x" into two
21805         per-loop variables, strengthening the first from rtx to
21806         rtx_expr_list * and using methods.
21807
21808 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21809
21810         * coretypes.h (class rtx_expr_list): Add forward declaration.
21811         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
21812         * gengenrtl.c (special_rtx): Add EXPR_LIST.
21813         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
21814         invariant: GET_CODE (X) == EXPR_LIST.
21815         (is_a_helper <rtx_expr_list *>::test): New.
21816         (rtx_expr_list::next): New.
21817         (rtx_expr_list::element): New.
21818         (gen_rtx_EXPR_LIST): New.
21819
21820 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21821
21822         * varasm.c (mark_constants): Convert a GET_CODE check into a
21823         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
21824         Use methods of rtx_sequence to clarify the code.
21825
21826 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21827
21828         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
21829         local "seq" via a checked cast, and use methods of rtx_sequence
21830         to simplify the code.
21831
21832 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21833
21834         * resource.c (mark_referenced_resources): Strengthen local
21835         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
21836         using methods of rtx_sequence to clarify the code.
21837         (find_dead_or_set_registers): Within the switch statement, convert
21838         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
21839         the JUMP_P handling, introduce another local "seq", adding a
21840         checked cast to rtx_sequence *.  In both cases, use methods of
21841         rtx_sequence to clarify the code.
21842         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
21843         via a checked cast, and use methods of rtx_sequence to simplify
21844         the code.
21845
21846 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21847
21848         * reorg.c (redundant_insn): In two places in the function, replace
21849         a check of GET_CODE with a dyn_cast, introducing local "seq", and
21850         usings methods of rtx_sequence to clarify the code.
21851
21852 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21853
21854         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
21855         local "seq" with a checked cast, and use methods of rtx_sequence
21856         to clarify the code.
21857
21858 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21859
21860         * function.c (contains): Introduce local "seq" for PATTERN (insn),
21861         with a checked cast, in the region for where we know it's a
21862         SEQUENCE.  Use methods of rtx_sequence.
21863
21864 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21865
21866         * final.c (get_attr_length_1): Replace GET_CODE check with a
21867         dyn_cast, introducing local "seq" and the use of methods of
21868         rtx_sequence.
21869         (shorten_branches): Likewise, introducing local "body_seq".
21870         Strengthen local "inner_insn" from rtx to rtx_insn *.
21871         (reemit_insn_block_notes): Replace GET_CODE check with a
21872         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
21873         Use methods of rtx_sequence.
21874         (final_scan_insn): Likewise, introducing local "seq" for when
21875         "body" is known to be a SEQUENCE, using its methods.
21876
21877 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21878
21879         * except.c (can_throw_external): Strengthen local "seq" from rtx
21880         to rtx_sequence *.  Use methods of rtx_sequence.
21881         (insn_nothrow_p): Likewise.
21882
21883 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21884
21885         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
21886         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
21887         Use methods of rtx_sequence.
21888         (scan_trace): Likewise for local "pat".
21889
21890 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21891
21892         * coretypes.h (class rtx_sequence): Add forward declaration.
21893         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
21894         invariant: GET_CODE (X) == SEQUENCE.
21895         (is_a_helper <rtx_sequence *>::test): New.
21896         (is_a_helper <const rtx_sequence *>::test): New.
21897         (rtx_sequence::len): New.
21898         (rtx_sequence::element): New.
21899         (rtx_sequence::insn): New.
21900
21901 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21902
21903         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
21904         rtx_insn_list **.
21905         (alloc_INSN_LIST): Strengthen return type from rtx to
21906         rtx_insn_list *.
21907         (copy_INSN_LIST): Likewise for return type and param.
21908         (concat_INSN_LIST): Likewise for both params and return type.
21909         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
21910         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
21911         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
21912         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
21913
21914         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
21915         "implicit_sets", "control_uses", "clobbers" from rtx to
21916         rtx_insn_list *.
21917         (struct deps_desc): Likewise for fields "pending_read_insns",
21918         "pending_write_insns", "pending_jump_insns",
21919         "last_pending_memory_flush", "last_function_call",
21920         "last_function_call_may_noreturn", "sched_before_next_call",
21921         "sched_before_next_jump".
21922         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
21923         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
21924
21925         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
21926         from rtx to rtx_insn_list *.
21927         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
21928         rtx_insn_list *.
21929
21930         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
21931         to rtx_insn_list **.
21932         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
21933         rtx_insn_list *.
21934         (queue_insn): Likewise for local "link".
21935         (struct haifa_saved_data): Strengthen field "insn_queue" from
21936         rtx * to rtx_insn_list **.
21937         (save_backtrack_point): Update allocation of save->insn_queue to
21938         reflect the strengthening of elements from rtx to rtx_insn_list *.
21939         (queue_to_ready): Strengthen local "link" from rtx to
21940         rtx_insn_list *; use methods "next" and "insn" when traversing the
21941         list.
21942         (early_queue_to_ready): Likewise for locals "link", "next_link",
21943         "prev_link".
21944         (schedule_block): Update allocation of insn_queue to reflect the
21945         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
21946         local "link" from rtx to rtx_insn_list *, and use methods when
21947         working it.
21948         (add_to_speculative_block): Strengthen locals "twins" and
21949         "next_node" from rtx to rtx_insn_list *, and use methods when
21950         working with them.  Strengthen local "twin" from rtx to
21951         rtx_insn *, eliminating a checked cast.
21952         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
21953         from rtx to rtx_insn_list *, and use methods when working with
21954         them.
21955
21956         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
21957         from rtx to rtx_insn_list *, adding a checked cast.
21958         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
21959         rtx_insn_list **.
21960         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
21961         "newlink" from rtx to rtx_insn_list *.  Strengthen local
21962         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
21963         from rtx to rtx_insn *.
21964         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
21965         from rtx to rtx_insn_list *.  Use methods of the latter class.
21966         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
21967         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
21968         (remove_free_INSN_LIST_node): Strengthen return type and local
21969         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
21970         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
21971         rtx_insn_list *, using "insn" method.
21972
21973         * sched-deps.c (add_dependence_list):  Strengthen param "list"
21974         from rtx to rtx_insn_list *, and use methods when working with it.
21975         (add_dependence_list_and_free):  Strengthen param "listp" from
21976         rtx * to rtx_insn_list **.
21977         (remove_from_dependence_list): Strenghten param "listp" from rtx *
21978         to rtx_insn_list **, and use methods when working with *listp.
21979         (remove_from_both_dependence_lists): Strengthen param "listp" from
21980         rtx * to rtx_insn_list **
21981         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
21982         to rtx_insn_list **.  Eliminate local "link", in favor of two new
21983         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
21984         respectively.
21985         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
21986         by introducing local "cond_deps".
21987         (remove_from_deps): Strengthen param "insn" from rtx to
21988         rtx_insn *.
21989
21990         * sched-rgn.c (concat_insn_mem_list): Strengthen param
21991         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
21992         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
21993         Use methods of rtx_insn_list.
21994
21995         * store-motion.c (struct st_expr): Strengthen fields
21996         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
21997         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
21998         rtx_insn_list *.
21999         (find_moveable_store): Split out "tmp" into multiple more-tightly
22000         scoped locals.  Use methods of rtx_insn_list *.
22001         (compute_store_table): Strengthen local "tmp" from rtx to
22002         rtx_insn *.  Use methods of rtx_insn_list *.
22003
22004 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22005
22006         * coretypes.h (class rtx_insn_list): Add forward declaration.
22007         * rtl.h (class rtx_insn_list): New subclass of rtx_def
22008         (is_a_helper <rtx_insn_list *>::test): New.
22009         (rtx_insn_list::next): New.
22010         (rtx_insn_list::insn): New.
22011         (gen_rtx_INSN_LIST): Add prototype.
22012         * emit-rtl.c (gen_rtx_INSN_LIST): New.
22013         * gengenrtl.c (special_rtx): Add INSN_LIST.
22014
22015 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22016
22017         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
22018         "prev" from rtx to rtx_insn *.
22019
22020 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22021
22022         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
22023         functions.  Require merely an rtx for now, not an rtx_insn *.
22024         (BLOCK_FOR_INSN): Likewise.
22025         (INSN_LOCATION): Likewise.
22026         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
22027
22028 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22029
22030         * rtl.h (PATTERN): Convert this macro into a pair of inline
22031         functions, for now, requiring const_rtx and rtx.
22032
22033 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22034
22035         * target.def (unwind_emit): Strengthen param "insn" from rtx to
22036         rtx_insn *.
22037         (final_postscan_insn): Likewise.
22038         (adjust_cost): Likewise.
22039         (adjust_priority): Likewise.
22040         (variable_issue): Likewise.
22041         (macro_fusion_pair_p): Likewise.
22042         (dfa_post_cycle_insn): Likewise.
22043         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
22044         (first_cycle_multipass_issue): Likewise.
22045         (dfa_new_cycle): Likewise.
22046         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
22047         (speculate_insn): Likewise for param "insn".
22048         (gen_spec_check): Likewise for params "insn" and "label".
22049         (get_insn_spec_ds): Likewise for param "insn".
22050         (get_insn_checked_ds): Likewise.
22051         (dispatch_do): Likewise.
22052         (dispatch): Likewise.
22053         (cannot_copy_insn_p): Likewise.
22054         (invalid_within_doloop): Likewise.
22055         (legitimate_combined_insn): Likewise.
22056         (needed): Likewise.
22057         (after): Likewise.
22058
22059         * doc/tm.texi: Automatically updated to reflect changes to
22060         target.def.
22061
22062         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
22063         working with insn.
22064         (schedule_block): Likewise.
22065         (sched_init): Likewise.
22066         (sched_speculate_insn): Strengthen param "insn" from rtx to
22067         rtx_insn *.
22068         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
22069         working with insn.
22070         * hooks.c (hook_bool_rtx_true): Rename to...
22071         hook_bool_rtx_insn_true): ...this, and strengthen first param from
22072         rtx to rtx_insn *.
22073         (hook_constcharptr_const_rtx_null): Rename to...
22074         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
22075         first param from const_rtx to const rtx_insn *.
22076         (hook_bool_rtx_int_false): Rename to...
22077         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
22078         param from rtx to rtx_insn *.
22079         (hook_void_rtx_int): Rename to...
22080         (hook_void_rtx_insn_int): ...this, and strengthen first param from
22081         rtx to rtx_insn *.
22082
22083         * hooks.h (hook_bool_rtx_true): Rename to...
22084         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
22085         rtx to rtx_insn *.
22086         (hook_bool_rtx_int_false): Rename to...
22087         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
22088         param from rtx to rtx_insn *.
22089         (hook_void_rtx_int): Rename to...
22090         (hook_void_rtx_insn_int): ...this, and strengthen first param from
22091         rtx to rtx_insn *.
22092         (hook_constcharptr_const_rtx_null): Rename to...
22093         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
22094         first param from const_rtx to const rtx_insn *.
22095
22096         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
22097         and local "prev" from rtx to rtx_insn *.
22098
22099         * sched-int.h (sched_speculate_insn): Strengthen first param from
22100         rtx to rtx_insn *.
22101
22102         * sel-sched.c (create_speculation_check): Likewise for local "label".
22103         * targhooks.c (default_invalid_within_doloop): Strengthen param
22104         "insn" from const_rtx to const rtx_insn *.
22105         * targhooks.h (default_invalid_within_doloop): Strengthen param
22106         from const_rtx to const rtx_insn *.
22107
22108         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
22109         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
22110
22111         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
22112         "insn".
22113         (arc_invalid_within_doloop): Likewise, with const.
22114
22115         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
22116         (arm_cannot_copy_insn_p): Likewise for param "insn".
22117         (arm_unwind_emit): Likewise.
22118
22119         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
22120         "dep_insn".
22121
22122         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
22123         (c6x_variable_issue): Likewise.  Removed now-redundant checked
22124         cast.
22125         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
22126
22127         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
22128         Likewise for param "insn".
22129         (epiphany_mode_after): Likewise.
22130         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
22131         params "insn", "dep_insn".
22132         (epiphany_mode_needed): Likewise for param "insn".
22133         (epiphany_mode_after): Likewise.
22134
22135         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
22136         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22137         (ix86_avx_u128_mode_needed): Likewise.
22138         (ix86_i387_mode_needed): Likewise.
22139         (ix86_mode_needed): Likewise.
22140         (ix86_avx_u128_mode_after): Likewise.
22141         (ix86_mode_after): Likewise.
22142         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
22143         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
22144         (ix86_adjust_priority): Likewise for param "insn".
22145         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
22146         (do_dispatch): Likewise.
22147         (has_dispatch): Likewise.
22148         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
22149
22150         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
22151         reflect renaming of default hook implementation from
22152         hook_constcharptr_const_rtx_null to
22153         hook_constcharptr_const_rtx_insn_null.
22154         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
22155         rtx to rtx_insn *.
22156         (ia64_variable_issue): Likewise for param "insn".
22157         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
22158         (ia64_dfa_new_cycle): Likewise.
22159         (ia64_get_insn_spec_ds): Likewise.
22160         (ia64_get_insn_checked_ds): Likewise.
22161         (ia64_speculate_insn): Likewise.
22162         (ia64_gen_spec_check): Likewise for params "insn", "label".
22163         (ia64_asm_unwind_emit): Likewise for param "insn".
22164
22165         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
22166
22167         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
22168         "insn", "def_insn".
22169         (m68k_sched_variable_issue): Likewise for param "insn".
22170
22171         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
22172         "def_insn".
22173
22174         * config/microblaze/microblaze.c (microblaze_adjust_cost):
22175         Likewise for params "insn", "dep".
22176
22177         * config/mips/mips.c (mips_adjust_cost): Likewise.
22178         (mips_variable_issue): Likewise for param "insn".
22179         (mips_final_postscan_insn): Likewise.
22180
22181         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
22182         for params "insn", "dep".
22183
22184         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
22185         "dep_insn".
22186         (pa_adjust_priority): Likewise for param "insn".
22187
22188         * config/picochip/picochip.c (picochip_sched_adjust_cost):
22189         Likewise for params "insn", "dep_insn".
22190
22191         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
22192         param "insn".
22193         (rs6000_variable_issue): Likewise.
22194         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
22195         (rs6000_debug_adjust_cost): Likewise.
22196         (rs6000_adjust_priority): Likewise for param "insn".
22197         (rs6000_use_sched_lookahead_guard): Likewise.
22198         (get_next_active_insn): Likewise for return type and both params.
22199         (redefine_groups): Likewise for params "prev_head_insn", "tail"
22200         and locals "insn", "next_insn".
22201         (pad_groups): Likewise.
22202
22203         * config/s390/s390.c (s390_adjust_priority): Likewise for param
22204         "insn".
22205         (s390_cannot_copy_insn_p): Likewise.
22206         (s390_sched_variable_issue): Likewise for third param, eliminating
22207         checked cast.
22208         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
22209         default hook implementation from hook_constcharptr_const_rtx_null
22210         to hook_constcharptr_const_rtx_insn_null.
22211
22212         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
22213         from rtx to rtx_insn *.
22214         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
22215         (sh_variable_issue): Likewise for param "insn".
22216         (sh_dfa_new_cycle): Likewise.
22217         (sh_mode_needed): Likewise.
22218         (sh_mode_after): Likewise.
22219
22220         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
22221         params "insn", "dep_insn".
22222         (hypersparc_adjust_cost): Likewise.
22223         (sparc_adjust_cost): Likewise.
22224
22225         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
22226         param, eliminated checked cast.
22227         (spu_sched_adjust_cost): Likewise for first and third params.
22228
22229         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
22230         params "insn" and "dep_insn" from rtx to rtx_insn *.
22231
22232         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
22233
22234 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22235
22236         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
22237         (set_is_load_p): ...this, updating to work on a SET pattern rather
22238         than an insn.
22239         (is_store_insn): Rename to...
22240         (set_is_store_p): ...this, updating to work on a SET pattern
22241         rather than an insn.
22242         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
22243         top of function to where it is needed.  Rewrite the bogus
22244         condition that checks for "insn" and "dep" being PARALLEL to
22245         instead use single_set, introducing locals "insn_set" and
22246         "dep_set".  Given that we only ever returned "cost" for a non-pair
22247         of SETs, bail out early if we don't have a pair of SET.
22248         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
22249         use the new locals "insn_set" and "dep_set", and update calls to
22250         is_load_insn and is_store_insn to be calls to set_is_load_p and
22251         set_is_store_p.
22252
22253 2014-08-27  Guozhi Wei  <carrot@google.com>
22254
22255         PR target/62262
22256         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
22257         amount before using it.
22258
22259 2014-08-27  Richard Biener  <rguenther@suse.de>
22260
22261         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
22262         get_maxval_strlen inside a more useful API.
22263         (gimple_fold_builtin_with_strlen): Remove and fold into ...
22264         (gimple_fold_builtin): ... caller.
22265         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
22266         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
22267         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
22268         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
22269         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
22270         gimple_fold_builtin_sprintf): Adjust to compute maxval
22271         themselves.
22272
22273 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
22274
22275         PR other/62248
22276         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
22277
22278 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22279             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22280             Anna Tikhonova  <anna.tikhonova@intel.com>
22281             Ilya Tocar  <ilya.tocar@intel.com>
22282             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22283             Ilya Verbin  <ilya.verbin@intel.com>
22284             Kirill Yukhin  <kirill.yukhin@intel.com>
22285             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22286
22287         * config/i386/sse.md
22288         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
22289         Use `concat_tg_mode' attribute to determine asm register size.
22290
22291 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22292             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22293             Anna Tikhonova  <anna.tikhonova@intel.com>
22294             Ilya Tocar  <ilya.tocar@intel.com>
22295             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22296             Ilya Verbin  <ilya.verbin@intel.com>
22297             Kirill Yukhin  <kirill.yukhin@intel.com>
22298             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22299
22300         * config/i386/sse.md
22301         (define_mode_iterator VI48_AVX512VL): New.
22302         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
22303         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
22304         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
22305         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22306         with VI1): Change mode iterator.
22307         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22308         with VI_ULOADSTORE_BW_AVX512VL): New.
22309         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22310         with VI_ULOADSTORE_F_AVX512VL): Ditto.
22311         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22312         with VI1): Change mode iterator.
22313         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22314         with VI_ULOADSTORE_BW_AVX512VL): New.
22315         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22316         with VI_ULOADSTORE_F_AVX512VL): Ditto.
22317         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22318         with VI1): Change mode iterator.
22319         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22320         with VI_ULOADSTORE_BW_AVX512VL): New.
22321         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22322         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
22323         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
22324         (define_insn "<avx512>_storedqu<mode>_mask" with
22325         VI48_AVX512VL): New.
22326         (define_insn "<avx512>_storedqu<mode>_mask" with
22327         VI12_AVX512VL): Ditto.
22328
22329 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22330             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22331             Anna Tikhonova  <anna.tikhonova@intel.com>
22332             Ilya Tocar  <ilya.tocar@intel.com>
22333             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22334             Ilya Verbin  <ilya.verbin@intel.com>
22335             Kirill Yukhin  <kirill.yukhin@intel.com>
22336             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22337
22338         * config/i386/sse.md
22339         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
22340         (define_mode_iterator VI48_AVX512BW): New.
22341         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
22342         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
22343         with VI48_AVX2_48_AVX512F): New.
22344         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
22345         with VI2_AVX512VL): Ditto.
22346
22347 2014-08-27  Richard Biener  <rguenther@suse.de>
22348
22349         PR middle-end/62239
22350         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
22351         (fold_builtin_3): Do not fold strcat_chk here.
22352         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
22353         from builtins.c.
22354         (gimple_fold_builtin): Fold strcat_chk here.
22355
22356 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
22357
22358         * dwarf2out.h (dwarf2out_decl): Remove prototype.
22359         * dwarf2out.c (dwarf2out_decl): Make static.
22360
22361 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
22362
22363         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
22364
22365 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22366
22367         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
22368         from rtx to rtx_insn *.
22369         (cselib_lookup_from_insn): Likewise for final param.
22370         (cselib_subst_to_values_from_insn): Likewise.
22371         (cselib_add_permanent_equiv): Likewise.
22372
22373         * cselib.c (cselib_current_insn): Likewise for this variable.
22374         (cselib_subst_to_values_from_insn): Likewise for param "insn".
22375         (cselib_lookup_from_insn): Likewise.
22376         (cselib_add_permanent_equiv): Likewise for param "insn" and local
22377         "save_cselib_current_insn".
22378         (cselib_process_insn): Replace use of NULL_RTX with NULL.
22379
22380         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
22381         from rtx to rtx_insn *.
22382
22383 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22384
22385         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
22386         rtx_insn *.
22387
22388 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22389
22390         * df.h (df_dump_insn_problem_function): Strengthen first param of
22391         this callback from const_rtx to const rtx_insn *.
22392         (struct df_insn_info): Strengthen field "insn" from rtx to
22393         rtx_insn *.
22394         (DF_REF_INSN): Eliminate this function, reinstating the older
22395         macro definition.
22396         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
22397         (df_reg_defined): Likewise.
22398         (df_find_use): Likewise.
22399         (df_reg_used): Likewise.
22400         (df_dump_insn_top): Strengthen param 1 from const_rtx to
22401         const rtx_insn *.
22402         (df_dump_insn_bottom): Likewise.
22403         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
22404         (df_insn_debug_regno): Likewise.
22405         (debug_df_insn): Likewise.
22406         (df_rd_simulate_one_insn): Likewise for param 2.
22407         (df_word_lr_simulate_defs): Likewise for param 1.
22408         (df_word_lr_simulate_uses): Likewise.
22409         (df_md_simulate_one_insn): Likewise for param 2.
22410         (df_simulate_find_noclobber_defs): Likewise for param 1.
22411         (df_simulate_find_defs): Likewise.
22412         (df_simulate_defs): Likewise.
22413         (df_simulate_uses): Likewise.
22414         (df_simulate_one_insn_backwards): Likewise for param 2.
22415         (df_simulate_one_insn_forwards): Likewise.
22416         (df_uses_create): Likewise for param 2.
22417         (df_insn_create_insn_record): Likewise for param 1.
22418         (df_insn_delete): Likewise.
22419         (df_insn_rescan): Likewise.
22420         (df_insn_rescan_debug_internal): Likewise.
22421         (df_insn_change_bb): Likewise.
22422         (df_notes_rescan): Likewise.
22423         * rtl.h (remove_death): Likewise for param 2.
22424         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
22425         const rtx_insn *.
22426         * sched-int.h (reemit_notes): Strengthen param from rtx to
22427         rtx_insn *.
22428         * valtrack.h (propagate_for_debug): Likewise for param 1.
22429
22430         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
22431         local "tmp_rtx" from const_rtx to const rtx_insn *.
22432         * combine.c (remove_death): Strengthen param "insn" from rtx to
22433         rtx_insn *.
22434         (move_deaths): Likewise for local "where_dead".
22435         * cse.c (delete_trivially_dead_insns): Introduce local
22436         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
22437         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
22438         rtx_insn *.
22439         (df_reg_defined): Likewise.
22440         (df_find_use): Likewise.
22441         (df_reg_used): Likewise.
22442         (df_dump_insn_problem_data): Strengthen param "insn" from
22443         const_rtx to const rtx_insn *.
22444         (df_dump_insn_top): Likewise.
22445         (df_dump_insn_bottom): Likewise.
22446         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
22447         (df_insn_debug_regno): Likewise.
22448         (debug_df_insn): Likewise.
22449         (DF_REF_INSN): Delete.
22450         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
22451         from rtx to rtx_insn *.
22452         (df_chain_insn_top_dump): Strengthen param "insn" from
22453         const_rtx to const rtx_insn *.
22454         (df_chain_insn_bottom_dump): Likewise.
22455         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
22456         rtx_insn *.
22457         (df_word_lr_simulate_uses): Likewise.
22458         (df_print_note): Likewise.
22459         (df_remove_dead_and_unused_notes): Likewise.
22460         (df_set_unused_notes_for_mw): Likewise.
22461         (df_set_dead_notes_for_mw): Likewise.
22462         (df_create_unused_note): Likewise.
22463         (df_simulate_find_defs): Likewise.
22464         (df_simulate_find_uses): Likewise.
22465         (df_simulate_find_noclobber_defs): Likewise.
22466         (df_simulate_defs): Likewise.
22467         (df_simulate_uses): Likewise.
22468         (df_simulate_one_insn_backwards): Likewise.
22469         (df_simulate_one_insn_forwards): Likewise.
22470         (df_md_simulate_one_insn): Likewise.
22471         * df-scan.c (df_uses_create): Likewise.
22472         (df_insn_create_insn_record): Likewise.
22473         (df_insn_delete): Likewise.
22474         (df_insn_rescan): Likewise.
22475         (df_insn_rescan_debug_internal): Likewise.
22476         (df_insn_change_bb): Likewise.
22477         (df_notes_rescan): Likewise.
22478         (df_refs_add_to_chains): Likewise.
22479         (df_insn_refs_verify): Likewise.
22480         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
22481         when invoking df_insn_delete.
22482         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
22483         (set_unique_reg_note): Add checked cast.
22484         * final.c (cleanup_subreg_operands): Likewise.
22485         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
22486         "insn" from rtx to rtx_insn *.
22487         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
22488         "last" from rtx to rtx_insn *.
22489         * ira-emit.c (change_regs_in_insn): New function.
22490         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
22491         Invoke change_regs_in_insn rather than change_regs.
22492         * ira.c (update_equiv_regs): Strengthen locals "insn",
22493         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
22494         for_each_rtx_in_insn rather than for_each_rtx.
22495         * recog.c (confirm_change_group): Add checked casts.
22496         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
22497         Add checked cast.
22498         (peep2_fill_buffer): Add checked cast.
22499         * rtlanal.c (remove_note): Likewise.
22500         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
22501         locals "next" "end" from rtx to rtx_insn *.
22502
22503 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22504
22505         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
22506         to rtx_insn *.
22507         (struct reg_use_data): Likewise for field "insn".
22508         (insn_cost): Likewise for param.
22509         (real_insn_for_shadow): Likewise for return type and param.
22510         (increase_insn_priority): Likewise for param 1.
22511         (debug_dependencies): Likewise for both params.
22512
22513         * haifa-sched.c (insn_delay): Likewise for param "insn".
22514         (real_insn_for_shadow): Likewise for return type and param "insn".
22515         (update_insn_after_change): Likewise for param "insn".
22516         (recompute_todo_spec): Likewise for param "next" and locals "pro",
22517         "other".
22518         (insn_cost): Likewise for param "insn".
22519         (increase_insn_priority): Likewise.
22520         (calculate_reg_deaths): Likewise.
22521         (setup_insn_reg_pressure_info): Likewise.
22522         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
22523         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
22524         (model_recompute): Likewise.
22525         (must_restore_pattern_p): Likewise for param "next".
22526         (model_excess_cost): Likewise for param "insn".
22527         (queue_remove): Likewise.
22528         (adjust_priority): Likewise for param "prev".
22529         (update_register_pressure): Likewise for param "insn".
22530         (setup_insn_max_reg_pressure): Likewise for local "insn".
22531         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
22532         (model_add_to_schedule): Likewise.
22533         (model_reset_queue_indices): Likewise for local "insn".
22534         (unschedule_insns_until): Strengthen local "recompute_vec" from
22535         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
22536         "con" from rtx to rtx_insn *.
22537         (restore_last_backtrack_point): Likewise for both locals "x". Add
22538         checked casts.
22539         (estimate_insn_tick): Likewise for param "insn".
22540         (commit_schedule): Likewise for params "prev_head", "tail" and
22541         local "x".
22542         (verify_shadows): Likewise for locals "i1", "i2".
22543         (dump_insn_stream): Likewise for params "head", "tail" and locals
22544         "next_tail", "insn".
22545         (schedule_block): Likewise for locals "insn", "x".  Add a checked
22546         cast.
22547         (fix_inter_tick): Likewise for params "head", "tail".
22548         (create_check_block_twin): Likewise for local "jump".
22549         (haifa_change_pattern): Likewise for param "insn".
22550         (haifa_speculate_insn): Likewise.
22551         (dump_new_block_header): Likewise for params "head", "tail".
22552         (fix_jump_move): Likewise for param "jump".
22553         (move_block_after_check): Likewise.
22554         (sched_init_insn_luid): Likewise for param "insn".
22555         (sched_init_luids): Likewise for local "insn".
22556         (insn_luid): Likewise for param "insn".
22557         (init_h_i_d): Likewise.
22558         (haifa_init_h_i_d): Likewise for local "insn".
22559         (haifa_init_insn): Likewise for param "insn".
22560         * sched-deps.c (add_dependence): Likewise for local "real_pro",
22561         "other".
22562         (create_insn_reg_use): Likewise for param "insn".
22563         (setup_insn_reg_uses): Likewise.  Add a checked cast.
22564         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
22565         "tail" from rtx to rtx_insn *.
22566         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
22567         "insn", "next_tail".
22568
22569 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22570
22571         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
22572         from rtx to rtx_insn *.
22573         (model_add_to_schedule): Likewise for locals "start", "end",
22574         "iter".
22575
22576 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22577
22578         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
22579         rtx_insn *.
22580         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
22581         "to" and locals "insn", "next", "copy".  Remove now-redundant
22582         checked cast.
22583
22584 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22585
22586         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
22587         rtx_insn * and param 4 from rtx * to rtx_insn **.
22588         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
22589         param 2 from rtx * to rtx_insn **.
22590
22591         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
22592         rtx_insn * and final param from rtx * to rtx_insn **.
22593
22594         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
22595         from rtx to rtx_insn *.
22596         (try_head_merge_bb): Likewise for both locals named "move_upto".
22597         * df-problems.c (can_move_insns_across): Likewise for params
22598         "from", "to", "across_from", "across_to" and locals "insn",
22599         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
22600         rtx_insn **.
22601         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
22602         from rtx to rtx_insn *.
22603         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
22604         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
22605         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
22606         rtx_insn *.
22607         (noce_try_abs): Likewise.
22608         (noce_get_condition): Likewise for param "jump".  Strengthen param
22609         "earliest" from rtx * to rtx_insn **.
22610         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
22611         rtx_insn *.
22612         (find_cond_trap): Likewise.
22613         (dead_or_predicable): Likewise for local "earliest".
22614         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
22615         checked cast.
22616         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
22617         and local "prev".  Strengthen param "earliest" from rtx * to
22618         rtx_insn **.
22619         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
22620         Strengthen param "earliest" from rtx * to rtx_insn **.
22621
22622 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22623
22624         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
22625         "to" and local "insn" from rtx to rtx_insn *.
22626
22627 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22628
22629         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
22630         from rtx to rtx_insn *.
22631         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
22632         (code_motion_path_driver): Likewise for local "last_insn".
22633         (simplify_changed_insns): Likewise for local "insn".
22634
22635 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22636
22637         * rtl.h (push_to_sequence): Strengthen param from rtx to
22638         rtx_insn *.
22639         (push_to_sequence2): Likewise for both params.
22640         (delete_insns_since): Likewise for param.
22641         (reorder_insns_nobb): Likewise for all three params.
22642         (set_new_first_and_last_insn): Likewise for both params.
22643
22644         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
22645         rtx_insn *.  Remove now-redundant cast.
22646         (set_last_insn): Likewise.
22647
22648         * builtins.c (expand_builtin_return): Strengthen local
22649         "call_fusage" from rtx to rtx_insn *.
22650         * cfgrtl.c (create_basic_block_structure): Likewise for local
22651         "after".
22652         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
22653         "first", "last" and local "insn".
22654         (delete_insns_since): Likewise for param "from".
22655         (reorder_insns_nobb): Likewise for params "from", "to", "after"
22656         and local "x".
22657         (push_to_sequence): Likewise for param "first" and local "last".
22658         (push_to_sequence2): Likewise for params "first" and "last".
22659         * lra.c (emit_add3_insn): Likewise for local "last".
22660         (lra_emit_add): Likewise.
22661         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
22662         "last_insn".
22663         (process_address_1): Likewise for locals "insn", last".
22664         * modulo-sched.c (ps_first_note): Likewise for return type.
22665         * optabs.c (expand_binop_directly): Likewise for param "last".
22666
22667 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22668
22669         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
22670         to rtx_insn*.
22671         * emit-rtl.c (get_last_insn_anywhere): Likewise.
22672
22673 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22674
22675         * function.h (struct sequence_stack): Strengthen fields "first"
22676         and "last" from rtx to rtx_insn *.
22677         (struct emit_status): Likewise for fields "x_first_insn" and
22678         "x_last_insn".
22679
22680         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
22681         (set_first_insn): Add checked cast.
22682         (get_last_insn): Remove now-redundant checked cast.
22683         (set_last_insn): Add checked cast.
22684
22685         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
22686         "saved_first" and "saved_last" from rtx to rtx_insn *.
22687
22688 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22689
22690         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
22691         (unlink_insn_chain): Strengthen both params from rtx to
22692         rtx_insn *.
22693
22694         * cfgrtl.c (cfg_layout_function_header): Likewise for this
22695         variable.
22696         (unlink_insn_chain): Likewise for params "first" and "last".
22697         Remove now-redundant checked cast.
22698         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
22699         (fixup_reorder_chain): Strengthen local "insn" from rtx to
22700         rtx_insn *.
22701         * emit-rtl.c (link_insn_into_chain): Likewise for all three
22702         params.
22703         (add_insn): Likewise for param "insn" and local "prev".
22704         (add_insn_after_nobb): Likewise for both params and local "next".
22705         (add_insn_before_nobb): Likewise for both params and local "prev".
22706         (add_insn_after): Rename param "after" to "uncast_after",
22707         introducing local "after" with another checked cast.
22708         (add_insn_before): Rename params "insn" and "before", giving them
22709         "uncast_" prefixes, adding the old names back using checked casts.
22710         (emit_note_after): Likewise for param "after".
22711         (emit_note_before): Likewise for param "before".
22712         (emit_label): Add a checked cast.
22713
22714 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22715
22716         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
22717         "insn" from rtx to rtx_insn *.
22718
22719         * cselib.c (cselib_record_sets_hook): Likewise.
22720
22721         * var-tracking.c (add_with_sets): Likewise, renaming back from
22722         "uncast_insn" to "insn" and eliminating the checked cast from rtx
22723         to rtx_insn *.
22724
22725 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22726
22727         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
22728         and "header_" from rtx to rtx_insn *.
22729         (struct basic_block_d): Likewise for field "head_" within "x"
22730         field of union basic_block_il_dependent.
22731         (BB_HEAD): Drop function...
22732         (SET_BB_HEAD): ...and this function in favor of...
22733         (BB_HEAD): ...reinstate macro.
22734         (BB_END): Drop function...
22735         (SET_BB_END): ...and this function in favor of...
22736         (BB_END): ...reinstate macro.
22737         (BB_HEADER): Drop function...
22738         (SET_BB_HEADER): ...and this function in favor of...
22739         (BB_HEADER): ...reinstate macro.
22740
22741         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
22742         (fix_crossing_unconditional_branches): Likewise.
22743         * caller-save.c (save_call_clobbered_regs): Likewise.
22744         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
22745         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
22746         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
22747         (merge_blocks_move_successor_nojumps): Likewise.
22748         (outgoing_edges_match): Update use of for_each_rtx to
22749         for_each_rtx_in_insn.
22750         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
22751         (expand_gimple_cond): Likewise.
22752         (expand_gimple_tailcall): Likewise.
22753         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
22754         SET_BB_END.
22755         (construct_exit_block): Drop use of SET_BB_END.
22756         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
22757         rtx_insn *.
22758         (delete_insn): Rename param "insn" to "uncast_insn", introducing
22759         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
22760         SET_BB_HEAD and SET_BB_END.
22761         (create_basic_block_structure): Drop use of SET_BB_HEAD and
22762         SET_BB_END.
22763         (rtl_delete_block): Drop use of SET_BB_HEAD.
22764         (rtl_split_block): Drop use of SET_BB_END.
22765         (emit_nop_for_unique_locus_between): Likewise.
22766         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
22767         (block_label): Drop use of SET_BB_HEAD.
22768         (fixup_abnormal_edges): Drop use of SET_BB_END.
22769         (record_effective_endpoints): Drop use of SET_BB_HEADER.
22770         (relink_block_chain): Likewise.
22771         (fixup_reorder_chain): Drop use of SET_BB_END.
22772         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
22773         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
22774         rtx_insn **.  Drop use of SET_BB_HEADER.
22775         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
22776         SET_BB_HEAD.
22777         (BB_HEAD): Delete this function.
22778         (SET_BB_HEAD): Likewise.
22779         (BB_END): Likewise.
22780         (SET_BB_END): Likewise.
22781         (BB_HEADER): Likewise.
22782         (SET_BB_HEADER): Likewise.
22783         * emit-rtl.c (add_insn_after):  Rename param "insn" to
22784         "uncast_insn", adding a new local "insn" and a checked cast to
22785         rtx_insn *.  Drop use of SET_BB_END.
22786         (remove_insn): Strengthen locals "next" and "prev" from rtx to
22787         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
22788         (reorder_insns): Drop use of SET_BB_END.
22789         (emit_insn_after_1): Strengthen param "first" and locals "last",
22790         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
22791         (emit_pattern_after_noloc): Add checked cast.
22792         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
22793         (restore_other_notes): Likewise.
22794         (move_insn): Likewise.
22795         (sched_extend_bb): Likewise.
22796         (fix_jump_move): Likewise.
22797         * ifcvt.c (noce_process_if_block): Likewise.
22798         (dead_or_predicable): Likewise.
22799         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
22800         * reg-stack.c (change_stack): Drop use of SET_BB_END.
22801         * sel-sched-ir.c (sel_move_insn): Likewise.
22802         * sel-sched.c (move_nop_to_previous_block): Likewise.
22803
22804         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
22805         SET_BB_END.
22806         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
22807
22808 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22809
22810         * basic-block.h (create_basic_block_structure): Strengthen params
22811         1 "head" and 2 "end" from rtx to rtx_insn *.
22812         * cfgrtl.c (create_basic_block_structure): Likewise.
22813         (rtl_create_basic_block): Update casts from void * to rtx to
22814         rtx_insn *, so that we can pass them as rtx_insn * to
22815         create_basic_block_structure.
22816         * sel-sched-ir.c (sel_create_basic_block): Likewise.
22817
22818 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22819
22820         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
22821         rtx_insn **.
22822         (check_for_inc_dec): Strengthen param "insn" from rtx to
22823         rtx_insn *.
22824
22825         * cselib.h (cselib_process_insn): Likewise.
22826
22827         * cselib.c (cselib_record_sets): Likewise.
22828         (cselib_process_insn): Likewise.
22829
22830         * dse.c (struct insn_info): Likewise for field "insn".
22831         (check_for_inc_dec_1): Likewise for local "insn".
22832         (check_for_inc_dec): Likewise for param "insn".
22833         (scan_insn): Likewise.
22834         (dse_step1): Likewise for local "insn".
22835
22836         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
22837         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
22838
22839 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22840
22841         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
22842         from rtx to rtx_insn *.
22843         (DEP_PRO): Delete this function and...
22844         (SET_DEP_PRO): ...this function in favor of...
22845         (DEP_PRO): ...reinstate this macro.
22846         (DEP_CON): Delete this function and...
22847         (SET_DEP_CON): ...this function in favor of...
22848         (DEP_CON): ...reinstate this old macro.
22849         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
22850         (init_dep): Likewise.
22851         (set_priorities): Likewise for both params.
22852         (sd_copy_back_deps): Likewise for params 1 and 2.
22853
22854         * haifa-sched.c (priority): Likewise for param "insn" and local
22855         "next".
22856         (set_priorities): Likewise for params "head" and "tail" and local
22857         "insn".
22858         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
22859         local "consumer".
22860         (add_to_speculative_block): Add a checked cast.
22861         (create_check_block_twin): Drop use of SET_DEP_CON.
22862         (add_jump_dependencies): Strengthen params "insn" and "jump" from
22863         rtx to rtx_insn *.
22864
22865         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
22866         Drop use of SET_DEP_PRO
22867         (init_dep): Strengthen params "pro" and "con" from rtx to
22868         rtx_insn *.
22869         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
22870         use of SET_DEP_CON.
22871         (DEP_PRO): Delete.
22872         (DEP_CON): Delete.
22873         (SET_DEP_PRO): Delete.
22874         (SET_DEP_CON): Delete.
22875
22876 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22877
22878         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
22879         from rtx to rtx_insn *.
22880         (VINSN_INSN_RTX): Eliminate rvalue function and...
22881         (SET_VINSN_INSN): ...lvalue function in favor of...
22882         (VINSN_INSN_RTX): reinstate this old macro.
22883
22884         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
22885         in favor of VINSN_INSN_RTX.
22886         (VINSN_INSN_RTX): Delete this function.
22887         (SET_VINSN_INSN_RTX): Likewise.
22888
22889 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22890
22891         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
22892         (BND_TO): Delete this function and...
22893         (SET_BND_TO): ...this functions in favor of...
22894         (BND_TO): ...reinstating this macro.
22895         (struct _fence): Strengthen field "executing_insns" from
22896         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
22897         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
22898         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
22899         and param "insn" from rtx to insn_t.
22900         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
22901         rtx_insn *.
22902
22903         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
22904         vec<rtx_insn *> .
22905         (rtx_vec_t): Likewise.
22906         (struct sched_deps_info_def): Strengthen param of "start_insn"
22907         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
22908         "note_mem_dep" callback and first param of "note_dep" callback.
22909
22910         * haifa-sched.c (add_to_speculative_block): Strengthen param
22911         "insn" from rtx to rtx_insn *.
22912         (clear_priorities): Likewise.
22913         (calc_priorities): Likewise for local "insn".
22914
22915         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
22916         Remove redundant checked cast.
22917         (haifa_note_mem_dep): Likewise for param "pending_insn".
22918         (haifa_note_dep): Likewise for param "elem".
22919         (note_mem_dep): Likewise for param "e".
22920         (sched_analyze_1): Add checked casts.
22921         (sched_analyze_2): Likewise.
22922
22923         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
22924         from rtx to rtx_insn *.
22925         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
22926         from vec<rtx> * to vec<rtx_insn *> *.
22927
22928         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
22929         scaffolding.
22930         (flist_add): Strengthen param "executing_insns" from
22931         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
22932         (advance_deps_context): Remove now-redundant checked cast.
22933         (init_fences): Replace uses of NULL_RTX with NULL.
22934         (merge_fences): Strengthen params "last_scheduled_insn" and
22935         "sched_next" from rtx to rtx_insn * and "executing_insns" from
22936         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
22937         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
22938         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
22939         an instruction, rather than doing double-duty as a pattern.
22940         (return_nop_to_pool): Update for change of insn_t.
22941         (deps_init_id): Remove now-redundant checked cast.
22942         (struct sched_scan_info_def): Strengthen param of "init_insn"
22943         callback from rtx to insn_t.
22944         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
22945         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
22946         NULL.
22947         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
22948         "end" from rtx to rtx_insn *.
22949         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
22950         (rtx insn_rtx, bool force_unique_p)
22951         (BND_TO): Delete function.
22952         (SET_BND_TO): Delete function.
22953
22954         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
22955         rtx to rtx_insn *.
22956         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
22957         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
22958         rtx to rtx_insn *.
22959         (undo_transformations): Likewise for param "insn".
22960         (update_liveness_on_insn): Likewise.
22961         (compute_live_below_insn): Likewise for param "insn" and local
22962         "succ".
22963         (update_data_sets): Likewise for param "insn".
22964         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
22965         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
22966         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
22967         rtx_insn *.
22968         (move_cond_jump): Likewise for param "insn".
22969         (move_cond_jump): Drop use of SET_BND_TO.
22970         (compute_av_set_on_boundaries): Likewise.
22971         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
22972         (update_and_record_unavailable_insns): Strengthen local "bb_end"
22973         from rtx to rtx_insn *.
22974         (maybe_emit_renaming_copy): Likewise for param "insn".
22975         (maybe_emit_speculative_check): Likewise.
22976         (handle_emitting_transformations): Likewise.
22977         (remove_insn_from_stream): Likewise.
22978         (code_motion_process_successors): Strengthen local "succ" from rtx
22979         to insn_t.
22980
22981 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22982
22983         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
22984         ilist_t, not _xlist_t;
22985         (ILIST_INSN): Define in terms of new union field "insn".
22986         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
22987         _XLIST_NEXT.
22988         (struct _list_node): Add new field "insn" to the union, of type
22989         insn_t.
22990         (ilist_add): Replace macro with an inline function, requiring an
22991         insn_t.
22992         (ilist_remove): Define this macro directly in terms of
22993         _list_remove, rather than indirectly via _xlist_remove.
22994         (ilist_clear): Likewise, in terms of _list_clear rather than
22995         _xlist_clear.
22996         (ilist_is_in_p): Replace macro with an inline function, requiring
22997         an insn_t.
22998         (_list_iter_cond_insn): New function.
22999         (ilist_iter_remove): Define this macro directly in terms of
23000         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
23001         (ilist_iterator): Define directly in terms of _list_iterator
23002         rather than indirectly through _xlist_iterator.
23003         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
23004         than in terms of _FOR_EACH_X.
23005         (FOR_EACH_INSN_1): Likewise.
23006
23007 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
23008
23009         PR target/60606
23010         PR target/61330
23011         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
23012         DECL_HARD_REGISTER and return for invalid register specifications.
23013         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
23014         DECL_HARD_REGISTER, call expand_one_error_var.
23015         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
23016         CC_REGNUM with non-MODE_CC modes.
23017         (arm_regno_class): Return NO_REGS for PC_REGNUM.
23018
23019 2014-08-26  Marek Polacek  <polacek@redhat.com>
23020
23021         PR c/61271
23022         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
23023
23024 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
23025
23026         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
23027         qi cost; add di cost.
23028         (cortexa57_addrcost_table): Likewise.
23029
23030 2014-08-26  Marek Polacek  <polacek@redhat.com>
23031
23032         PR c/61271
23033         * expr.c (is_aligning_offset): Remove logical not.
23034
23035 2014-08-26  Marek Polacek  <polacek@redhat.com>
23036
23037         PR c/61271
23038         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
23039         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
23040
23041 2014-08-26  Richard Biener  <rguenther@suse.de>
23042
23043         PR tree-optimization/62175
23044         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
23045         expand possibly trapping operations.
23046
23047 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23048
23049         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
23050         "insn" from rtx to rtx_insn *.
23051         (permute_load): Likewise for param "insn".
23052         (permute_store): Likewise.
23053         (handle_special_swappables): Likewise for local "insn".
23054         (replace_swap_with_copy): Likewise for locals "insn" and
23055         "new_insn".
23056         (rs6000_analyze_swaps): Likewise for local "insn".
23057
23058 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23059
23060         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
23061         to rtx_insn *.
23062
23063 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23064
23065         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
23066         "note_list" from rtx to rtx_insn *.
23067         (BB_NOTE_LIST): Replace this function and...
23068         (SET_BB_NOTE_LIST): ...this function with...
23069         (BB_NOTE_LIST): ...the former macro implementation.
23070
23071         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
23072         local "from_start" from rtx to rtx_insn *.  Strengthen param
23073         "to_endp" from rtx * to rtx_insn **.
23074
23075         * haifa-sched.c (concat_note_lists): Likewise.
23076         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
23077         BB_NOTE_LIST.
23078         (sel_restore_notes): Likewise.
23079         (move_bb_info): Likewise.
23080         (BB_NOTE_LIST): Delete this function.
23081         (SET_BB_NOTE_LIST): Delete this function.
23082         * sel-sched.c (create_block_for_bookkeeping): Eliminate
23083         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
23084
23085 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23086
23087         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
23088         from rtx * to rtx_insn **.
23089         (reorder2): Likewise.
23090         (dependencies_evaluation_hook): Strengthen params "head", "tail"
23091         from rtx to rtx_insn *.
23092
23093         * doc/tm.texi: Update mechanically for above change to target.def.
23094
23095         * sched-int.h (note_list): Strengthen this variable from rtx to
23096         rtx_insn *.
23097         (remove_notes): Likewise for both params.
23098         (restore_other_notes): Likewise for return type and first param.
23099         (struct ready_list): Strengthen field "vec" from rtx * to
23100         rtx_insn **.
23101         (struct dep_replacement): Strenghten field "insn" from rtx to
23102         rtx_insn *.
23103         (struct deps_desc): Likewise for fields "last_debug_insn",
23104         "last_args_size".
23105         (struct haifa_sched_info): Likewise for callback field
23106         "can_schedule_ready_p"'s param, for first param of "new_ready"
23107         callback field, for both params of "rank" callback field, for
23108         first field of "print_insn" callback field (with a const), for
23109         both params of "contributes_to_priority" callback, for param
23110         of "insn_finishes_block_p" callback, for fields "prev_head",
23111         "next_tail", "head", "tail", for first param of "add_remove_insn"
23112         callback, for first param of "begin_schedule_ready" callback, for
23113         both params of "begin_move_insn" callback, and for second param
23114         of "advance_target_bb" callback.
23115         (add_dependence): Likewise for params 1 and 2.
23116         (sched_analyze): Likewise for params 2 and 3.
23117         (deps_analyze_insn): Likewise for param 2.
23118         (ready_element): Likewise for return type.
23119         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
23120         (try_ready): Strenghten param from rtx to rtx_insn *.
23121         (sched_emit_insn): Likewise for return type.
23122         (record_delay_slot_pair): Likewise for params 1 and 2.
23123         (add_delay_dependencies): Likewise for param.
23124         (contributes_to_priority): Likewise for both params.
23125         (find_modifiable_mems): Likewise.
23126
23127         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
23128         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
23129         "first_older_only_insn" from rtx to rtx_insn *.
23130         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
23131         rtx_insn **.
23132
23133         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
23134         "last_scheduled_iter0" from rtx to rtx_insn *.
23135         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
23136         (c6x_sched_reorder_1): Strengthen param "ready" and locals
23137         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
23138         "insn" from rtx to rtx_insn *.
23139         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
23140         rtx_insn **.
23141         (c6x_sched_reorder2): Strengthen param "ready" and locals
23142         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
23143         "insn" from rtx to rtx_insn *.
23144         (c6x_variable_issue):  Add a checked cast when assigning from insn
23145         to ss.last_scheduled_iter0.
23146         (split_delayed_branch): Strengthen param "insn" and local "i1"
23147         from rtx to rtx_insn *.
23148         (split_delayed_nonbranch): Likewise.
23149         (undo_split_delayed_nonbranch): Likewise for local "insn".
23150         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
23151         "entry_after", "end_packet", "head_insn", "tail_insn",
23152         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
23153         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
23154         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
23155         but add a checked cast on loop->start_label.  Consolidate calls to
23156         avoid assigning result of gen_spkernel to "insn", now an
23157         rtx_insn *.
23158
23159         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
23160         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
23161         rtx to rtx_insn *.
23162         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
23163         rtx_insn **.  Strengthen locals "top", "next" from rtx to
23164         rtx_insn *.
23165         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
23166         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
23167         (add_parameter_dependencies): Strengthen params "call", "head" and
23168         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
23169         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
23170         (add_dependee_for_func_arg): Likewise for param "arg" and local
23171         "insn".
23172         (ix86_dependencies_evaluation_hook): Likewise for params "head",
23173         "tail" and locals "insn", "first_arg".
23174
23175         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
23176         for params "head", "tail" and locals "insn", "next", "next_tail".
23177         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
23178         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
23179         "insn", "lowest", "highest" from rtx to rtx_insn *.
23180         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
23181         rtx_insn **.
23182         (ia64_sched_reorder2): Likewise.
23183
23184         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
23185         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
23186         from rtx * to rtx_insn **.
23187         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
23188         rtx_insn **.
23189         (mep_print_sched_insn): Strengthen param "insn" from rtx to
23190         rtx_insn *.
23191         (mep_sched_reorder): Strengthen param "ready" from rtx * to
23192         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
23193         to rtx_insn *.
23194
23195         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
23196         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
23197         to rtx_insn *.
23198         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
23199         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
23200         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
23201         rtx_insn **.
23202         (vr4130_reorder): Likewise.
23203         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
23204         rtx to rtx_insn *.
23205         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
23206         rtx_insn **.
23207         (mips_sched_reorder): Likewise.
23208         (mips_sched_reorder2): Likewise.
23209
23210         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
23211
23212         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
23213         Strengthen local "tmp" from rtx to rtx_insn *.
23214         (rs6000_sched_reorder2): Likewise.
23215
23216         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
23217         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
23218         (s390_sched_reorder): Strengthen param "ready" from rtx * to
23219         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
23220
23221         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
23222         "tmp2" from rtx to rtx_insn *.
23223         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
23224         Strengthen local "insn" from rtx to rtx_insn *.
23225         (ready_reorder): Strengthen param "ready" from rtx * to
23226         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
23227         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
23228         (sh_reorder2): Likewise.
23229
23230         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
23231         local "insn" from rtx to rtx_insn *.
23232
23233         * haifa-sched.c (note_list): Strengthen this variable from rtx to
23234         rtx_insn *.
23235         (scheduled_insns): Strengthen this variable from vec<rtx> to
23236         vec<rtx_insn *>.
23237         (set_modulo_params): Likewise for locals "i1", "i2".
23238         (record_delay_slot_pair): Likewise for params "i1", "i2".
23239         (add_delay_dependencies): Likewise for param "insn".
23240         (cond_clobbered_p): Likewise.
23241         (recompute_todo_spec): Likewise for local "prev".
23242         (last_scheduled_insn): Likewise for this variable.
23243         (nonscheduled_insns_begin): Likewise.
23244         (model_set_excess_costs): Strengthen param "insns" from rtx * to
23245         rtx_insn **.
23246         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
23247         rtx_insn *.
23248         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
23249         Strengthen local "insn" from rtx to rtx_insn *.
23250         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
23251         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
23252         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
23253         (ready_remove_first): Likewise for return type and local "t".
23254         (ready_element): Likewise for return type.
23255         (ready_remove): Likewise for return type and local "t".
23256         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
23257         (check_clobbered_conditions): Strengthen local "x" from rtx to
23258         rtx_insn *, adding a checked cast.
23259         (schedule_insn): Likewise for param "insn".
23260         (remove_notes): Likewise for params "head", "tail" and locals
23261         "next_tail", "insn", "next".
23262         (struct haifa_saved_data): Likewise for fields
23263         "last_scheduled_insn", "nonscheduled_insns_begin".
23264         (save_backtrack_point): Update for change to field "vec" of
23265         struct ready_list.
23266         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
23267         rtx_insn **.
23268         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
23269         from rtx to rtx_insn *
23270         (resolve_dependencies): Strengthen param "insn" from rtx to
23271         rtx_insn *
23272         (restore_other_notes): Likewise for return type, for param "head"
23273         and local "note_head".
23274         (undo_all_replacements): Likewise for local "insn".
23275         (first_nonscheduled_insn): Likewise for return type and local "insn".
23276         (queue_to_ready): Likewise for local "insn", adding checked casts.
23277         (early_queue_to_ready): Likewise for local "insn".
23278         (debug_ready_list_1): Strengthen local "p" from rtx * to
23279         rtx_insn **.
23280         (move_insn): Strengthen param "insn" and local "note" from rtx to
23281         rtx_insn *
23282         (insn_finishes_cycle_p): Likewise for param "insn".
23283         (max_issue): Likewise for local "insn".
23284         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
23285         to rtx_insn **.
23286         (commit_schedule): Strengthen param "prev_head" and local "insn"
23287         from rtx to rtx_insn *
23288         (prune_ready_list): Likewise for local "insn".
23289         (schedule_block): Likewise for locals "prev_head", "head", "tail",
23290         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
23291         (set_priorities): Likewise for local "prev_head".
23292         (try_ready): Likewise for param "next".
23293         (fix_tick_ready): Likewise.
23294         (change_queue_index): Likewise.
23295         (sched_extend_ready_list): Update for change to field "vec" of
23296         struct ready_list.
23297         (generate_recovery_code): Strengthen param "insn" from rtx to
23298         rtx_insn *.
23299         (begin_speculative_block): Likewise.
23300         (create_check_block_twin): Likewise for param "insn" and locals
23301         "label", "check", "twin".  Introduce local "check_pat" to avoid
23302         "check" being used as a plain rtx before being used as an insn.
23303         (fix_recovery_deps): Add a checked cast to rtx_insn * when
23304         extracting elements from ready_list.
23305         (sched_remove_insn): Strengthen param "insn" from rtx to
23306         rtx_insn *.
23307         (sched_emit_insn): Likewise for return type.
23308         (ready_remove_first_dispatch): Likewise for return type and local
23309         "insn".
23310
23311         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
23312
23313         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
23314         const rtx_insn *.
23315
23316         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
23317         from rtx to rtx_insn *.
23318         (add_dependence_list): Likewise for param "insn".  Add a checked
23319         cast.
23320         (add_dependence_list_and_free): Strengthen param "insn" from rtx
23321         to rtx_insn *.  Strengthen param "list_p" from rtx * to
23322         rtx_insn **.
23323         (chain_to_prev_insn): Strengthen param "insn" and locals
23324         "prec_nonnote", "i" from rtx to rtx_insn *.
23325         (flush_pending_lists): Likewise for param "insn".
23326         (cur_insn): Likewise for this variable.
23327         (haifa_start_insn): Add a checked cast.
23328         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
23329         (sched_analyze_reg): Likewise for param "insn".
23330         (sched_analyze_1): Likewise.
23331         (sched_analyze_2): Likewise.  Add checked casts.
23332         (sched_analyze_insn): Likewise.  Also for local "prev".
23333         (deps_analyze_insn): Likewise for param "insn".
23334         (sched_analyze): Likewise for params "head", "tail" and local "insn".
23335         (add_dependence_1): Likewise for params "insn", "elem".
23336         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
23337         (parse_add_or_inc): Likewise for param "insn".
23338         (find_inc): Likewise for local "inc_cand".
23339         (find_modifiable_mems): Likewise for params "head", "tail" and
23340         locals "insn", "next_tail".
23341
23342         * sched-ebb.c (init_ready_list): Likewise for local "insn".
23343         (begin_schedule_ready): Likewise for param "insn".
23344         (begin_move_insn): Likewise for params "insn" and "last".
23345         (ebb_print_insn): Strengthen param "insn" from const_rtx to
23346         const rtx_insn *.
23347         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
23348         (ebb_contributes_to_priority): Likewise for params "next", "insn".
23349         (ebb_add_remove_insn): Likewise for param "insn".
23350         (advance_target_bb): Likewise.
23351
23352         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
23353         "insn".
23354         (check_live): Likewise for param "insn".
23355         (init_ready_list): Likewise for local "insn".
23356         (can_schedule_ready_p): Likewise for param "insn".
23357         (begin_schedule_ready): Likewise.
23358         (new_ready): Likewise for param "next".
23359         (rgn_print_insn): Likewise for param "insn".
23360         (rgn_rank): Likewise for params "insn1", "insn2".
23361         (contributes_to_priority): Likewise for params "next", "insn".
23362         (rgn_insn_finishes_block_p): Likewise for param "insn".
23363         (add_branch_dependences): Likewise for params "head", "tail" and
23364         locals "insn", "last".
23365         (rgn_add_remove_insn): Likewise for param "insn".
23366         (advance_target_bb): Likewise.
23367
23368         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
23369         const_rtx to const rtx_insn *.
23370
23371         * sel-sched-dump.h (sel_print_insn): Likewise.
23372
23373         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
23374         (deps_init_id): Likewise.
23375
23376         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
23377         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
23378         rtx_insn **.
23379
23380 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23381
23382         * output.h (final_start_function): Strengthen param 1 from rtx to
23383         rtx_insn *.
23384
23385         * final.c (final_start_function): Likewise, renaming back from
23386         "uncast_first" to "first", and dropping the checked cast from rtx
23387         to rtx_insn *.
23388
23389 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23390
23391         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
23392         * final.c (final): Likewise.  Rename param back from
23393         "uncast_first" to "first" and eliminate the checked cast from rtx
23394         to rtx_insn *.
23395
23396 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23397
23398         * output.h (shorten_branches): Strengthen param from rtx to
23399         rtx_insn *.
23400
23401         * final.c (shorten_branches): Likewise, renaming param back from
23402         "uncast_first" to "first", and dropping the checked cast from rtx
23403         to rtx_insn *.
23404
23405         * genattr.c (gen_attr): Likewise when writing out the prototype of
23406         shorten_branches.
23407
23408 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23409
23410         * sched-int.h (struct haifa_sched_info): Strengthen fields
23411         "prev_head" and "next_tail" from rtx to rtx_insn *.
23412
23413 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23414
23415         * rtl.h (rtx_jump_table_data::get_labels): New method.
23416         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
23417         with use of the new rtx_jump_table_data::get_labels method.
23418         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
23419         to rtx_jump_table_data *.  Simplify by using get_labels method.
23420         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
23421         a dyn_cast, introducing local "table", using it to replace
23422         label-lookup logic with a get_labels method call.
23423         (patch_jump_insn): Simplify using get_labels method.
23424         * dwarf2cfi.c (create_trace_edges): Likewise.
23425         * rtlanal.c (label_is_jump_target_p): Likewise.
23426
23427 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23428
23429         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
23430         to rtx_insn *.
23431
23432         * emit-rtl.c (unshare_all_rtl_1): Likewise.
23433         (unshare_all_rtl_again): Likewise, also for local "p".
23434
23435 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23436
23437         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
23438         to rtx_insn *.
23439         * cfgrtl.c (delete_insn_and_edges): Likewise.
23440
23441 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23442
23443         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
23444         from rtx to rtx_insn *.
23445
23446         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
23447
23448 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23449
23450         * function.c (thread_prologue_and_epilogue_insns): Likewise for
23451         locals "returnjump", "epilogue_end", "insn", "next".
23452
23453         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
23454         "returnjump" from rtx * to rtx_insn **.
23455         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
23456
23457 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23458
23459         * basic-block.h (struct edge_def). Strengthen "r" within
23460         union edge_def_insns from rtx to rtx_insn *.
23461
23462         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
23463         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
23464         rtx_insn *.
23465         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
23466         from rtx to rtx_insn *.
23467         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
23468         rtx_insn *.
23469         * postreload-gcse.c (reg_killed_on_edge): Likewise.
23470         (reg_used_on_edge): Likewise.
23471         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
23472         (gt_pch_nx): New overload for rtx_insn *&.
23473         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
23474         from rtx to rtx_insn *.
23475
23476 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23477
23478         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
23479         from rtx to rtx_insn *.
23480         (BB_FOOTER): Replace function with access macro.
23481         (SET_BB_FOOTER): Delete.
23482
23483         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
23484         with BB_FOOTER.
23485         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
23486         (emit_barrier_after_bb): Likewise.
23487         (record_effective_endpoints): Likewise.
23488         (relink_block_chain): Likewise.
23489         (fixup_fallthru_exit_predecessor): Likewise.
23490         (cfg_layout_duplicate_bb): Likewise.
23491         (cfg_layout_split_block): Likewise.
23492         (cfg_layout_delete_block): Likewise.
23493         (cfg_layout_merge_blocks): Likewise.
23494         (BB_FOOTER): Delete function.
23495         (SET_BB_FOOTER): Delete function.
23496         * combine.c (update_cfg_for_uncondjump): Replace uses of
23497         SET_BB_FOOTER with BB_FOOTER.
23498
23499 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23500
23501         * except.h (struct eh_landing_pad_d): Strengthen field
23502         "landing_pad" from rtx to rtx_code_label *.
23503
23504         * except.c (sjlj_emit_dispatch_table): Likewise for param
23505         "dispatch_label"
23506         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
23507
23508 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23509
23510         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
23511         first param from rtx to rtx_insn *.
23512         * config/xtensa/xtensa.c (struct machine_function): Likewise for
23513         field "set_frame_ptr_insn".
23514         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
23515         "csend" from rtx to rtx_code_label *.
23516         (xtensa_expand_atomic): Likewise for local "csloop".
23517         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
23518         rtx_insn *.
23519         (xtensa_call_tls_desc): Likewise for return type and locals
23520         "call_insn", "insns".
23521         (xtensa_legitimize_tls_address): Likewise for local "insns".
23522         (xtensa_expand_prologue): Likewise for locals "insn", "first".
23523
23524 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23525
23526         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
23527         first param from rtx to rtx_insn *.
23528         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
23529         "insn".
23530
23531 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23532
23533         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
23534         Strengthen param 1 from rtx to rtx_insn *.
23535         (tilepro_output_cbranch): Likewise.
23536         (tilepro_adjust_insn_length): Likewise.
23537         (tilepro_final_prescan_insn): Likewise for sole param.
23538
23539         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
23540         Likewise for local "last".
23541         (cbranch_predicted_p): Likewise for param "insn".
23542         (tilepro_output_simple_cbranch_with_opcode): Likewise.
23543         (tilepro_output_cbranch_with_opcode): Likewise.
23544         (tilepro_output_cbranch): Likewise.
23545         (frame_emit_load): Likewise for return type and locals "seq",
23546         "insn".
23547         (emit_sp_adjust): Likewise for return type and local "insn".
23548         (tilepro_expand_epilogue): Likewise for locals "last_insn",
23549         "insn".
23550         (tilepro_adjust_insn_length): Likewise for param "insn".
23551         (next_insn_to_bundle): Likewise for return type and params
23552         "r", "end".
23553         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
23554         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
23555         local "new_insns".
23556         (match_addli_pcrel): Likewise for param "insn".
23557         (replace_addli_pcrel): Likewise.
23558         (match_auli_pcrel): Likewise.
23559         (replace_auli_pcrel): Likewise.
23560         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
23561         "next_insn".
23562         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
23563         "queue", "next_queue", "prev".
23564         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
23565         (tilepro_final_prescan_insn): Likewise for param "insn".
23566
23567 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23568
23569         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
23570         Strengthen param 1 from rtx to rtx_insn *.
23571         (tilegx_output_cbranch): Likewise.
23572         (tilegx_adjust_insn_length): Likewise.
23573         (tilegx_final_prescan_insn): Likewise for sole param.
23574
23575         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
23576         or local "last".
23577         (cbranch_predicted_p): Likewise for param "insn".
23578         (tilegx_output_simple_cbranch_with_opcode): Likewise.
23579         (tilegx_output_cbranch_with_opcode): Likewise.
23580         (tilegx_output_cbranch): Likewise.
23581         (frame_emit_load): Likewise for return type.
23582         (set_frame_related_p): Likewise for locals "seq", "insn".
23583         (emit_sp_adjust): Likewise for return type, and for local "insn".
23584         Introduce local "pat" for use in place of "insn" where the latter
23585         isn't an instruction.
23586         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
23587         from rtx to rtx_insn *.
23588         (tilegx_adjust_insn_length): Likewise for param "insn".
23589         (next_insn_to_bundle): Likewise for return type and params "r" and
23590         "end".
23591         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
23592         "end".
23593         (replace_insns): Likewise for params "old_insn", "new_insns".
23594         (replace_mov_pcrel_step1): Likewise for param "insn" and local
23595         "new_insns".
23596         (replace_mov_pcrel_step2): Likewise.
23597         (replace_mov_pcrel_step3): Likewise.
23598         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
23599         "next_insn".
23600         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
23601         "queue", "next_queue", "prev".
23602         (tilegx_output_mi_thunk): Likewise for local "insn".
23603         (tilegx_final_prescan_insn): Likewise for param "insn".
23604
23605 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23606
23607         * config/spu/spu.c (frame_emit_store): Strengthen return type from
23608         rtx to rtx_insn *.
23609         (frame_emit_load): Likewise.
23610         (frame_emit_add_imm): Likewise, also for local "insn".
23611         (spu_expand_prologue): Likewise for local "insn".
23612         (struct spu_bb_info): Likewise for field "prop_jump".
23613         (emit_nop_for_insn): Likewise for param "insn" and local
23614         "new_insn".
23615         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
23616         "hbr_insn".
23617         (spu_emit_branch_hint): Likewise for params "before", "branch" and
23618         locals "hint", "insn".
23619         (get_branch_target): Likewise for param "branch".
23620         (insn_clobbers_hbr): Likewise for param "insn".
23621         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
23622         locals "insn", "before_4", "before_16".
23623         (insert_hbrp): Likewise for local "insn".
23624         (spu_machine_dependent_reorg): Likewise for locals "branch",
23625         "insn", "next", "bbend".
23626         (uses_ls_unit): Likewise for param "insn".
23627         (get_pipe): Likewise.
23628         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
23629         introducing a checked cast.
23630         (spu_sched_adjust_cost): Likewise for params "insn" and
23631         "dep_insn".
23632         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
23633         (spu_sms_res_mii): Likewise.
23634
23635 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23636
23637         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
23638         from rtx to rtx_insn *.
23639         (output_cbranch): Likewise for param 6.
23640         (output_return): Likewise for param 1.
23641         (output_sibcall): Likewise.
23642         (output_v8plus_shift): Likewise.
23643         (output_v8plus_mult): Likewise.
23644         (output_v9branch): Likewise for param 7.
23645         (output_cbcond):  Likewise for param 3.
23646
23647         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
23648         for local "insn".
23649         (sparc_legitimize_pic_address): Likewise.
23650         (sparc_emit_call_insn): Likewise.
23651         (emit_save_or_restore_regs): Likewise.
23652         (emit_window_save): Likewise for return type and local "insn".
23653         (sparc_expand_prologue): Likewise for local "insn".
23654         (sparc_flat_expand_prologue): Likewise.
23655         (output_return): Likewise for param "insn".
23656         (output_sibcall): Likewise for param "insn" and local "delay".
23657         (output_ubranch): Likewise for param "insn".
23658         (output_cbranch): Likewise.
23659         (output_cbcond): Likewise.
23660         (output_v9branch): Likewise.
23661         (output_v8plus_shift): Likewise.
23662         (sparc_output_mi_thunk): Likewise for local "insn".
23663         (get_some_local_dynamic_name): Likewise.
23664         (output_v8plus_mult): Likewise for param "insn".
23665
23666 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23667
23668         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
23669         from rtx to rtx_insn *.
23670         (output_branchy_insn): Likewise for param 3.
23671         (output_far_jump): Likewise for param 1.
23672         (final_prescan_insn): Likewise.
23673         (sh_insn_length_adjustment): Likewise for sole param.
23674
23675         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
23676         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
23677         rtx_code_label *.
23678         (sh_emit_compare_and_set): Likewise for local "lab".
23679         (output_far_jump): Strengthen param "insn" and local "prev" from
23680         rtx to rtx_insn *.
23681         (output_branchy_insn): Likewise for param "insn" and local
23682         "next_insn".
23683         (output_ieee_ccmpeq): Likewise for param "insn".
23684         (struct label_ref_list_d): Strengthen field "label" from rtx to
23685         rtx_code_label *.
23686         (pool_node): Likewise.
23687         (pool_window_label): Likewise for this global.
23688         (add_constant): Likewise for return type and locals "lab", "new_rtx".
23689         (dump_table): Strengthen params "start", "barrier" and local
23690         "scan" from rtx to rtx_insn *.
23691         (broken_move): Likewise for param "insn".
23692         (untangle_mova): Likewise for params "first_mova" and "new_mova".
23693         Strengthen param "first_mova" from rtx * to rtx_insn **.
23694         (mova_p): Likewise for param "insn".
23695         (fixup_mova): Likewise for param "mova".
23696         (find_barrier): Likewise for return type, params "mova" and
23697         "from", and locals "barrier_before_mova", "found_barrier",
23698         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
23699         "label" from rtx to rtx_code_label *.
23700         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
23701         rtx to rtx_insn *.
23702         (sh_reorg): Likewise for locals "link", "scan", "barrier".
23703         (split_branches): Likewise for param "first" and local "insn".
23704         (final_prescan_insn): Likewise for param "insn".
23705         (sequence_insn_p): Likewise for locals "prev", "next".
23706         (sh_insn_length_adjustment): Likewise for param "insn".
23707         (sh_can_redirect_branch): Likewise for local "insn".
23708         (find_r0_life_regions): Likewise for locals "end", "insn".
23709         (sh_output_mi_thunk): Likewise for local "insns".
23710
23711 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23712
23713         * config/score/score.c (score_output_mi_thunk): Strengthen local
23714         "insn" from rtx to rtx_insn *.
23715         (score_prologue): Likewise.
23716
23717 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23718
23719         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
23720         1 from rtx to rtx_insn *.
23721         (s390_emit_jump): Likewise for return type.
23722         (s390_emit_call): Likewise.
23723         (s390_load_got): Likewise.
23724
23725         * config/s390/s390.c (last_scheduled_insn): Likewise for this
23726         variable.
23727         (s390_match_ccmode): Likewise for param "insn".
23728         (s390_emit_jump): Likewise for return type.
23729         (s390_split_branches): Likewise for local "label".
23730         (struct constant): Strengthen field "label" from rtx to
23731         rtx_code_label *.
23732         (struct constant_pool): Likewise for field "label".  Strengthen
23733         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
23734         rtx_insn *.
23735         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
23736         insns.
23737         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
23738         (s390_end_pool): Likewise.
23739         (s390_dump_pool): Likewise for local "insn".
23740         (s390_mainpool_start): Likewise.
23741         (s390_chunkify_start): Likewise.
23742         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
23743         with insns.  Strengthen locals "label", "jump", "barrier", "next",
23744         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
23745         (s390_chunkify_finish): Strengthen local "insn" from rtx to
23746         rtx_insn *.
23747         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
23748         "jump", "label", "next_insn".
23749         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
23750         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
23751         "tbegin_insn".
23752         (s390_load_got): Likewise for return type and local "insns".
23753         (s390_save_gprs_to_fprs): Likewise for local "insn".
23754         (s390_restore_gprs_from_fprs): Likewise.
23755         (pass_s390_early_mach::execute): Likewise.
23756         (s390_emit_prologue): Likewise for local "insns".
23757         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
23758         rtx_code_label *.
23759         (s390_emit_call): Strengthen return type and local "insn" from
23760         rtx to rtx_insn *.
23761         (s390_emit_tpf_eh_return): Likewise for local "insn".
23762         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
23763         "next_insn", introducing locals "s_pat", "rpat" to allow this.
23764         (s390_fix_long_loop_prediction): Likewise for param "insn" and
23765         local "cur_insn".
23766         (s390_non_addr_reg_read_p): Likewise for param "insn".
23767         (find_cond_jump): Likewise for return type and param "insn".
23768         (s390_swap_cmp): Likewise for param "insn".
23769         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
23770         "prev_insn", "next_insn".
23771         (s390_reorg): Likewise for locals "insn", "target".
23772         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
23773         (s390_sched_variable_issue): For now, rename param "insn" to
23774         "uncast_insn", introducing a checked cast.
23775         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
23776         insn.
23777         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
23778         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
23779
23780 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23781
23782         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
23783         param from rtx to rtx_insn *.
23784         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
23785
23786 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23787
23788         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
23789         4 from rtx to rtx_insn *.
23790         (rs6000_final_prescan_insn): Likewise for first param.
23791         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
23792         local "insn".
23793         (rs6000_get_some_local_dynamic_name): Likewise.
23794         (output_cbranch): Likewise for param "insn".
23795         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
23796         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
23797         (rs6000_emit_allocate_stack): Likewise for local "insn".
23798         (load_cr_save): Likewise.
23799         (restore_saved_cr): Likewise.
23800         (restore_saved_lr): Likewise.
23801         (emit_cfa_restores): Likewise.
23802         (rs6000_output_function_epilogue): Likewise for locals "insn" and
23803         "deleted_debug_label".
23804         (rs6000_output_mi_thunk): Likewise for local "insn".
23805         (rs6000_final_prescan_insn): Likewise for param "insn".
23806
23807 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23808
23809         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
23810         Strengthen param "insn" from rtx to rtx_insn *.
23811         * config/picochip/picochip.c (picochip_current_prescan_insn):
23812         Likewise for this variable.
23813         (picochip_final_prescan_insn): Likewise for param "insn".
23814
23815 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23816
23817         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
23818         from rtx to rtx_insn *.
23819         (pa_output_indirect_call): Likewise.
23820         (pa_adjust_insn_length): Likewise.
23821         (pa_attr_length_millicode_call): Likewise.
23822         (pa_attr_length_call): Likewise.
23823         (pa_attr_length_indirect_call): Likewise.
23824
23825         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
23826         "insn".
23827         (pa_attr_length_millicode_call): Likewise.
23828         (pa_attr_length_call): Likewise.
23829         (pa_output_call): Likewise.
23830         (pa_attr_length_indirect_call): Likewise.
23831         (pa_output_indirect_call): Likewise.
23832
23833 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23834
23835         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
23836         Strengthen first param from rtx to rtx_insn *.
23837         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
23838         param "insn".
23839
23840 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23841
23842         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
23843         type from rtx to rtx_insn *.
23844         (mips_expand_call): Likewise.
23845         (mips_adjust_insn_length): Likewise for first param.
23846         (mips_output_conditional_branch): Likewise.
23847         (mips_output_order_conditional_branch): Likewise.
23848         (mips_final_prescan_insn): Likewise.
23849
23850         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
23851         rtx_insn * for the SEQUENCE case.
23852         (SEQ_END): Likewise.
23853         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
23854         (mips_emit_call_insn): Likewise, also for local "insn".
23855         (mips16_gp_pseudo_reg): Likewise for local "scan".
23856         (mips16_build_call_stub): Likewise for return type and for local
23857         "insn".  Introduce a new local "pattern" so that "insn" can indeed
23858         be an insn.
23859         (mips_expand_call): Strengthen return type and local "insn" from
23860         rtx to rtx_insn *.
23861         (mips_block_move_loop): Strengthen local "label" from rtx to
23862         rtx_code_label *.
23863         (mips_expand_synci_loop): Likewise for locals "label",
23864         "end_label".
23865         (mips_set_frame_expr): Strengthen local "insn" from rtx to
23866         rtx_insn *.
23867         (mips16e_collect_argument_saves): Likewise for locals "insn",
23868         "next".
23869         (mips_find_gp_ref): Likewise for param of callback for "pred"
23870         param, and for local "insn".
23871         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
23872         (mips_insn_has_flexible_gp_ref_p): Likewise.
23873         (mips_epilogue_emit_cfa_restores): Likewise for return type and
23874         local "insn".
23875         (mips_epilogue_set_cfa): Likewise for local "insn".
23876         (mips_expand_epilogue): Likewise.
23877         (mips_adjust_insn_length): Likewise for param "insn".
23878         (mips_output_conditional_branch): Likewise.
23879         (mips_output_order_conditional_branch): Likewise.
23880         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
23881         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
23882         "falu2_turn_enabled_insn".
23883         (mips_builtin_branch_and_move): Strengthen locals "true_label",
23884         "done_label" from rtx to rtx_code_label *.
23885         (struct mips16_constant): Likewise for field "label".
23886         (mips16_add_constant): Likewise for return type.
23887         (mips16_emit_constants_1): Strengthen return type and param "insn"
23888         from rtx to rtx_insn *.
23889         (mips16_emit_constants): Likewise for param "insn".
23890         (mips16_insn_length): Likewise.
23891         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
23892         to rtx_code_label *.
23893         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
23894         from rtx to rtx_insn *.
23895         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
23896         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
23897         (r10k_simplify_address): Strengthen param "insn" and local
23898         "def_insn" from rtx to rtx_insn *.
23899         (r10k_safe_address_p): Strengthen param "insn" from rtx to
23900         rtx_insn *.
23901         (r10k_needs_protection_p_1): Update target type of cast of data
23902         from to rtx to rtx_insn *.
23903         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
23904         rtx * to rtx_insn **.
23905         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
23906         rtx_insn *.
23907         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
23908         (mips_call_expr_from_insn): Likewise for param "insn".
23909         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
23910         (mips_find_pic_call_symbol): Likewise for param "insn".
23911         (mips_annotate_pic_calls): Likewise for local "insn".
23912         (mips_sim_insn): Likewise for this variable.
23913         (struct mips_sim): Likewise for field "insn" within elements of
23914         last_set array.
23915         (mips_sim_wait_reg): Likewise for param "insn".
23916         (mips_sim_wait_regs): Likewise.
23917         (mips_sim_wait_units): Likewise.
23918         (mips_sim_wait_insn): Likewise.
23919         (mips_sim_issue_insn): Likewise.
23920         (mips_sim_finish_insn): Likewise.
23921         (mips_seq_time): Likewise for param "seq" and local "insn".
23922         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
23923         locals "first", "second".
23924         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
23925         "last", "last2", "next".
23926         (mips_avoid_hazard): Likewise for params "after", "insn".
23927         (mips_reorg_process_insns): Likewise for locals "insn",
23928         "last_insn", "subinsn", "next_insn".
23929         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
23930         (mips16_split_long_branches): Likewise for locals "insn" "jump",
23931         "jump_sequence".
23932         (mips_output_mi_thunk): Likewise for local "insn".
23933         (mips_final_prescan_insn): Likewise for param "insn".
23934
23935 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23936
23937         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
23938         Strengthen return type and local "insns" from rtx to rtx_insn *.
23939         (microblaze_legitimize_tls_address): Likewise for local "insns".
23940         (microblaze_block_move_loop): Strengthen local "label" from rtx
23941         to rtx_code_label *.
23942         (microblaze_expand_prologue): Strengthen two locals named "insn"
23943         from rtx to rtx_insn *.
23944         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
23945         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
23946         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
23947         to rtx_code_label *.
23948
23949 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23950
23951         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
23952         param from rtx to rtx_insn *.
23953         (mep_reuse_lo): Likewise for third param.
23954         (mep_use_post_modify_p): Likewise for first param.
23955         (mep_core_address_length): Likewise.
23956         (mep_cop_address_length): Likewise.
23957         (mep_final_prescan_insn): Likewise.
23958         (mep_store_data_bypass_p): Likewise for both params.
23959         (mep_mul_hilo_bypass_p): Likewise.
23960         (mep_ipipe_ldc_p): Likewise for param.
23961
23962         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
23963         (mep_rewrite_mult): Likewise.
23964         (mep_rewrite_mulsi3): Likewise.
23965         (mep_rewrite_maddsi3): Likewise.
23966         (mep_reuse_lo_p_1): Likewise.
23967         (mep_reuse_lo_p): Likewise.
23968         (mep_frame_expr): Likewise.
23969         (mep_make_parallel): Likewise for both params.
23970         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
23971         local "insn".
23972         (mep_use_post_modify_p): Likewise for param "insn".
23973         (mep_core_address_length): Likewise.
23974         (mep_cop_address_length): Likewise.
23975         (mep_reg_set_in_function): Likewise for local "insn".
23976         (mep_asm_without_operands_p): Likewise.
23977         (F): Likewise for return type and param "x".
23978         (add_constant): Likewise for local "insn".
23979         (maybe_dead_move): Likewise for return type and local "insn".
23980         (mep_expand_prologue): Likewise for local "insn".
23981         (mep_final_prescan_insn): Likewise for param "insn".
23982         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
23983         "next", "follow", "x".
23984         (mep_insert_repeat_label_last): Likewise for return type, param
23985         "last_insn", and locals "next", "prev".  Strengthen param "label"
23986         from rtx to rtx_code_label *.
23987         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
23988         rtx_insn *.
23989         (struct mep_doloop_end): Likewise for fields "insn" and
23990         "fallthrough".
23991         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
23992         Strengthen local "repeat_label" from rtx to rtx_code_label *.
23993         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
23994         rtx_insn *.
23995         (mep_invert_branch): Likewise for params "insn" and "after".
23996         (mep_reorg_erepeat): Likewise for param "insns" and locals
23997         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
23998         "l" from rtx to rtx_code_label *.
23999         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
24000         from rtx to rtx_insn *.
24001         (mep_reorg_addcombine): Likewise for param "insns" and locals
24002         "i", "n".
24003         (add_sp_insn_p): Likewise for param "insn".
24004         (mep_reorg_noframe): Likewise for param "insns" and locals
24005         "start_frame_insn", "end_frame_insn", "next".
24006         (mep_reorg): Likewise for local "insns".
24007         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
24008         cast.
24009         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
24010         (mep_mul_hilo_bypass_p): Likewise.
24011         (mep_ipipe_ldc_p): Likewise for param "insn".
24012         (mep_make_bundle): Likewise for return type, param "cop" and local
24013         "insn", splitting out the latter into a new local "seq" for when it
24014         is a SEQUENCE rather than an insn.
24015         (core_insn_p): Likewise for param "insn".
24016         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
24017         "last", "first", "note", "prev", "core_insn".
24018
24019 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24020
24021         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
24022         rtx to rtx_insn *.
24023         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
24024         (m68k_final_prescan_insn): Likewise for first param.
24025
24026         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
24027         (m68k_set_frame_related): Likewise for param "insn".
24028         (output_btst): Likewise for param "insn".
24029         (m68k_final_prescan_insn): Likewise.
24030         (m68k_move_to_reg): Likewise for local "insn".
24031         (m68k_call_tls_get_addr): Likewise for local "insns".
24032         (m68k_call_m68k_read_tp): Likewise.
24033         (strict_low_part_peephole_ok): Likewise for param "first_insn".
24034         (m68k_output_mi_thunk): Likewise for local "insn".
24035
24036 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24037
24038         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
24039         first param from rtx to rtx_insn *.
24040         (iq2000_adjust_insn_length): Likewise.
24041         (iq2000_output_conditional_branch): Likewise.
24042         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
24043         "insn" and local "nop_insn".
24044         (iq2000_annotate_frame_insn): Likewise for param "insn".
24045         (iq2000_expand_prologue): Likewise for both locals "insn".
24046         (iq2000_adjust_insn_length): Likewise for param "insn".
24047         (iq2000_output_conditional_branch): Likewise.
24048
24049 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24050
24051         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
24052         "insns" from rtx to rtx_insn *.
24053         (ia64_emit_cond_move): Likewise for locals "insn", "first".
24054         (struct spill_fill_data): Likewise for field "init_after" and for
24055         elements of array field "prev_insn".
24056         (spill_restore_mem): Likewise for locals "insn", "first".
24057         (do_spill): Likewise for local "insn".
24058         (do_restore): Likewise.
24059         (ia64_expand_prologue): Likewise.
24060         (ia64_expand_epilogue): Likewise.
24061         (emit_insn_group_barriers): Likewise for locals "insn",
24062         "last_label".
24063         (emit_all_insn_group_barriers): Likewise for locals "insn",
24064         "last".
24065         (dfa_stop_insn): Likewise for this global.
24066         (dfa_pre_cycle_insn): Likewise.
24067         (ia64_nop): Likewise.
24068         (final_emit_insn_group_barriers): Likewise for locals "insn",
24069         "last".
24070         (emit_predicate_relation_info): Likewise for locals "head", "n",
24071         "insn", "b", "a".
24072         (ia64_reorg): Likewise for local "insn".
24073         (ia64_output_mi_thunk): Likewise.
24074         (expand_vec_perm_interleave_2): Likewise for local "seq".
24075
24076 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24077
24078         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
24079         param 1 "insn" from rtx to rtx_insn *.
24080         (ix86_use_lea_for_mov): Likewise.
24081         (ix86_avoid_lea_for_addr): Likewise.
24082         (ix86_split_lea_for_addr): Likewise.
24083         (ix86_lea_for_add_ok): Likewise.
24084         (ix86_output_call_insn): Likewise.
24085
24086         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
24087         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
24088         (ix86_output_function_epilogue): Likewise for locals "insn",
24089         "deleted_debug_label".
24090         (legitimize_tls_address): Likewise for local "insn".
24091         (get_some_local_dynamic_name): Likewise.
24092         (increase_distance): Likewise for params "prev", "next".
24093         (distance_non_agu_define_in_bb): Likewise for params "insn",
24094         "start" and locals "prev", "next".
24095         (distance_non_agu_define): Likewise for param "insn".
24096         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
24097         locals "next", "prev".
24098         (distance_agu_use): Likewise for param "insn".
24099         (ix86_lea_outperforms): Likewise.
24100         (ix86_ok_to_clobber_flags): Likewise.
24101         (ix86_avoid_lea_for_add): Likewise.
24102         (ix86_use_lea_for_mov): Likewise.
24103         (ix86_avoid_lea_for_addr): Likewise.
24104         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
24105         (ix86_split_lea_for_addr): Likewise for param "insn".
24106         (ix86_lea_for_add_ok): Likewise for param "insn".
24107         (ix86_expand_carry_flag_compare): Likewise for local
24108         "compare_seq".
24109         (ix86_expand_int_movcc): Likewise.
24110         (ix86_output_call_insn): Likewise for param "insn".
24111         (ix86_output_call_insn): Likewise for local "i".
24112         (x86_output_mi_thunk): Introduce local "insn", using it in place
24113         of "tmp" when dealing with insns.
24114         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
24115         "start".
24116         (ix86_pad_returns): Likewise for locals "ret", "prev".
24117         (ix86_count_insn_bb): Likewise for local "insn".
24118         (ix86_pad_short_function): Likewise for locals "ret", "insn".
24119         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
24120         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
24121         (expand_vec_perm_interleave2): Likewise for local "seq".
24122         (expand_vec_perm_vperm2f128_vblend): Likewise.
24123         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
24124         call to for_each_rtx with for_each_rtx_in_insn.
24125
24126 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24127
24128         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
24129         "label" from rtx to rtx_code_label *.
24130         (ix86_expand_prologue): Likewise.
24131         (ix86_expand_split_stack_prologue): Likewise for locals "label",
24132         "varargs_label".
24133         (ix86_split_idivmod): Likewise for locals "end_label" and
24134         "qimode_label".
24135         (ix86_expand_branch): Likewise for local "label2".
24136         (ix86_expand_aligntest): Likewise for return type and local "label".
24137         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
24138         "top_label".
24139         (expand_movmem_epilogue): Likewise for the various locals named
24140         "label".
24141         (expand_setmem_epilogue): Likewise.
24142         (expand_small_movmem_or_setmem): Likewise for local "label".
24143         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
24144         Strengthen param "done_label" from rtx * to rtx_code_label **.
24145         Strengthen locals "loop_label" and "label" from rtx to
24146         rtx_code_label *.
24147         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
24148         Likewise for locals "loop_label", "label".
24149         (ix86_expand_set_or_movmem): Likewise for locals "label",
24150         "jump_around_label", "hot_label".
24151         (ix86_expand_strlensi_unroll_1): Likewise for locals
24152         "align_2_label", align_3_label", "align_4_label", "end_0_label",
24153         "end_2_label".
24154         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
24155         (void ix86_emit_i387_log1p): Likewise for locals "label1",
24156         "label2", "jump_label".
24157         (ix86_expand_sse_compare_and_jump): Likewise for return type and
24158         local "label".
24159         (ix86_expand_lfloorceil): Likewise for local "label".
24160         (ix86_expand_rint): Likewise.
24161         (ix86_expand_floorceildf_32): Likewise.
24162         (ix86_expand_floorceil): Likewise.
24163         (ix86_expand_rounddf_32): Likewise.
24164         (ix86_expand_trunc): Likewise.
24165         (ix86_expand_truncdf_32): Likewise.
24166         (ix86_expand_round): Likewise.
24167
24168 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24169
24170         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
24171         first param from rtx to rtx_insn *.
24172         (h8300_insn_length_from_table): Likewise.
24173         * config/h8300/h8300.c (F): Likewise for return type and param
24174         "x".
24175         (Fpa): Add a checked cast to rtx_insn *.
24176         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
24177         rtx_insn *.
24178         (final_prescan_insn): Likewise for param "insn".
24179         (h8300_binary_length): Likewise.
24180         (h8300_insn_length_from_table): Likewise.
24181
24182 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24183
24184         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
24185         Strengthen first param "insn" from rtx to rtx_insn *.
24186
24187         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
24188         Likewise.
24189         (frame_insn): Likewise for return type.  Introduce local "insn"
24190         for use in place of local "x" for use as an rtx_insn *.
24191         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
24192         (epiphany_expand_prologue): Likewise for local "insn".
24193         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
24194         * config/epiphany/resolve-sw-modes.c
24195         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
24196         "seq".
24197
24198 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24199
24200         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
24201         param from rtx to rtx_insn *.
24202         (c6x_final_prescan_insn): Likewise for first param.
24203
24204         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
24205         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
24206         (c6x_expand_compare): Strengthen local "insns" from rtx to
24207         rtx_insn *.
24208         (c6x_get_unit_specifier): Likewise for param "insn".
24209         (c6x_print_unit_specifier_field): Likewise.
24210         (c6x_final_prescan_insn): Likewise.
24211         (emit_add_sp_const): Likewise for local "insn".
24212         (c6x_expand_prologue): Likewise.
24213
24214 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24215
24216         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
24217         param 1 from rtx to rtx_insn *.
24218         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
24219         the various locals named "insn".
24220         (expand_epilogue_reg_restore): Likewise.
24221         (frame_related_constant_load): Likewise.
24222         (add_to_reg): Likewise.
24223         (emit_link_insn): Likewise.
24224         (do_link): Likewise.
24225         (expand_interrupt_handler_prologue): Likewise.
24226         (branch_dest): Likewise for param "branch".
24227         (asm_conditional_branch): Likewise for param "insn".
24228         (gen_one_bundle): Likewise for elements of param "slot" and local
24229         "t".
24230         (bfin_gen_bundles): Likewise for locals "insn", "next" and
24231         elements of local "slot".
24232         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
24233         "queue", "next_queue", "prev".
24234         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
24235         (add_sched_insns_for_speculation): Likewise for local "insn".
24236
24237 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24238
24239         * config/avr/avr-protos.h (output_movqi): Strengthen first param
24240         from rtx to rtx_insn *.
24241         (output_movhi): Likewise.
24242         (output_movsisf): Likewise.
24243         (avr_out_tstsi): Likewise.
24244         (avr_out_tsthi): Likewise.
24245         (avr_out_tstpsi): Likewise.
24246         (avr_out_compare): Likewise.
24247         (avr_out_compare64): Likewise.
24248         (avr_out_movpsi): Likewise.
24249         (ashlqi3_out): Likewise.
24250         (ashlhi3_out): Likewise.
24251         (ashlsi3_out): Likewise.
24252         (ashrqi3_out): Likewise.
24253         (ashrhi3_out): Likewise.
24254         (ashrsi3_out): Likewise.
24255         (lshrqi3_out): Likewise.
24256         (lshrhi3_out): Likewise.
24257         (lshrsi3_out): Likewise.
24258         (avr_out_ashlpsi3): Likewise.
24259         (avr_out_ashrpsi3): Likewise.
24260         (avr_out_lshrpsi3): Likewise.
24261         (avr_out_fract): Likewise.
24262         (avr_out_sbxx_branch): Likewise.
24263         (avr_out_round): Likewise.
24264         (avr_out_xload): Likewise.
24265         (avr_out_movmem): Likewise.
24266         (adjust_insn_length): Likewise.
24267         (avr_out_lpm): Likewise.
24268         (reg_unused_after): Likewise.
24269         (_reg_unused_after): Likewise.
24270         (avr_jump_mode): Likewise for second param.
24271         (jump_over_one_insn): Likewise for first param.
24272         (avr_final_prescan_insn): Likewise.
24273         (out_shift_with_cnt): Likewise for second param.
24274
24275         * config/avr/avr.c (get_sequence_length): Likewise for param
24276         "insns" and local "insn".
24277         (emit_push_byte): Likewise for local "insn".
24278         (emit_push_sfr): Likewise.
24279         (avr_prologue_setup_frame): Likewise for locals "insn",
24280         "fp_plus_insns", "sp_plus_insns".
24281         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
24282         "sp_plus_insns".
24283         (avr_jump_mode): Likewise for param "insn".
24284         (avr_final_prescan_insn): Likewise.
24285         (avr_find_unused_d_reg): Likewise.
24286         (avr_out_lpm_no_lpmx): Likewise.
24287         (avr_out_lpm): Likewise.
24288         (avr_out_xload): Likewise.
24289         (output_movqi): Likewise.
24290         (output_movhi): Likewise.
24291         (out_movqi_r_mr): Likewise.
24292         (out_movhi_r_mr): Likewise.
24293         (out_movsi_r_mr): Likewise.
24294         (out_movsi_mr_r): Likewise.
24295         (output_movsisf): Likewise.
24296         (avr_out_load_psi): Likewise.
24297         (avr_out_store_psi): Likewise.
24298         (avr_out_movpsi): Likewise.
24299         (out_movqi_mr_r): Likewise.
24300         (avr_out_movhi_mr_r_xmega): Likewise.
24301         (out_movhi_mr_r): Likewise.
24302         (compare_condition): Likewise for param "insn" and local "next".
24303         (compare_sign_p): Likewise for param "insn".
24304         (compare_diff_p): Likewise.
24305         (compare_eq_p): Likewise.
24306         (avr_out_compare): Likewise.
24307         (avr_out_compare64): Likewise.
24308         (avr_out_tsthi): Likewise.
24309         (avr_out_tstpsi): Likewise.
24310         (avr_out_tstsi): Likewise.
24311         (out_shift_with_cnt): Likewise.
24312         (ashlqi3_out): Likewise.
24313         (ashlhi3_out): Likewise.
24314         (avr_out_ashlpsi3): Likewise.
24315         (ashlsi3_out): Likewise.
24316         (ashrqi3_out): Likewise.
24317         (ashrhi3_out): Likewise.
24318         (avr_out_ashrpsi3): Likewise.
24319         (ashrsi3_out): Likewise.
24320         (lshrqi3_out): Likewise.
24321         (lshrhi3_out): Likewise.
24322         (avr_out_lshrpsi3): Likewise.
24323         (lshrsi3_out): Likewise.
24324         (avr_out_fract): Likewise.
24325         (avr_out_round): Likewise.
24326         (avr_adjust_insn_length): Likewise.
24327         (reg_unused_after): Likewise.
24328         (_reg_unused_after): Likewise.
24329         (avr_compare_pattern): Likewise.
24330         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
24331         and locals "branch1", "branch2", "insn2", "jump".
24332         (avr_reorg): Likewise for local "insn".
24333         (avr_2word_insn_p): Likewise for param "insn".
24334         (jump_over_one_insn_p): Likewise.
24335         (avr_out_sbxx_branch): Likewise.
24336         (avr_out_movmem): Likewise.
24337
24338 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24339
24340         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
24341         param from rtx to rtx_insn *.
24342         (thumb1_final_prescan_insn): Likewise.
24343         (thumb2_final_prescan_insn): Likewise.
24344
24345         * config/arm/arm.c (emit_set_insn): Strengthen return type from
24346         rtx to rtx_insn *.
24347         (struct minipool_node): Likewise for field "insn".
24348         (dump_minipool): Likewise for param "scan".
24349         (create_fix_barrier): Likewise for local "from".  Strengthen local
24350         "label" from rtx to rtx_code_label *.
24351         (push_minipool_barrier): Strengthen param "insn" from rtx to
24352         rtx_insn *.
24353         (push_minipool_fix): Likewise.
24354         (note_invalid_constants): Likewise.
24355         (thumb2_reorg): Likewise for local "insn".
24356         (arm_reorg): Likewise.
24357         (thumb2_final_prescan_insn): Likewise for param
24358         "insn" and local "first_insn".
24359         (arm_final_prescan_insn): Likewise for param "insn" and locals
24360         "start_insn", "this_insn".
24361         (arm_debugger_arg_offset): Likewise for param "insn".
24362         (thumb1_emit_multi_reg_push): Likewise for return type and local
24363         "insn".
24364         (thumb1_final_prescan_insn): Likewise for param "insn".
24365         (thumb_far_jump_used_p): Likewise for local "insn".
24366         (thumb1_expand_prologue): Likewise.
24367         (arm_expand_epilogue_apcs_frame): Likewise.
24368         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
24369         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
24370         from rtx to rtx_code_label *.
24371         (arm_split_atomic_op): Likewise for local "label".
24372         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
24373
24374 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24375
24376         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
24377         first param from rtx to rtx_insn *.
24378         (arc_verify_short): Likewise.
24379         (arc_short_long): Likewise.
24380         (arc_need_delay): Likewise.
24381
24382         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
24383         "target_insn".
24384         (arc_ccfsm_advance): Likewise for param "insn" and locals
24385         "start_insn", "this_insn".
24386         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
24387         (arc_ccfsm_post_advance): Likewise for param "insn".
24388         (arc_next_active_insn): Likewise for return type and param "insn".
24389         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
24390         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
24391         (output_short_suffix): Likewise for local "insn".
24392         (arc_final_prescan_insn): Likewise for param "insn".  Remove
24393         now-redundant checked cast.
24394         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
24395         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
24396         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
24397         for use where lc_set became an insn.
24398         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
24399         rtx to rtx_insn *.
24400         (arc_get_insn_variants): Likewise for local "prev".
24401         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
24402         "next".
24403         (arc_predicate_delay_insns): Likewise for local "insn".
24404         (arc_pad_return): Likewise for local "prev".  For now, add a
24405         checked cast when extracting the insn from "final_sequence".
24406         (arc_short_long): Likewise for param "insn".
24407         (arc_need_delay): Likewise for param "insn" and local "next".
24408         (arc_label_align): Likewise for locals "prev", "next".
24409
24410 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24411
24412         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
24413         "insn" from rtx to rtx_insn *.
24414         (alpha_gp_save_rtx): Likewise for local "seq".
24415         (alpha_instantiate_decls): Likewise for local "top".
24416         (get_some_local_dynamic_name): Likewise for local "insn".
24417         (alpha_does_function_need_gp): Likewise.
24418         (set_frame_related_p): Likewise for return type and for locals
24419         "seq" and "insn".
24420         (emit_frame_store_1): Likewise for local "insn".
24421         (alpha_expand_prologue): Likewise for locals "insn", "seq".
24422         (alpha_end_function): Likewise for local "insn".
24423         (alpha_output_mi_thunk_osf): Likewise.
24424         (alphaev4_insn_pipe): Likewise for param "insn".
24425         (alphaev5_insn_pipe): Likewise.
24426         (alphaev4_next_group): Likewise for return type and param 1
24427         "insn".
24428         (alphaev5_next_group): Likewise.
24429         (alpha_align_insns_1): Likewise for return type and param 1 of
24430         callback param "next_group", and for locals "i", "next", "prev",
24431         "where", "where2", "insn".
24432
24433 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
24434
24435         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
24436         rather than modifying the stmt.
24437
24438 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
24439
24440         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
24441         cgraph_state conversion.
24442
24443 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24444
24445         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
24446         Strengthen local "insns" from rtx to rtx_insn *.
24447         (aarch64_set_frame_expr): Likewise for local "insn".
24448         (aarch64_save_or_restore_fprs): Likewise.
24449         (aarch64_save_or_restore_callee_save_registers): Likewise.
24450         (aarch64_expand_prologue): Likewise.
24451         (aarch64_expand_epilogue): Likewise.
24452         (aarch64_output_mi_thunk): Likewise.
24453         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
24454         "label2" from rtx to rtx_code_label *.
24455         (aarch64_split_atomic_op): Likewise for local "label".
24456
24457 2014-08-25  Martin Liska  <mliska@suse.cz>
24458
24459         * cgraph.h (symtab_node):
24460         (bool needed_p (void)): created from decide_is_symbol_needed
24461         (bool referred_to_p (void)): created from referred_to_p
24462         (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
24463         * cgraph.h (cgraph_node):
24464         (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
24465         (void expand (void)): created from expand_function
24466         (static void finalize_function (tree, bool)): created from cgraph_finalize_function
24467         (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
24468         (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
24469         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
24470         * cgraph.h (varpool_node):
24471         (static void add (tree decl): created from varpool_add_new_variable
24472         * cgraph.h (cgraph_edge):
24473         void remove (void);
24474         (void remove_caller (void)): created from cgraph_edge_remove_caller
24475         (void remove_callee (void)): created from cgraph_edge_remove_callee
24476         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
24477           created from cgraph_set_call_stmt
24478         (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
24479         (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
24480         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
24481           gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
24482         (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
24483           created from cgraph_speculative_call_info
24484         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
24485           int freq_scale, bool update_original)): created from cgraph_clone_edge
24486         (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
24487         (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
24488         (bool recursive_p (void)): created from cgraph_edge_recursive_p
24489         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
24490         (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
24491         (static void rebuild_references (void)): created from cgraph_rebuild_references
24492         * cgraph.h (symbol_table):
24493         (create_reference): renamed from add_reference
24494         (maybe_create_reference): renamed from maybe_add_reference
24495         (void register_symbol (symtab_node *node)): new function
24496         (void clear_asm_symbols (void)): new function
24497         (void unregister (symtab_node *node)): new function
24498         (void release_symbol (cgraph_node *node, int uid)): new function
24499         (cgraph_node * allocate_cgraph_symbol (void)): new function
24500         (void initialize (void)): created from cgraph_init
24501         (symtab_node *first_symbol (void)):new function
24502         (asm_node *first_asm_symbol (void)):new function
24503         (symtab_node *first_defined_symbol (void)):new function
24504         (varpool_node *first_variable (void)):new function
24505         (varpool_node *next_variable (varpool_node *node)):new function
24506         (varpool_node *first_static_initializer (void)):new function
24507         (varpool_node *next_static_initializer (varpool_node *node)):new function
24508         (varpool_node *first_defined_variable (void)):new function
24509         (varpool_node *next_defined_variable (varpool_node *node)):new function
24510         (cgraph_node *first_defined_function (void)):new function
24511         (cgraph_node *next_defined_function (cgraph_node *node)):new function
24512         (cgraph_node *first_function (void)):new function
24513         (cgraph_node *next_function (cgraph_node *node)):new function
24514         (cgraph_node *first_function_with_gimple_body (void)):new function
24515         (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
24516         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
24517           created from symtab_remove_unreachable_nodes
24518         (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
24519         (void process_new_functions (void)): created from cgraph_process_new_functions
24520         (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
24521         (bool output_variables (void)): created from varpool_node::output_variables
24522         (void output_asm_statements (void)): created from output_asm_statements
24523         (void finalize_compilation_unit (void)): created from finalize_compilation_unit
24524         (void compile (void)): created from compile
24525         (void output_weakrefs (void)): created from output_weakrefs
24526         (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
24527         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
24528           gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
24529         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
24530         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
24531           created from cgraph_next_function_with_gimple_body
24532         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
24533           created from cgraph_remove_edge_removal_hook
24534         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
24535           created from cgraph_add_node_removal_hook
24536         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
24537           created from cgraph_remove_node_removal_hook
24538         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
24539           created from varpool_add_node_removal_hook
24540         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
24541           created from varpool_remove_node_removal_hook
24542         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
24543           created from cgraph_add_function_insertion_hook
24544         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
24545           created from cgraph_remove_function_insertion_hook
24546         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
24547           created from varpool_add_variable_insertion_hook
24548         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
24549           created from varpool_remove_variable_insertion_hook
24550         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
24551           created from cgraph_add_edge_duplication_hook
24552         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
24553           created from cgraph_remove_edge_duplication_hook
24554         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
24555           created from cgraph_add_node_duplication_hook
24556         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
24557           created from cgraph_remove_node_duplication_hook
24558         (void call_edge_removal_hooks (cgraph_edge *e)):
24559           created from cgraph_call_edge_removal_hooks
24560         (void call_cgraph_insertion_hooks (cgraph_node *node)):
24561           created from call_function_insertion_hooks
24562         (void call_cgraph_removal_hooks (cgraph_node *node)):
24563           created from cgraph_call_node_removal_hooks
24564         (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
24565           created from cgraph_node::call_duplication_hooks
24566         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
24567           created from cgraph_call_edge_duplication_hooks
24568         (void call_varpool_removal_hooks (varpool_node *node)):
24569           created from varpool_call_node_removal_hooks
24570         (void call_varpool_insertion_hooks (varpool_node *node)):
24571           created from varpool_call_variable_insertion_hooks
24572         (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
24573           created from insert_to_assembler_name_hash
24574         (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
24575           created from unlink_from_assembler_name_hash
24576         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
24577           created from symtab_prevail_in_asm_name_hash
24578         (void symtab_initialize_asm_name_hash (void)):
24579           created from symtab_initialize_asm_name_hash
24580         (void change_decl_assembler_name (tree decl, tree name)):
24581           created from change_decl_assembler_name
24582         (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
24583         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
24584           created from decl_assembler_name_hash
24585         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
24586           created from decl_assembler_name_equal
24587         (static hashval_t hash_node_by_assembler_name (const void *p)):
24588           created from hash_node_by_assembler_name
24589         (static int eq_assembler_name (const void *p1, const void *p2)):
24590           created from eq_assembler_name
24591
24592 2014-08-25  Marek Polacek  <polacek@redhat.com>
24593
24594         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
24595
24596 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
24597
24598         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
24599         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
24600         SWI1248_AVX512BW mode iterator.
24601
24602 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
24603
24604         PR target/62111
24605         * config/sh/predicates.md (general_extend_operand): Disable
24606         TRUNCATE before reload completes.
24607
24608 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
24609
24610         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
24611
24612 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
24613
24614         PR target/61996
24615         * config/sh/sh.opt (musermode): Allow negative form.
24616         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
24617         targets that don't support it.
24618         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
24619         Document -mno-usermode option.
24620
24621 2014-08-24  Kito Cheng  <kito@0xlab.org>
24622
24623         * system.h (CALLER_SAVE_PROFITABLE): Poison.
24624         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
24625         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
24626         * doc/tm.texi: Regenerate.
24627
24628 2014-08-24  Kito Cheng  <kito@0xlab.org>
24629
24630         * ira.c: Fix typo in comment.
24631
24632 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
24633
24634         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
24635         Deprecate c++1y. Change language to reflect greater confidence in C++14.
24636
24637 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
24638
24639         PR target/62038
24640         * config/pa/pa.c (pa_output_function_epilogue): Don't set
24641         last_address when the current function is a thunk.
24642         (pa_asm_output_mi_thunk): When we don't have named sections or they
24643         are not being used, check that thunk can reach the stub table with a
24644         short branch.
24645
24646 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24647
24648         * web.c (union_match_dups): Strengthen param "insn" from rtx to
24649         rtx_insn *.
24650         (pass_web::execute): Likewise for local "insn".
24651
24652 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24653
24654         * var-tracking.c (struct micro_operation_def): Strengthen field
24655         "insn" from rtx to rtx_insn *.
24656         (struct emit_note_data_def): Likewise.
24657         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
24658         (vt_stack_adjustments): Likewise for local "insn".
24659         (adjust_insn): Likewise for param "insn".
24660         (val_store): Likewise.
24661         (val_resolve): Likewise.
24662         (struct count_use_info): Likewise for field "insn".
24663         (log_op_type): Likewise for param "insn".
24664         (reverse_op): Likewise.
24665         (prepare_call_arguments): Likewise.
24666         (add_with_sets):  The initial param takes an insn, but we can't
24667         yet strengthen it from rtx to rtx_insn * since it's used as a
24668         cselib_record_sets_hook callback.  For now rename initial param
24669         from "insn" to "uncast_insn", and introduce a local "insn" of
24670         the stronger rtx_insn * type, with a checked cast.
24671         (compute_bb_dataflow): Strengthen local "insn" from rtx to
24672         rtx_insn *.
24673         (emit_note_insn_var_location): Likewise.
24674         (emit_notes_for_changes): Likewise.
24675         (emit_notes_for_differences): Likewise.
24676         (next_non_note_insn_var_location): Likewise for return type and
24677         for param "insn".
24678         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
24679         (vt_initialize): Likewise for local "insn".
24680         (delete_debug_insns): Likewise for locals "insn" and "next".
24681
24682 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24683
24684         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
24685         rtx_insn *.
24686         (mark_constant_pool): Likewise for local "insn".
24687
24688 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24689
24690         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
24691         rtx to rtx_insn *.
24692         (dead_debug_promote_uses): Likewise.
24693         (dead_debug_insert_temp): Likewise.
24694
24695 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24696
24697         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
24698         from const_rtx to const rtx_insn *.
24699         (store_killed_after): Likewise.  Strengthen locals "last", "act"
24700         from rtx to rtx_insn *.
24701         (store_killed_before): Strengthen param "insn" from const_rtx to
24702         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
24703         (find_moveable_store): Strengthen param "insn" from rtx to
24704         rtx_insn *.
24705         (compute_store_table): Likewise for local "insn".
24706         (insert_insn_start_basic_block): Likewise for param "insn" and
24707         locals "prev", "before", "insn".
24708         (insert_store): For now, add a checked cast to rtx_insn * on the
24709         result of gen_move_insn.
24710         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
24711         to rtx_insn *.
24712         (replace_store_insn): Likewise.  For now, add a checked cast to
24713         rtx_insn * on the result of gen_move_insn.
24714
24715 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24716
24717         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
24718         rtx_insn *.
24719         (expand_sjlj_dispatch_table): Likewise.
24720
24721 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24722
24723         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
24724         "insn" from rtx to rtx_insn *.
24725
24726 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24727
24728         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
24729         "insn" from rtx to rtx_insn *.
24730         (dup_block_and_redirect): Likewise for param 3 "before".
24731
24732         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
24733         from rtx to rtx_insn *.
24734         (move_insn_for_shrink_wrap): Likewise.
24735         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
24736         (dup_block_and_redirect): Likewise for param "before" and local
24737         "insn".
24738         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
24739         "end".
24740         (convert_to_simple_return): Likewise for local "start".
24741
24742         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
24743         Strengthen local "insn" from rtx to rtx_insn *, for use when
24744         invoking requires_stack_frame_p.
24745
24746 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24747
24748         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
24749         rtx_insn *.
24750         (speculate_expr): Likewise for locals "orig_insn_rtx",
24751         "spec_insn_rtx".
24752         (eq_transformed_insns): Likewise for locals "i1", "i2".
24753         (check_for_new_jump): Likewise for return type and local "end".
24754         (find_new_jump): Likewise for return type and local "jump".
24755         (sel_split_edge): Likewise for local "jump".
24756         (sel_create_recovery_block): Likewise.
24757         (sel_redirect_edge_and_branch_force): Likewise.
24758         (sel_redirect_edge_and_branch): Likewise.
24759
24760 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24761
24762         * sel-sched.c (substitute_reg_in_expr): Strengthen local
24763         "new_insn" from rtx to rtx_insn *.
24764         (create_insn_rtx_with_rhs): Likewise for return type and for local
24765         "insn_rtx".
24766         (create_insn_rtx_with_lhs): Likewise.
24767         (create_speculation_check): Likewise for local "insn_rtx".
24768         (implicit_clobber_conflict_p): Likewise for local "insn".
24769         (get_expr_cost): Likewise.
24770         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
24771         (move_cond_jump): Likewise for locals "next", "prev", "link",
24772         "head", "from", "to".
24773
24774 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24775
24776         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
24777         "next" from rtx to rtx_insn *.
24778         (find_conditional_protection): Likewise for local "next".
24779         (is_conditionally_protected): Likewise for local "insn1".
24780         (is_pfree): Likewise for locals "insn1", "insn2".
24781
24782 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24783
24784         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
24785         from rtx to rtx_insn *.
24786
24787         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
24788         locals "insn1", "insn2" from rtx to rtx_insn *.
24789         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
24790         locals "insn", "prev", "last_jump", "next_tail".
24791         (schedule_ebb): Likewise for params "head", "tail".
24792         (schedule_ebbs): Likewise for locals "tail", "head".
24793
24794         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
24795         to rtx_insn on "last_insn" in one of the invocations of
24796         schedule_ebb.
24797
24798 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24799
24800         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
24801         "elem", "insn" from rtx to rtx_insn *.
24802         (change_spec_dep_to_hard): Likewise.
24803         (get_back_and_forw_lists): Likewise for local "con".
24804         (sd_add_dep): Likewise for locals "elem", "insn".
24805         (sd_resolve_dep): Likewise for locals "pro", "con".
24806         (sd_unresolve_dep): Likewise.
24807         (sd_delete_dep): Likewise.
24808         (chain_to_prev_insn): Likewise for local "pro".
24809         (find_inc): Likewise for locals "pro", "con".
24810
24811 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24812
24813         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
24814         to rtx_insn *.
24815         (reg_set_between_p): Strengthen local "insn" from const_rtx to
24816         const rtx_insn *.
24817         (modified_between_p): Strengthen local "insn" from rtx to
24818         rtx_insn *.
24819         (remove_reg_equal_equiv_notes_for_regno): Likewise.
24820         (keep_with_call_p): Strengthen local "i2" from const_rtx to
24821         const rtx_insn *.
24822
24823 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24824
24825         * resource.c (next_insn_no_annul): Strengthen local "next" from
24826         rtx to rtx_insn *.
24827         (mark_referenced_resources): Likewise for local "insn".
24828
24829 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24830
24831         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
24832         to rtx_insn *.
24833         (find_reloads): Likewise for param 1.
24834         (subst_reloads): Likewise for sole param.
24835         (find_equiv_reg): Likwise for param 2.
24836         (regno_clobbered_p): Likwise for param 2.
24837         (reload): Likewise for param 1.
24838
24839         * caller-save.c (save_call_clobbered_regs): Strengthen local
24840         "insn" from rtx to rtx_insn *.
24841         (insert_one_insn): Likewise for local "insn".
24842
24843         * reload.c (this_insn): Likewise for this global.
24844         (find_reloads): Likewise for param "insn".
24845         (find_reloads_toplev): Likewise.
24846         (find_reloads_address): Likewise.
24847         (subst_reg_equivs): Likewise.
24848         (update_auto_inc_notes): Likewise.
24849         (find_reloads_address_1): Likewise.
24850         (find_reloads_subreg_address): Likewise.
24851         (subst_reloads): Likewise.
24852         (find_equiv_reg): Likewise, also for local "p".
24853         (regno_clobbered_p): Likewise for param "insn".
24854
24855         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
24856         array.
24857         (spill_reg_store): Likewise for the elements of this array.
24858         (remove_init_insns): Likewise for local "equiv_insn".
24859         (will_delete_init_insn_p): Likewise for param "insn".
24860         (reload): Likewise for param ""first" and local "insn".
24861         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
24862         rtx_insn *.
24863         (calculate_elim_costs_all_insns): Likewise.
24864         (delete_caller_save_insns): Likewise.
24865         (spill_failure): Likewise for param "insn".
24866         (delete_dead_insn): Likewise.
24867         (set_label_offsets): Likewise.
24868         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
24869         "prev_insn".
24870         (elimination_costs_in_insn): Likewise for param "insn".
24871         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
24872         when referring to an insn.
24873         (set_initial_label_offsets): Likewise.
24874         (set_offsets_for_label): Strengthen param "insn" from rtx to
24875         rtx_insn *.
24876         (init_eliminable_invariants): Likewise for param "first" and local
24877         "insn".
24878         (fixup_eh_region_note): Likewise for param "insn".
24879         (reload_as_needed): Likewise for locals "prev", "insn",
24880         "old_next", "old_prev", "next".
24881         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
24882         "last".
24883         (reload_inheritance_insn): Strengthen elements of this array from
24884         rtx to rtx_insn *.
24885         (failed_reload): Likewise for param "insn".
24886         (choose_reload_regs): Likewise for local "insn".  Replace use of
24887         NULL_RTX with NULL when referring to an insn.
24888         (input_reload_insns): Strengthen elements of this array from rtx
24889         to rtx_insn *.
24890         (other_input_address_reload_insns): Likewise for this global.
24891         (other_input_reload_insns): Likewise for this global.
24892         (input_address_reload_insns): Likwise for the elements of this
24893         array.
24894         (inpaddr_address_reload_insns): Likwise for the elements of this
24895         array.
24896         (output_reload_insns): Likewise for the elements of this array.
24897         (output_address_reload_insns): Likewise for the elements of this
24898         array.
24899         (outaddr_address_reload_insns): Likewise for the elements of this
24900         array.
24901         (operand_reload_insns): Likewise for this global.
24902         (other_operand_reload_insns): Likewise for this global.
24903         (other_output_reload_insns): Likewise for the elements of this
24904         array.
24905         (new_spill_reg_store): Likewise for the elements of this
24906         array.
24907         (emit_input_reload_insns): Likewise for locals "insn", "temp".
24908         Strengthen local "where" from rtx * to rtx_insn **.
24909         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
24910         from rtx to rtx_insn *.
24911         (do_input_reload): Likewise for local "insn".
24912         (do_output_reload): Likewise for local "insn".
24913         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
24914         (emit_insn_if_valid_for_reload): Likewise for return type and local
24915         "last".  Add checked cast to rtx_insn when returning "insn" since
24916         this has been through emit_insn.
24917         (gen_reload): Strengthen return type and locals "last", "insn", "set"
24918         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
24919         returning "insn" since it's been through
24920         emit_insn_if_valid_for_reload at this point.
24921         (delete_output_reload): Strengthen param "insn" and locals
24922         "output_reload_insn", "i2" from rtx to rtx_insn *.
24923         (delete_address_reloads): Likewise for params "dead_insn",
24924         "current_insn" and locals "prev", "next".
24925         (delete_address_reloads_1): Likewise for params "dead_insn",
24926         "current_insn" and locals "prev", "i2".
24927         (inc_for_reload): Likewise for locals "last", "add_insn".
24928         (add_auto_inc_notes): Strengthen param "insn" from rtx to
24929         rtx_insn *.
24930
24931         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
24932         param of this duplicate of the prototype from reload.h
24933
24934 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24935
24936         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
24937         rtx to rtx_insn *.
24938         (regstat_bb_compute_calls_crossed): Likewise.
24939
24940 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24941
24942         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
24943         to rtx_insn *.
24944         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
24945         with an insn.
24946         (regrename_analyze): Strengthen local "insn" from rtx to
24947         rtx_insn *.
24948         (scan_rtx_reg): Likewise for param "insn".
24949         (scan_rtx_address): Likewise.
24950         (scan_rtx): Likewise.
24951         (restore_operands): Likewise.
24952         (record_out_operands): Likewise.
24953         (build_def_use): Likewise for local "insn".  Replace use of
24954         NULL_RTX with NULL when dealing with an insn.
24955
24956 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24957
24958         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
24959         * reginfo.c (reg_scan): Likewise, also for local "insn".
24960         (reg_scan_mark_refs): Likewise for param "insn".
24961         (init_subregs_of_mode): Likewise for local "insn".
24962
24963 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24964
24965         * regcprop.c (struct queued_debug_insn_change): Strengthen field
24966         "insn" from rtx to rtx_insn *.
24967         (replace_oldest_value_reg): Likewise for param "insn".
24968         (replace_oldest_value_addr): Likewise.
24969         (replace_oldest_value_mem): Likewise.
24970         (apply_debug_insn_changes): Likewise for local "last_insn".
24971         (copyprop_hardreg_forward_1): Likewise for local "insn".
24972
24973 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24974
24975         * reg-stack.c (next_flags_user): Strengthen return type and param
24976         "insn" from rtx to rtx_insn *.
24977         (straighten_stack): Likewise for param "insn".
24978         (check_asm_stack_operands): Likewise.
24979         (remove_regno_note): Likewise.
24980         (emit_pop_insn): Likewise for return type, param "insn", local
24981         "pop_insn".
24982         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
24983         "limit" from rtx to rtx_insn *.
24984         (swap_to_top): Likewise for param "insn".
24985         (move_for_stack_reg): Likewise.
24986         (move_nan_for_stack_reg): Likewise.
24987         (swap_rtx_condition): Likewise.
24988         (compare_for_stack_reg): Likewise.
24989         (subst_all_stack_regs_in_debug_insn): Likewise.
24990         (subst_stack_regs_pat): Likewise, and local "insn2".
24991         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
24992         rtx_insn *.
24993         (subst_stack_regs): Likewise.
24994         (change_stack): Likewise.
24995         (convert_regs_1): Likewise for locals "insn", "next".
24996
24997 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24998
24999         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
25000         rtx_insn *.
25001         (combine_set_extension): Likewise for param "curr_insn".
25002         (transform_ifelse): Likewise for param "def_insn".
25003         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
25004         from vec<rtx> * to vec<rtx_insn *> *.
25005         (is_cond_copy_insn): Likewise for param "insn".
25006         (struct ext_state): Strengthen the four vec fields from vec<rtx>
25007         to vec<rtx_insn *>.
25008         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
25009         local "def_insn" from rtx to rtx_insn *.
25010         (get_sub_rtx): Likewise for param "def_insn".
25011         (merge_def_and_ext): Likewise.
25012         (combine_reaching_defs): Likewise.
25013         (add_removable_extension): Likewise for param "insn".
25014         (find_removable_extensions): Likewise for local "insn".
25015         (find_and_remove_re): Likewise for locals "curr_insn" and
25016         "def_insn".  Strengthen locals "reinsn_del_list" and
25017         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
25018
25019 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25020
25021         * recog.c (split_insn): Strengthen param "insn" and locals
25022         "first", "last" from rtx to rtx_insn *.
25023         (split_all_insns): Likewise for locals "insn", "next".
25024         (split_all_insns_noflow): Likewise.
25025
25026 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25027
25028         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
25029         const rtx_insn *.
25030         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
25031         (debug_rtx_find): Likewise for param 1 "x".
25032
25033         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
25034         const_rtx to const rtx_insn *.  Likewise for local "insn".
25035         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
25036         (debug_rtx_find): Likewise for param 1 "x".
25037         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
25038         from const_rtx to const rtx_insn * within the appropriate cases of
25039         the switch statement.
25040
25041         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
25042         Strengthen local "insns" from rtx to rtx_insn * since this is
25043         passed to a call to debug_rtx_list.
25044
25045 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25046
25047         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
25048         to rtx_insn *.
25049
25050         * function.c (stack_protect_epilogue): Add checked cast to
25051         rtx_insn for now when invoking predict_insn_def.
25052
25053         * predict.c (predict_insn): Strengthen param "insn" from rtx to
25054         rtx_insn *.
25055         (predict_insn_def): Likewise.
25056         (rtl_predict_edge): Likewise for local "last_insn".
25057         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
25058         const rtx_insn *.
25059         (combine_predictions_for_insn): Strengthen param "insn" from rtx
25060         to rtx_insn *.
25061         (bb_estimate_probability_locally): Likewise for local "last_insn".
25062         (expensive_function_p): Likewise for local "insn".
25063
25064         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
25065         local "jmp", since this is used when invoking predict_insn_def.
25066
25067 2014-08-22  Marek Polacek  <polacek@redhat.com>
25068
25069         PR c++/62199
25070         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
25071
25072 2014-08-22  Marek Polacek  <polacek@redhat.com>
25073
25074         PR c/61271
25075         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
25076         a comparison in parens.
25077         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
25078         in parens.
25079
25080 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25081
25082         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
25083         rtx_insn *.
25084
25085         * cprop.c (fis_get_condition): Likewise.
25086
25087         * postreload.c (reload_cse_regs): Likewise for param "first".
25088         (reload_cse_simplify): Likewise for param "insn".
25089         (reload_cse_regs_1): Likewise for local "insn".
25090         (reload_cse_simplify_set): Likewise for param "insn".
25091         (reload_cse_simplify_operands): Likewise.
25092         (struct reg_use): Likewise for field "insn".
25093         (reload_combine_purge_insn_uses): Likewise for param "insn".
25094         (fixup_debug_insns): Likewise for params "from", "to" and local
25095         "insn".
25096         (try_replace_in_use): Likewise for local "use_insn".
25097         (reload_combine_recognize_const_pattern): Likewise for param
25098         "insn" and locals "add_moved_after_insn", "use_insn".
25099         (reload_combine_recognize_pattern): Likewise for param "insn" and
25100         local "prev".
25101         (reload_combine): Likewise for locals "insn", "prev".
25102         (reload_combine_note_use): Likewise for param "insn".
25103         (move2add_use_add2_insn): Likewise.
25104         (move2add_use_add3_insn): Likewise.
25105         (reload_cse_move2add): Likewise, also for local "next".
25106         (move2add_note_store): Likewise for local "insn".
25107
25108 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25109
25110         * postreload-gcse.c (struct occr): Strengthen field "insn" from
25111         rtx to rtx_insn *.
25112         (struct unoccr): Likewise.
25113         (struct modifies_mem): Likewise.
25114         (alloc_mem): Likewise for local "insn".
25115         (insert_expr_in_table): Likewise for param "insn".
25116         (dump_expr_hash_table_entry): Likewise for local "insn".
25117         (oprs_unchanged_p): Likewise for param "insn".
25118         (load_killed_in_block_p): Likewise for local "setter".
25119         (record_last_reg_set_info): Likewise for param "insn".
25120         (record_last_reg_set_info_regno): Likewise.
25121         (record_last_mem_set_info): Likewise.
25122         (record_last_set_info): Likewise for local "last_set_insn".
25123         (record_opr_changes): Likewise for param "insn".
25124         (hash_scan_set): Likewise.
25125         (compute_hash_table): Likewise for local "insn".
25126         (get_avail_load_store_reg): Likewise for param "insn".
25127         (eliminate_partially_redundant_load): Likewise, also for locals
25128         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
25129         RTX for insns.
25130         (eliminate_partially_redundant_loads): Likewise for local "insn".
25131
25132 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25133
25134         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
25135         rtx to rtx_insn *.
25136         (expand_binop): Likewise for locals "entry_last", "last", "insns"
25137         (expand_twoval_unop): Likewise for locals entry_last", "last".
25138         (expand_twoval_binop): Likewise.
25139         (expand_twoval_binop_libfunc): Likewise for local "insns".
25140         (widen_leading): Likewise for local "last".
25141         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
25142         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
25143         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
25144         (expand_parity): Likewise for locals "last" and "seq".
25145         (expand_ffs): Likewise for local "seq".  Strengthen local
25146         "nonzero_label" from rtx to rtx_code_label *.
25147         (expand_absneg_bit): Strengthen local "insns" from rtx to
25148         rtx_insn *.
25149         (expand_unop_direct): Likewise for local "last".
25150         (expand_unop): Likewise for locals "last", "insns".
25151         (expand_abs_nojump): Likewise for local "last".
25152         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
25153         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
25154         rtx_insn *.
25155         (expand_copysign_absneg): Strengthen local "label" from rtx to
25156         rtx_code_label *.
25157         (expand_copysign_bit): Strengthen local "insns" from rtx to
25158         rtx_insn *.
25159         (struct no_conflict_data): Likewise for fields "first", "insn".
25160         (emit_libcall_block_1): Likewise for param "insns" and locals
25161         "next", "last", "insn".
25162         (emit_libcall_block): For now, add a checked cast to rtx_insn *
25163         on "insns" when invoking emit_libcall_block_1.  Ultimately we
25164         want to strengthen insns itself.
25165         (prepare_cmp_insn): Strengthen local "last" from rtx to
25166         rtx_insn *.
25167         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
25168         (prepare_float_lib_cmp): Likewise for local "insns".
25169         (emit_conditional_move): Likewise for local "last".
25170         (emit_conditional_add): Likewise.
25171         (have_sub2_insn): Likewise for local "seq".
25172         (expand_float): Likewise for local "insns".  Strengthen locals
25173         "label", "neglabel" from rtx to rtx_code_label *.
25174         (expand_fix): Likewise for locals "last", "insn", "insns" (to
25175         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
25176         (expand_fixed_convert): Likewise for local "insns" (to
25177         rtx_insn *).
25178         (expand_sfix_optab): Likewise for local "last".
25179         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
25180         to rtx_code_label *.
25181         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
25182         from rtx to rtx_insn *.
25183         (expand_atomic_fetch_op): Likewise for local "insn".
25184         (maybe_legitimize_operand_same_code): Likewise for local "last".
25185         (maybe_legitimize_operands): Likewise.
25186
25187 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25188
25189         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
25190         "insn" from rtx to rtx_insn *.
25191         (ps_rtl_insn): Likewise for return type.
25192         (doloop_register_get): Likewise for params "head", "tail" and
25193         locals "insn", "first_insn_not_to_check".
25194         (schedule_reg_move): Likewise for local "this_insn".
25195         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
25196         of gen_move_insn for now.
25197         (reset_sched_times): Strengthen local "insn" from rtx to
25198         rtx_insn *.
25199         (permute_partial_schedule): Likewise.
25200         (duplicate_insns_of_cycles): Likewise for local "u_insn".
25201         (dump_insn_location): Likewise for param "insn".
25202         (loop_canon_p): Likewise for local "insn".
25203         (sms_schedule): Likewise.
25204         (print_partial_schedule): Likewise.
25205         (ps_has_conflicts): Likewise.
25206
25207 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25208
25209         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
25210         "tailp" from rtx * to rtx_insn **.
25211
25212         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
25213         from rtx to rtx_insn *.
25214         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
25215         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
25216         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
25217         rtx to rtx_insn *.
25218         * modulo-sched.c (const_iteration_count): Strengthen return type
25219         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
25220         use of NULL_RTX with NULL when working with insns.
25221         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
25222         to rtx_insn *.
25223         (sms_schedule): Likewise.
25224         * sched-rgn.c (init_ready_list): Likewise, also for locals
25225         "src_head" and "src_next_tail".
25226         (compute_block_dependences): Likewise.
25227         (free_block_dependencies): Likewise.
25228         (debug_rgn_dependencies): Likewise.
25229         (free_rgn_deps): Likewise.
25230         (compute_priorities): Likewise.
25231         (schedule_region): Likewise.
25232         * sel-sched.c (find_ebb_boundaries): Likewise.
25233
25234         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
25235         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
25236
25237 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25238
25239         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
25240         from rtx to rtx_insn *.
25241         (new_seginfo): Likewise for param "insn".
25242         (create_pre_exit): Likewise for locals "last_insn",
25243         "before_return_copy", "return_copy".
25244         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
25245         "mode_set".
25246
25247 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25248
25249         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
25250         from rtx to rtx_insn *.
25251         (lra_push_insn): Likewise for 1st param.
25252         (lra_push_insn_and_update_insn_regno_info): Likewise.
25253         (lra_pop_insn): Likewise for return type.
25254         (lra_invalidate_insn_data): Likewise for 1st param.
25255         (lra_set_insn_deleted): Likewise.
25256         (lra_delete_dead_insn): Likewise.
25257         (lra_process_new_insns): Likewise for first 3 params.
25258         (lra_set_insn_recog_data): Likewise for 1st param.
25259         (lra_update_insn_recog_data): Likewise.
25260         (lra_set_used_insn_alternative): Likewise.
25261         (lra_invalidate_insn_regno_info): Likewise.
25262         (lra_update_insn_regno_info): Likewise.
25263         (lra_former_scratch_operand_p): Likewise.
25264         (lra_eliminate_regs_1): Likewise.
25265         (lra_get_insn_recog_data): Likewise.
25266
25267         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
25268         rtx to rtx_insn *.
25269
25270         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
25271         "mv1" and "mv2".
25272         (substitute_within_insn): New.
25273         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
25274         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
25275         Replace call to "substitute" with call to substitute_within_insn.
25276
25277         * lra-constraints.c (curr_insn): Strengthen from rtx to
25278         rtx_insn *.
25279         (get_equiv_with_elimination): Likewise for param "insn".
25280         (match_reload): Strengthen params "before" and "after" from rtx *
25281         to rtx_insn **.
25282         (emit_spill_move): Likewise for return type.  Add a checked cast
25283         to rtx_insn * on result of gen_move_insn for now.
25284         (check_and_process_move): Likewise for local "before".  Replace
25285         NULL_RTX with NULL when referring to insns.
25286         (process_addr_reg): Strengthen params "before" and "after" from
25287         rtx * to rtx_insn **.
25288         (insert_move_for_subreg): Likewise.
25289         (simplify_operand_subreg): Strengthen locals "before" and "after"
25290         from rtx to rtx_insn *.
25291         (process_address_1): Strengthen params "before" and "after" from
25292         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
25293         rtx to rtx_insn *.
25294         (process_address): Strengthen params "before" and "after" from
25295         rtx * to rtx_insn **.
25296         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
25297         (curr_insn_transform): Strengthen locals "before" and "after"
25298         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
25299         to insns.
25300         (loc_equivalence_callback): Update cast of "data", changing
25301         resulting type from rtx to rtx_insn *.
25302         (substitute_pseudo_within_insn): New.
25303         (inherit_reload_reg): Strengthen param "insn" from rtx to
25304         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
25305         NULL when referring to insns.  Add a checked cast to rtx_insn *
25306         when using usage_insn to invoke lra_update_insn_regno_info.
25307         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
25308         likewise for locals "restore", "save".  Add checked casts to
25309         rtx_insn * when using usage_insn to invoke
25310         lra_update_insn_regno_info and lra_process_new_insns.  Replace
25311         NULL_RTX with NULL when referring to insns.
25312         (split_if_necessary): Strengthen param "insn" from rtx to
25313         rtx_insn *.
25314         (update_ebb_live_info): Likewise for params "head", "tail" and local
25315         "prev_insn".
25316         (get_last_insertion_point): Likewise for return type and local "insn".
25317         (get_live_on_other_edges): Likewise for local "last".
25318         (inherit_in_ebb): Likewise for params "head", "tail" and locals
25319         "prev_insn", "next_insn", "restore".
25320         (remove_inheritance_pseudos): Likewise for local "prev_insn".
25321         (undo_optional_reloads): Likewise for local "insn".
25322
25323         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
25324         "insn".
25325         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
25326         insns.
25327         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
25328         rtx_insn *.
25329         (spill_pseudos): Likewise for local "insn".
25330         (init_elimination): Likewise.
25331         (process_insn_for_elimination): Likewise for param "insn".
25332
25333         * lra-lives.c (curr_insn): Likewise.;
25334
25335         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
25336         (remove_pseudos): Likewise for param "insn".
25337         (spill_pseudos): Likewise for local "insn".
25338         (lra_final_code_change): Likewise for locals "insn", "curr".
25339
25340         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
25341         (lra_set_insn_deleted): Likewise.
25342         (lra_delete_dead_insn): Likewise, and for local "prev".
25343         (new_insn_reg): Likewise for param "insn".
25344         (lra_set_insn_recog_data): Likewise.
25345         (lra_update_insn_recog_data): Likewise.
25346         (lra_set_used_insn_alternative): Likewise.
25347         (get_insn_freq): Likewise.
25348         (invalidate_insn_data_regno_info): Likewise.
25349         (lra_invalidate_insn_regno_info): Likewise.
25350         (lra_update_insn_regno_info): Likewise.
25351         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
25352         vec<rtx_insn *>.
25353         (lra_push_insn_1): Strengthen param "insn" from rtx to
25354         rtx_insn *.
25355         (lra_push_insn): Likewise.
25356         (lra_push_insn_and_update_insn_regno_info): Likewise.
25357         (lra_pop_insn): Likewise for return type and local "insn".
25358         (push_insns): Likewise for params "from", "to", and local "insn".
25359         (setup_sp_offset): Likewise for params "from", "last" and locals
25360         "before", "insn".
25361         (lra_process_new_insns): Likewise for params "insn", "before",
25362         "after" and local "last".
25363         (struct sloc): Likewise for field "insn".
25364         (lra_former_scratch_operand_p): Likewise for param "insn".
25365         (remove_scratches): Likewise for locals "insn", "last".
25366         (check_rtl): Likewise for local "insn".
25367         (add_auto_inc_notes): Likewise for param "insn".
25368         (update_inc_notes): Likewise for local "insn".
25369         (lra): Replace NULL_RTX with NULL when referring to insn.
25370
25371 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25372
25373         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
25374         to rtx_insn *.
25375         (resolve_reg_notes): Likewise.
25376         (resolve_simple_move): Likewise for return type, param "insn", and
25377         locals "insns", "minsn".
25378         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
25379         (resolve_use): Likewise.
25380         (resolve_debug): Likewise.
25381         (find_decomposable_shift_zext): Likewise.
25382         (resolve_shift_zext): Likewise for return type, param "insn", and
25383         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
25384         (decompose_multiword_subregs): Likewise for local "insn",
25385         "orig_insn", "decomposed_shift", "end".
25386
25387 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25388
25389         * basic-block.h (basic_block split_edge_and_insert): Strengthen
25390         param "insns" from rtx to rtx_insn *.
25391
25392         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
25393         rtx to rtx_insn *.
25394         (struct iv_to_split): Likewise.
25395         (loop_exit_at_end_p): Likewise for local "insn".
25396         (split_edge_and_insert): Likewise for param "insns".
25397         (compare_and_jump_seq): Likewise for return type, param "cinsn",
25398         and locals "seq", "jump".
25399         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
25400         "branch_code"; update invocations of compare_and_jump_seq to
25401         eliminate NULL_RTX in favor of NULL.
25402         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
25403         rtx to rtx_insn *.
25404         (reset_debug_uses_in_loop): Likewise.
25405         (analyze_insn_to_expand_var): Likewise for param "insn".
25406         (analyze_iv_to_split_insn): Likewise.
25407         (analyze_insns_in_loop): Likewise for local "insn".
25408         (insert_base_initialization): Likewise for param
25409         "insn" and local "seq".
25410         (split_iv): Likewise for param "insn" and local "seq".
25411         (expand_var_during_unrolling): Likewise for param "insn".
25412         (insert_var_expansion_initialization): Likewise for local "seq".
25413         (combine_var_copies_in_loop_exit): Likewise.
25414         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
25415         "insn".
25416         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
25417         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
25418         "next".
25419
25420 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25421
25422         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
25423         rtx_insn *.
25424         (iv_analyze_result): Likewise.
25425         (iv_analyze_expr): Likewise.
25426         (biv_p): Likewise.
25427
25428         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
25429         local "def_insn" from rtx to rtx_insn *.
25430         (get_biv_step_1): Likewise for local "insn".
25431         (iv_analyze_expr): Likewise for param "insn".
25432         (iv_analyze_def): Likewise for local "insn".
25433         (iv_analyze_op): Likewise for param "insn".
25434         (iv_analyze): Likewise.
25435         (iv_analyze_result): Likewise.
25436         (biv_p): Likewise.
25437         (suitable_set_for_replacement): Likewise.
25438         (simplify_using_initial_values): Likewise for local "insn".
25439         (iv_number_of_iterations): Likewise for param "insn".
25440         (check_simple_exit): Add checked cast to rtx_insn when invoking
25441         iv_number_of_iterations for now (until get_condition is
25442         strengthened).
25443
25444         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
25445         "insn" from rtx to rtx_insn *.
25446         (analyze_insns_in_loop): Likewise for local "insn".
25447
25448 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25449
25450         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
25451         to rtx_insn *.
25452         (struct invariant): Likewise.
25453         (hash_invariant_expr_1): Likewise for param "insn".
25454         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
25455         (find_exits): Likewise for local "insn".
25456         (create_new_invariant): Likewise for param "insn".
25457         (check_dependencies): Likewise.
25458         (find_invariant_insn): Likewise.
25459         (record_uses): Likewise.
25460         (find_invariants_insn): Likewise.
25461         (find_invariants_bb): Likewise for local "insn".
25462         (get_pressure_class_and_nregs): Likewise for param "insn".
25463         (calculate_loop_reg_pressure): Likewise for local "insn".
25464
25465 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25466
25467         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
25468         to rtx_insn *.
25469         (add_test): Likewise for locals "seq", "jump".
25470         (doloop_modify): Likewise for locals "sequence", "jump_insn".
25471
25472 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25473
25474         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
25475         rtx_insn *.
25476         (rebuild_jump_labels_chain): Likewise for param "chain".
25477
25478         * cfgexpand.c (pass_expand::execute): Add checked cast to
25479         rtx_insn * when calling rebuild_jump_labels_chain in region where
25480         we know e->insns.r is non-NULL.
25481
25482         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
25483         rtx_insn *.
25484         (rebuild_jump_labels): Likewise.
25485         (rebuild_jump_labels_chain): Likewise for param "chain".
25486         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
25487         (init_label_info): Likewise for param "f".
25488         (maybe_propagate_label_ref): Likewise for params "jump_insn",
25489         "prev_nonjump_insn".
25490         (mark_all_labels): Likewise for param "f" and locals "insn",
25491         "prev_nonjump_insn".
25492
25493 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25494
25495         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
25496         from rtx to rtx_insn *insn.
25497         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
25498         (ira_add_allocno_copy): Likewise.
25499         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
25500         rtx to rtx_insn *.
25501         (ira_create_copy): Likewise.
25502         (ira_add_allocno_copy): Likewise.
25503         (create_bb_allocnos): Likewise for local "insn".
25504         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
25505         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
25506         process_regs_for_copy for rtx_insn * param.
25507         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
25508         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
25509         process_regs_for_copy for rtx_insn * param.
25510         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
25511         * ira-costs.c (record_reg_classes): Likewise for param "insn".
25512         (record_operand_costs): Likewise.
25513         (scan_one_insn): Likewise for return type, and for param "insn".
25514         (process_bb_for_costs): Likewise for local "insn".
25515         (process_bb_node_for_hard_reg_moves): Likewise.
25516         * ira-emit.c (struct move): Likewise for field "insn".
25517         (create_move): Eliminate use of NULL_RTX when dealing with an
25518         rtx_insn *.
25519         (emit_move_list): Strengthen return type and locals "result",
25520         "insn" from rtx to rtx_insn *insn.
25521         (emit_moves): Likewise for locals "insns", "tmp".
25522         (ira_emit): Likewise for local "insn".
25523         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
25524         "insn".
25525         (find_call_crossed_cheap_reg): Likewise.
25526         (process_bb_node_lives): Likewise for local "insn".
25527         * ira.c (decrease_live_ranges_number): Likewise.
25528         (compute_regs_asm_clobbered): Likewise.
25529         (build_insn_chain): Likewise.
25530         (find_moveable_pseudos): Likewise, also locals "def_insn",
25531         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
25532         to rtx_insn **.  Add a checked cast when assigning from
25533         "closest_use" into closest_uses array in a region where we know
25534         it's a non-NULL insn.
25535         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
25536         to rtx_insn *.
25537         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
25538         "last_interesting_insn", "uin".
25539         (move_unallocated_pseudos): Likewise for locals "def_insn",
25540         "move_insn", "newinsn".
25541
25542 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25543
25544         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
25545         Strengthen locals "done_label", "do_error" from rtx to
25546         rtx_code_label *.
25547         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
25548         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
25549         rtx_code_label *.
25550         (ubsan_expand_si_overflow_neg_check): Likewise for locals
25551         "done_label", "do_error" to rtx_code_label * and local  "last" to
25552         rtx_insn *.
25553         (ubsan_expand_si_overflow_mul_check): Likewise for locals
25554         "done_label", "do_error", "large_op0", "small_op0_large_op1",
25555         "one_small_one_large", "both_ops_large", "after_hipart_neg",
25556         "after_lopart_neg", "do_overflow", "hipart_different"  to
25557         rtx_code_label * and local  "last" to rtx_insn *.
25558
25559 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25560
25561         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
25562         "insn" and "move_insn" from rtx to rtx_insn *.
25563
25564 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25565
25566         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
25567         rtx_insn *.
25568         (cheap_bb_rtx_cost_p): Likewise.
25569         (first_active_insn): Likewise for return type and local "insn".
25570         (last_active_insn):  Likewise for return type and locals "insn",
25571         "head".
25572         (struct noce_if_info): Likewise for fields "jump", "insn_a",
25573         "insn_b".
25574         (end_ifcvt_sequence): Likewise for return type and locals "insn",
25575         "seq".
25576         (noce_try_move): Likewise for local "seq".
25577         (noce_try_store_flag): Likewise.
25578         (noce_try_store_flag_constants): Likewise.
25579         (noce_try_addcc): Likewise.
25580         (noce_try_store_flag_mask): Likewise.
25581         (noce_try_cmove): Likewise.
25582         (noce_try_minmax): Likewise.
25583         (noce_try_abs): Likewise.
25584         (noce_try_sign_mask): Likewise.
25585         (noce_try_bitop): Likewise.
25586         (noce_can_store_speculate_p): Likewise for local "insn".
25587         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
25588         seq".
25589         (check_cond_move_block): Likewise for local "insn".
25590         (cond_move_convert_if_block): Likewise.
25591         (cond_move_process_if_block): Likewise for locals "seq",
25592         "loc_insn".
25593         (noce_find_if_block): Likewise for local "jump".
25594         (merge_if_block): Likewise for local "last".
25595         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
25596         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
25597         (block_has_only_trap): Likewise for return type and local "trap".
25598         (find_if_case_1): Likewise for local "jump".
25599         (dead_or_predicable): Likewise for locals "head", "end", "jump",
25600         "insn".
25601
25602 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25603
25604         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
25605         "last_insn", "loop_end" from rtx to rtx_insn *.
25606
25607         * hw-doloop.c (scan_loop): Likewise for local "insn".
25608         (discover_loop): Likewise for param "tail_insn".
25609         (discover_loops): Likewise for local "tail".
25610
25611         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
25612         cast to rtx_insn * when assigning from an rtx local to a
25613         hwloop_info's "last_insn" field.
25614
25615 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25616
25617         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
25618         (add_delay_dependencies): Strengthen local "pro" from rtx to
25619         rtx_insn *.
25620         (recompute_todo_spec): Likewise.
25621         (dep_cost_1): Likewise for locals "insn", "used".
25622         (schedule_insn): Likewise for local "dbg".
25623         (schedule_insn): Likewise for locals "pro", "next".
25624         (unschedule_insns_until): Likewise for local "con".
25625         (restore_pattern): Likewise for local "next".
25626         (estimate_insn_tick): Likewise for local "pro".
25627         (resolve_dependencies): Likewise for local "next".
25628         (fix_inter_tick): Likewise.
25629         (fix_tick_ready): Likewise for local "pro".
25630         (add_to_speculative_block): Likewise for locals "check", "twin",
25631         "pro".
25632         (sched_extend_bb): Likewise for locals "end", "insn".
25633         (init_before_recovery): Likewise for local "x".
25634         (sched_create_recovery_block): Likewise for local "barrier".
25635         (create_check_block_twin): Likewise for local "pro".
25636         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
25637         "consumer".
25638         (unlink_bb_notes): Update for change to type of bb_header.
25639         Strengthen locals "prev", "label", "note", "next" from rtx to
25640         rtx_insn *.
25641         (clear_priorities): Likewise for local "pro".
25642
25643 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25644
25645         * gcse.c (struct occr): Strengthen field "insn" from rtx to
25646         rtx_insn *.
25647         (test_insn): Likewise for this global.
25648         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
25649         const rtx_insn *.
25650         (oprs_anticipatable_p): Likewise.
25651         (oprs_available_p): Likewise.
25652         (insert_expr_in_table): Strengthen param "insn" from  rtx to
25653         rtx_insn *.
25654         (hash_scan_set): Likewise.
25655         (hash_scan_clobber): Likewise.
25656         (hash_scan_call): Likewise.
25657         (hash_scan_insn): Likewise.
25658         (compute_hash_table_work): Likewise for local "insn".
25659         (process_insert_insn): Likewise for return type and local "pat".
25660         (insert_insn_end_basic_block): Likewise for locals "new_insn",
25661         "pat", "pat_end", "maybe_cc0_setter".
25662         (pre_edge_insert): Likewise for local "insn".
25663         (pre_insert_copy_insn): Likewise for param "insn".
25664         (pre_insert_copies): Likewise for local "insn".
25665         (struct set_data): Likewise for field "insn".
25666         (single_set_gcse): Likewise for param "insn".
25667         (gcse_emit_move_after): Likewise.
25668         (pre_delete): Likewise for local "insn".
25669         (update_bb_reg_pressure): Likewise for param "from" and local
25670         "insn".
25671         (should_hoist_expr_to_dom): Likewise for param "from".
25672         (hoist_code): Likewise for local "insn".
25673         (get_pressure_class_and_nregs): Likewise for param "insn".
25674         (calculate_bb_reg_pressure): Likewise for local "insn".
25675         (compute_ld_motion_mems): Likewise.
25676
25677 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25678
25679         * genpeep.c (main): Rename param back from "uncast_ins1" to
25680         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
25681         checked cast.
25682
25683         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
25684
25685 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
25686
25687         PR target/62195
25688         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
25689         documentation to state it is only for VSX operations.
25690
25691         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
25692         constraint only active if VSX.
25693
25694         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
25695         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
25696         (lfiwzx): Likewise.
25697
25698 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25699
25700         * fwprop.c (single_def_use_dom_walker::before_dom_children):
25701         Strengthen local "insn" from rtx to rtx_insn *.
25702         (use_killed_between): Likewise for param "target_insn".
25703         (all_uses_available_at): Likewise for param "target_insn" and
25704         local "next".
25705         (update_df_init): Likewise for params "def_insn", "insn".
25706         (update_df): Likewise for param "insn".
25707         (try_fwprop_subst): Likewise for param "def_insn" and local
25708         "insn".
25709         (free_load_extend): Likewise for param "insn".
25710         (forward_propagate_subreg): Likewise for param "def_insn" and
25711         local "use_insn".
25712         (forward_propagate_asm): Likewise for param "def_insn" and local
25713         "use_insn".
25714         (forward_propagate_and_simplify): Likewise for param "def_insn"
25715         and local "use_insn".
25716         (forward_propagate_into): Likewise for locals "def_insn" and
25717         "use_insn".
25718
25719 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25720
25721         * function.c (emit_initial_value_sets): Strengthen local "seq"
25722         from rtx to rtx_insn *.
25723         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
25724         local "seq".
25725         (instantiate_virtual_regs): Likewise for local "insn".
25726         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
25727         (reorder_blocks_1): Likewise for param "insns" and local "insn".
25728         (expand_function_end): Likewise for locals "insn" and "seq".
25729         (epilogue_done): Likewise for local "insn".
25730         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
25731         "last", "trial".
25732         (reposition_prologue_and_epilogue_notes): Likewise for locals
25733         "insn", "last", "note", "first".
25734         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
25735         (pass_match_asm_constraints::execute): Likewise for local "insn".
25736
25737 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25738
25739         * output.h (final_scan_insn): Strengthen return type from rtx to
25740         rtx_insn *.
25741         (final_forward_branch_p): Likewise for param.
25742         (current_output_insn): Likewise for this global.
25743
25744         * final.c (rtx debug_insn): Likewise for this variable.
25745         (current_output_insn): Likewise.
25746         (get_attr_length_1): Rename param "insn" to "uncast_insn",
25747         adding "insn" back in as an rtx_insn * with a checked cast, so
25748         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
25749         first param.
25750         (compute_alignments): Strengthen local "label" from rtx to
25751         rtx_insn *.
25752         (shorten_branches): Rename param from "first" to "uncast_first",
25753         introducing a new local rtx_insn * "first" using a checked cast to
25754         effectively strengthen "first" from rtx to rtx_insn * without
25755         affecting the type signature.  Strengthen locals "insn", "seq",
25756         "next", "label" from rtx to rtx_insn *.
25757         (change_scope): Strengthen param "orig_insn" and local "insn" from
25758         rtx to rtx_insn *.
25759         (final_start_function): Rename param from "first" to "uncast_first",
25760         introducing a new local rtx_insn * "first" using a checked cast to
25761         effectively strengthen "first" from rtx to rtx_insn * without
25762         affecting the type signature.  Strengthen local "insn" from rtx to
25763         rtx_insn *.
25764         (dump_basic_block_info): Strengthen param "insn" from rtx to
25765         rtx_insn *.
25766         (final): Rename param from "first" to "uncast_first",
25767         introducing a new local rtx_insn * "first" using a checked cast to
25768         effectively strengthen "first" from rtx to rtx_insn * without
25769         affecting the type signature.  Strengthen locals "insn", "next"
25770         from rtx to rtx_insn *.
25771         (output_alternate_entry_point): Strengthen param "insn" from rtx to
25772         rtx_insn *.
25773         (call_from_call_insn): Strengthen param "insn" from rtx to
25774         rtx_call_insn *.
25775         (final_scan_insn): Rename param from "insn" to "uncast_insn",
25776         introducing a new local rtx_insn * "insn" using a checked cast to
25777         effectively strengthen "insn" from rtx to rtx_insn * without
25778         affecting the type signature.  Strengthen return type and locals
25779         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
25780         now-redundant checked cast to rtx_insn * from both invocations of
25781         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
25782         introducing a local "call_insn" for use when invoking
25783         call_from_call_insn.
25784         (notice_source_line): Strengthen param "insn" from rtx to
25785         rtx_insn *.
25786         (leaf_function_p): Likewise for local "insn".
25787         (final_forward_branch_p): Likewise.
25788         (leaf_renumber_regs): Likewise for param "first".
25789         (rest_of_clean_state): Likewise for locals "insn" and "next".
25790         (self_recursive_call_p): Likewise for param "insn".
25791         (collect_fn_hard_reg_usage): Likewise for local "insn".
25792         (get_call_fndecl): Likewise for param "insn".
25793         (get_call_cgraph_rtl_info): Likewise.
25794         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
25795         introducing a new local rtx_insn * "insn" using a checked cast to
25796         effectively strengthen "insn" from rtx to rtx_insn * without
25797         affecting the type signature.
25798
25799         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
25800         cast when assigning from param "insn" to current_output_insn.
25801         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
25802         so that we can assign it back to current_output_insn.
25803
25804 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
25805
25806         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
25807         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
25808         atmxt540s and atmxt540sreva devices.
25809         * config/avr/avr-tables.opt: Regenerate.
25810         * config/avr/t-multilib: Regenerate.
25811         * doc/avr-mmcu.texi: Regenerate.
25812
25813 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25814
25815         * expr.c (convert_move): Strengthen local "insns" from rtx to
25816         rtx_insn *.
25817         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
25818         "top_label" from rtx to rtx_code_label *.
25819         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
25820         rtx_insn *.
25821         (emit_single_push_insn): Likewise for locals "prev", "last".
25822         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
25823         to rtx_code_label *.
25824         (store_constructor): Likewise for locals "loop_start", "loop_end".
25825         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
25826         rtx_insn *.
25827         (expand_expr_real_2): Likewise.
25828         (expand_expr_real_1): Strengthen local "label" from rtx to
25829         rtx_code_label *.
25830
25831 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25832
25833         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
25834         from rtx to rtx_insn *.
25835         (store_bit_field_1): Likewise.
25836         (extract_bit_field_1): Likewise.
25837         (expand_mult_const): Likewise for local "insns".
25838         (expmed_mult_highpart): Strengthen local "label" from rtx to
25839         rtx_code_label *.
25840         (expand_smod_pow2): Likewise.
25841         (expand_sdiv_pow2): Likewise.
25842         (expand_divmod): Strengthen locals "last", "insn" from rtx to
25843         rtx_insn *.  Strengthen locals "label", "label1", "label2",
25844         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
25845         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
25846         (emit_store_flag): Likewise.
25847         (emit_store_flag_force): Strengthen local "label" from rtx to
25848         rtx_code_label *.
25849         (do_cmp_and_jump): Likewise for param "label".
25850
25851 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25852
25853         * explow.c (force_reg): Strengthen local "insn" from rtx to
25854         rtx_insn *.
25855         (adjust_stack_1): Likewise.
25856         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
25857         "final_label", "available_label", "space_available" from rtx to
25858         rtx_code_label *.
25859         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
25860         (anti_adjust_stack_and_probe): Likewise.
25861
25862 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25863
25864         * except.h (sjlj_emit_function_exit_after): Strengthen param
25865         "after" from rtx to rtx_insn *.  This is only called with
25866         result of get_last_insn (in function.c) so type-change should be
25867         self-contained.
25868
25869         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
25870         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
25871         to rtx_insn *.  These fields are only used from except.c so this
25872         type-change should be self-contained to this patch.
25873
25874         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
25875         local "last" from rtx to rtx_insn *.
25876         (dw2_build_landing_pads): Likewise for local "seq".
25877         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
25878         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
25879         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
25880         rtx to rtx_insn *.
25881         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
25882         to rtx_insn *.
25883         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
25884         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
25885         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
25886         referring to an insn.  Strengthen local "dispatch_label" from
25887         rtx to rtx_code_label *.
25888         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
25889         rtx_insn *.
25890         (expand_eh_return): Strengthen local "around_label" from
25891         rtx to rtx_code_label *.
25892         (convert_to_eh_region_ranges): Strengthen locals "iter",
25893         "last_action_insn", "first_no_action_insn",
25894         "first_no_action_insn_before_switch",
25895         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
25896
25897 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25898
25899         * dwarf2out.c (last_var_location_insn): Strengthen this variable
25900         from rtx to rtx_insn *.
25901         (cached_next_real_insn): Likewise.
25902         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
25903         working with insns.
25904         (dwarf2out_var_location): Strengthen locals "next_real",
25905         "next_note", "expected_next_loc_note", "last_start", "insn" from
25906         rtx to rtx_insn *.
25907
25908 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25909
25910         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
25911         from rtx to rtx_insn *.
25912         (create_pseudo_cfg): Likewise for local "insn".
25913
25914 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25915
25916         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
25917         from rtx to rtx_insn *.
25918         (df_bb_regno_last_def_find): Likewise.
25919
25920         * df-problems.c (df_rd_bb_local_compute): Likewise.
25921         (df_lr_bb_local_compute): Likewise.
25922         (df_live_bb_local_compute): Likewise.
25923         (df_chain_remove_problem): Likewise.
25924         (df_chain_create_bb): Likewise.
25925         (df_word_lr_bb_local_compute): Likewise.
25926         (df_remove_dead_eq_notes): Likewise for param "insn".
25927         (df_note_bb_compute): Likewise for local "insn".
25928         (simulate_backwards_to_point): Likewise.
25929         (df_md_bb_local_compute): Likewise.
25930
25931         * df-scan.c (df_scan_free_bb_info): Likewise.
25932         (df_scan_start_dump): Likewise.
25933         (df_scan_start_block): Likewise.
25934         (df_install_ref_incremental): Likewise for local "insn".
25935         (df_insn_rescan_all): Likewise.
25936         (df_reorganize_refs_by_reg_by_insn): Likewise.
25937         (df_reorganize_refs_by_insn_bb): Likewise.
25938         (df_recompute_luids): Likewise.
25939         (df_bb_refs_record): Likewise.
25940         (df_update_entry_exit_and_calls): Likewise.
25941         (df_bb_verify): Likewise.
25942
25943 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25944
25945         * ddg.h (struct ddg_node): Strengthen fields "insn" and
25946         "first_note" from rtx to rtx_insn *.
25947         (get_node_of_insn): Likewise for param 2 "insn".
25948         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
25949
25950         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
25951         rtx_insn *.
25952         (mem_write_insn_p): Likewise.
25953         (mem_access_insn_p): Likewise.
25954         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
25955         (def_has_ccmode_p): Likewise for param "insn".
25956         (add_cross_iteration_register_deps): Likewise for locals
25957         "def_insn" and "use_insn".
25958         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
25959         (build_intra_loop_deps): Likewise for local "src_insn".
25960         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
25961         to rtx_insn *.
25962         (get_node_of_insn): Likewise for param "insn".
25963
25964 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25965
25966         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
25967         (deletable_insn_p): Strengthen param "insn" from rtx to
25968         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
25969         find_call_stack_args, since this is guarded by CALL_P (insn).
25970         (marked_insn_p): Strengthen param "insn" from rtx to
25971         rtx_insn *.
25972         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
25973         invoking find_call_stack_args, since this is guarded by
25974         CALL_P (insn).
25975         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
25976         rtx_insn *; we know this is an insn since this was called by
25977         mark_nonreg_stores.
25978         (mark_nonreg_stores_2): Likewise.
25979         (mark_nonreg_stores): Strengthen param "insn" from rtx to
25980         rtx_insn *.
25981         (find_call_stack_args): Strengthen param "call_insn" from rtx to
25982         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
25983         to rtx_insn *.
25984         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
25985         from rtx to rtx_insn *.
25986         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
25987         "next", "ref_insn".
25988         (delete_unmarked_insns): Likewise for locals "insn", "next".
25989         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
25990         (mark_reg_dependencies): Likewise for param "insn".
25991         (rest_of_handle_ud_dce): Likewise for local "insn".
25992         (word_dce_process_block): Likewise.
25993         (dce_process_block): Likewise.
25994
25995 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25996
25997         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
25998         from rtx to rtx_insn *.
25999         (struct change_cc_mode_args): Likewise for field "insn".
26000         (this_insn): Strengthen from rtx to rtx_insn *.
26001         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
26002         with insn.
26003         (validate_canon_reg): Strengthen param "insn" from rtx to
26004         rtx_insn *.
26005         (canon_reg): Likewise.
26006         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
26007         dealing with insn.
26008         (record_jump_equiv): Strengthen param "insn" from rtx to
26009         rtx_insn *.
26010         (try_back_substitute_reg): Likewise, also for locals "prev",
26011         "bb_head".
26012         (find_sets_in_insn): Likewise for param "insn".
26013         (canonicalize_insn): Likewise.
26014         (cse_insn): Likewise.  Add a checked cast.
26015         (invalidate_from_clobbers): Likewise for param "insn".
26016         (invalidate_from_sets_and_clobbers): Likewise.
26017         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
26018         dealing with insn.
26019         (cse_prescan_path): Strengthen local "insn" from rtx to
26020         rtx_insn *.
26021         (cse_extended_basic_block): Likewise for locals "insn" and
26022         "prev_insn".
26023         (cse_main): Likewise for param "f".
26024         (check_for_label_ref): Likewise for local "insn".
26025         (set_live_p): Likewise for second param ("insn").
26026         (insn_live_p): Likewise for first param ("insn") and for local
26027         "next".
26028         (cse_change_cc_mode_insn): Likewise for first param "insn".
26029         (cse_change_cc_mode_insns): Likewise for first and second params
26030         "start" and "end".
26031         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
26032         and "end".
26033         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
26034         "cc_src_insn".
26035
26036 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26037             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26038             Anna Tikhonova  <anna.tikhonova@intel.com>
26039             Ilya Tocar  <ilya.tocar@intel.com>
26040             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26041             Ilya Verbin  <ilya.verbin@intel.com>
26042             Kirill Yukhin  <kirill.yukhin@intel.com>
26043             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26044
26045         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
26046         New.
26047         * config/i386/sse.md
26048         (define_mode_iterator VI248_AVX2): Delete.
26049         (define_mode_iterator VI2_AVX2_AVX512BW): New.
26050         (define_mode_iterator VI48_AVX2): Ditto.
26051         (define_insn <shift_insn><mode>3): Delete.
26052         (define_insn "<shift_insn><mode>3<mask_name>" with
26053         VI2_AVX2_AVX512BW): New.
26054         (define_insn "<shift_insn><mode>3<mask_name>" with
26055         VI48_AVX2): Ditto.
26056
26057 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26058             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26059             Anna Tikhonova  <anna.tikhonova@intel.com>
26060             Ilya Tocar  <ilya.tocar@intel.com>
26061             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26062             Ilya Verbin  <ilya.verbin@intel.com>
26063             Kirill Yukhin  <kirill.yukhin@intel.com>
26064             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26065
26066         * config/i386/sse.md
26067         (define_mode_iterator VI4F_BRCST32x2): New.
26068         (define_mode_attr 64x2_mode): Ditto.
26069         (define_mode_attr 32x2mode): Ditto.
26070         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
26071         with VI4F_BRCST32x2): Ditto.
26072         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
26073         with V16FI mode iterator): Ditto.
26074         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
26075         with V16FI): Ditto.
26076         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
26077         with VI8F_BRCST64x2): Ditto.
26078
26079 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26080             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26081             Anna Tikhonova  <anna.tikhonova@intel.com>
26082             Ilya Tocar  <ilya.tocar@intel.com>
26083             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26084             Ilya Verbin  <ilya.verbin@intel.com>
26085             Kirill Yukhin  <kirill.yukhin@intel.com>
26086             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26087
26088         * config/i386/sse.md
26089         (define_mode_iterator VI8_AVX512VL): New.
26090         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
26091
26092 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
26093
26094         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
26095         (define_mode_iterator V48_AVX512VL): New.
26096         (define_mode_iterator V12_AVX512VL): Ditto.
26097         (define_insn <avx512>_load<mode>_mask): Split into two similar
26098         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
26099         Refactor output template.
26100         (define_insn "<avx512>_store<mode>_mask"): Ditto.
26101
26102 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26103
26104         * cprop.c (struct occr): Strengthen field "insn" from rtx to
26105         rtx_insn *.
26106         (reg_available_p): Likewise for param "insn".
26107         (insert_set_in_table): Likewise.
26108         (hash_scan_set): Likewise.
26109         (hash_scan_insn): Likewise.
26110         (make_set_regs_unavailable): Likewise.
26111         (compute_hash_table_work): Likewise for local "insn".
26112         (reg_not_set_p): Strengthen param "insn" from const_rtx to
26113         const rtx_insn *.
26114         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
26115         (try_replace_reg): Likewise.
26116         (find_avail_set): Likewise.
26117         (cprop_jump): Likewise for params "setcc", "jump".
26118         (constprop_register): Likewise for param "insn".
26119         (cprop_insn): Likewise.
26120         (do_local_cprop): Likewise.
26121         (local_cprop_pass): Likewise for local "insn".
26122         (bypass_block): Likewise for params "setcc" and "jump".
26123         (bypass_conditional_jumps): Likewise for locals "setcc" and
26124         "insn".
26125         (one_cprop_pass): Likewise for local "insn".
26126
26127 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26128
26129         * compare-elim.c (struct comparison_use): Strengthen field "insn"
26130         from rtx to rtx_insn *.
26131         (struct comparison): Likewise, also for field "prev_clobber".
26132         (conforming_compare): Likewise for param "insn".
26133         (arithmetic_flags_clobber_p): Likewise.
26134         (find_flags_uses_in_insn): Likewise.
26135         (find_comparison_dom_walker::before_dom_children): Likewise for
26136         locals "insn", "next", "last_clobber".
26137         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
26138
26139 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26140
26141         * combine-stack-adj.c (struct csa_reflist): Strengthen field
26142         "insn" from rtx to rtx_insn *.
26143         (single_set_for_csa): Likewise for param "insn".
26144         (record_one_stack_ref): Likewise.
26145         (try_apply_stack_adjustment): Likewise.
26146         (struct record_stack_refs_data): Likewise for field "insn".
26147         (maybe_move_args_size_note): Likewise for params "last" and "insn".
26148         (prev_active_insn_bb): Likewise for return type and param "insn".
26149         (next_active_insn_bb): Likewise.
26150         (force_move_args_size_note): Likewise for params "prev" and "last"
26151         and locals "test", "next_candidate", "prev_candidate".
26152         (combine_stack_adjustments_for_block): Strengthen locals
26153         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
26154         rtx_insn *.
26155
26156 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26157
26158         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
26159         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
26160         (subst_insn): Likewise for this variable.
26161         (added_links_insn): Likewise.
26162         (struct insn_link): Likewise for field "insn".
26163         (alloc_insn_link): Likewise for param "insn".
26164         (struct undobuf): Likewise for field "other_insn".
26165         (find_single_use): Likewise for param "insn" and local "next".
26166         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
26167         (delete_noop_moves): Likewise for locals "insn", "next".
26168         (create_log_links): Likewise for locals "insn", "use_insn".
26169         Strengthen local "next_use" from rtx * to rtx_insn **.
26170         (insn_a_feeds_b): Likewise for params "a", "b".
26171         (combine_instructions): Likewise for param "f" and locals "insn",
26172         "next", "prev", "first", "last_combined_insn", "link", "link1",
26173         "temp".  Replace use of NULL_RTX with NULL when referring to
26174         insns.
26175         (setup_incoming_promotions): Likewise for param "first"
26176         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
26177         (can_combine_p): Likewise for params "insn", "i3", "pred",
26178         "pred2", "succ", "succ2" and for local "p".
26179         (combinable_i3pat): Likewise for param "i3".
26180         (cant_combine_insn_p): Likewise for param "insn".
26181         (likely_spilled_retval_p): Likewise.
26182         (adjust_for_new_dest): Likewise.
26183         (update_cfg_for_uncondjump): Likewise, also for local "insn".
26184         (try_combine): Likewise for return type and for params "i3", "i2",
26185         "i1", "i0", "last_combined_insn", and for locals "insn",
26186         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
26187         "i0_insn".  Eliminate local "tem" in favor of new locals
26188         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
26189         checked cast for now to rtx_insn * on the return type of
26190         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
26191         insns.
26192         (find_split_point): Strengthen param "insn" from rtx to
26193         rtx_insn *.
26194         (simplify_set): Likewise for local "other_insn".
26195         (recog_for_combine): Likewise for param "insn".
26196         (record_value_for_reg): Likewise.
26197         (record_dead_and_set_regs_1): Likewise for local
26198         "record_dead_insn".
26199         (record_dead_and_set_regs): Likewise for param "insn".
26200         (record_promoted_value): Likewise.
26201         (check_promoted_subreg): Likewise.
26202         (get_last_value_validate): Likewise.
26203         (reg_dead_at_p): Likewise.
26204         (move_deaths): Likewise for param "to_insn".
26205         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
26206         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
26207         in favor of new locals "tem_note" and "tem_insn", the latter being
26208         an rtx_insn *.
26209         (distribute_links): Strengthen locals "place", "insn" from rtx to
26210         rtx_insn *.
26211
26212 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26213
26214         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
26215         than a const_rtx.
26216         (can_delete_label_p): Require a const rtx_code_label * rather than
26217         a const_rtx.
26218         (delete_insn): Add checked cast to rtx_code_label * when we know
26219         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
26220         rtx to rtx_insn *.
26221         (delete_insn_chain): Strengthen locals "prev" and "current" from
26222         rtx to rtx_insn *.  Add a checked cast when assigning from
26223         "finish" (strengthening the params will come later).  Add a
26224         checked cast to rtx_note * in region where we know
26225         NOTE_P (current).
26226         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
26227         rtx_insn *.
26228         (compute_bb_for_insn): Likewise.
26229         (free_bb_for_insn): Likewise for local "insn".
26230         (compute_bb_for_insn): Likewise.
26231         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
26232         local "insn" from rtx to rtx_insn *
26233         (flow_active_insn_p): Require a const rtx_insn * rather than a
26234         const_rtx.
26235         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
26236         rtx_insn *.
26237         (can_fallthru): Likewise for locals "insn" and "insn2".
26238         (bb_note): Likewise for local "note".
26239         (first_insn_after_basic_block_note): Likewise for local "note" and
26240         for return type.
26241         (rtl_split_block): Likewise for locals "insn" and "next".
26242         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
26243         "end".
26244         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
26245         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
26246         "prev", "tmp".
26247         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
26248         them), "kill_from", "barrier", "new_insn".
26249         (patch_jump_insn): Likewise for params "insn", "old_label".
26250         (redirect_branch_edge): Likewise for locals "old_label", "insn".
26251         (force_nonfallthru_and_redirect): Likewise for locals "insn",
26252         "old_label", "new_label".
26253         (rtl_tidy_fallthru_edge): Likewise for local "q".
26254         (rtl_split_edge): Likewise for locals "before", "last".
26255         (commit_one_edge_insertion): Likewise for locals "before",
26256         "after", "insns", "tmp", "last", adding a checked cast where
26257         currently necessary.
26258         (commit_edge_insertions): Likewise.
26259         (rtl_dump_bb): Likewise for locals "insn", "last".
26260         (print_rtl_with_bb): Likewise for local "x".
26261         (rtl_verify_bb_insns): Likewise for local "x".
26262         (rtl_verify_bb_pointers): Likewise for local "insn".
26263         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
26264         "head", "end".
26265         (rtl_verify_fallthru): Likewise for local "insn".
26266         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
26267         (purge_dead_edges): Likewise for local "insn".
26268         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
26269         (skip_insns_after_block): Likewise for return type and for locals
26270         "insn", "last_insn", "next_head", "prev".
26271         (record_effective_endpoints): Likewise for locals "next_insn",
26272         "insn", "end".
26273         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
26274         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
26275         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
26276         (duplicate_insn_chain): For now, add checked cast from rtx to
26277         rtx_insn * when returning insn.
26278         (cfg_layout_duplicate_bb): Likewise for local "insn".
26279         (cfg_layout_delete_block): Likewise for locals "insn", "next",
26280         "prev", "remaints".
26281         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
26282         (rtl_block_empty_p): Likewise.
26283         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
26284         "split_point", "last".
26285         (rtl_block_ends_with_call_p): Likewise for local "insn".
26286         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
26287         const rtx_insn *.
26288         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
26289         "split_at_insn" from rtx to rtx_insn *.
26290         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
26291         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
26292         to const rtx_insn *.
26293         (rtl_account_profile_record): Likewise.
26294
26295 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26296
26297         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
26298         rtx to rtx_insn *.
26299         (average_num_loop_insns): Likewise.
26300         (init_set_costs): Likewise for local "seq".
26301         (seq_cost): Likewise for param "seq", from const_rtx to const
26302         rtx_insn *.
26303
26304 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26305
26306         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
26307         rtx to rtx_insn *.
26308
26309 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26310
26311         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
26312         "f1" and "f2" from rtx * to rtx_insn **.
26313         (flow_find_head_matching_sequence): Likewise.
26314
26315         * cfgcleanup.c (try_simplify_condjump): Strengthen local
26316         "cbranch_insn" from rtx to rtx_insn *.
26317         (thread_jump): Likewise for local "insn".
26318         (try_forward_edges): Likewise for local "last".
26319         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
26320         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
26321         "real_b_end".
26322         (can_replace_by): Likewise for params "i1", "i2".
26323         (old_insns_match_p): Likewise.
26324         (merge_notes): Likewise.
26325         (walk_to_nondebug_insn): Likewise for param "i1".
26326         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
26327         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
26328         "afterlast1", "afterlast2" from rtx to rtx_insn *.
26329         (flow_find_head_matching_sequence): Strengthen params "f1" and
26330         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
26331         "last1", "last2", "beforelast1", "beforelast2" from rtx to
26332         rtx_insn *.
26333         (outgoing_edges_match): Likewise for locals "last1", "last2".
26334         (try_crossjump_to_edge): Likewise for local "insn".
26335         Replace call to for_each_rtx with for_each_rtx_in_insn.
26336
26337         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
26338         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
26339         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
26340         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
26341         (try_optimize_cfg): Strengthen local "last" from rtx to
26342         rtx_insn *.
26343         (delete_dead_jumptables): Likewise for locals "insn", "next",
26344         "label".
26345
26346         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
26347         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
26348         "rtx else_first_tail", to reflect the basic-block.h changes above.
26349
26350 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26351
26352         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
26353         rtx_insn *.
26354         (purge_dead_tablejump_edges): Likewise.
26355         (find_bb_boundaries): Likewise for locals "insn", "end",
26356         "flow_transfer_insn".
26357
26358 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26359
26360         * caller-save.c (save_call_clobbered_regs): Strengthen locals
26361         "ins" and "prev" from rtx to rtx_insn *.
26362
26363 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26364
26365         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
26366         rtx_insn *.
26367         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
26368         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
26369         "scan_start".
26370         (load_register_parameters): Likewise for local "before_arg".
26371         (check_sibcall_argument_overlap): Likewise for param "insn".
26372         (expand_call): Likewise for locals "normal_call_insns",
26373         "tail_call_insns", "insns", "before_call", "after_args",
26374         "before_arg", "last", "prev".  Strengthen one of the "last" from
26375         rtx to rtx_call_insn *.
26376         (fixup_tail_calls): Strengthen local "insn" from rtx to
26377         rtx_insn *.
26378         (emit_library_call_value_1): Likewise for locals "before_call" and
26379         "last".
26380
26381 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26382
26383         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
26384         and "last" from rtx to rtx_insn *.
26385         (expand_builtin_nonlocal_goto): Likewise for local "insn".
26386         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
26387         rtx_call_insn *.
26388         (expand_errno_check): Strengthen local "lab" from rtx to
26389         rtx_code_label *.
26390         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
26391         rtx_insn *.
26392         (expand_builtin_mathfn_2): Likewise.
26393         (expand_builtin_mathfn_ternary): Likewise.
26394         (expand_builtin_mathfn_3): Likewise.
26395         (expand_builtin_interclass_mathfn): Likewise for local "last".
26396         (expand_builtin_int_roundingfn): Likewise for local "insns".
26397         (expand_builtin_int_roundingfn_2): Likewise.
26398         (expand_builtin_strlen): Likewise for local "before_strlen".
26399         (expand_builtin_strncmp): Likewise for local "seq".
26400         (expand_builtin_signbit): Likewise for local "last".
26401         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
26402         from rtx to rtx_code_label *.
26403         (expand_stack_restore):  Strengthen local "prev" from rtx to
26404         rtx_insn *.
26405
26406 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26407
26408         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
26409         to rtx_insn *.
26410         (struct btr_def_s): Likewise.
26411         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
26412         const rtx_insn *.
26413         (add_btr_def): Likewise.
26414         (new_btr_user): Likewise.
26415         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
26416         rtx to rtx_insn *.
26417         (link_btr_uses): Likewise.
26418         (move_btr_def): Likewise for locals "insp", "old_insn",
26419         "new_insn".  Add checked cast to rtx_insn * for now on result of
26420         gen_move_insn.
26421         (can_move_up): Strengthen param "insn" from const_rtx to
26422         const rtx_insn *.
26423
26424 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26425
26426         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
26427         rtx_insn *.
26428         (get_uncond_jump_length): Likewise for locals "label", "jump".
26429         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
26430         "jump", "insn".
26431         (add_labels_and_missing_jumps): Likewise for local "new_jump".
26432         (fix_up_fall_thru_edges): Likewise for local "old_jump".
26433         (find_jump_block): Likewise for local "insn".
26434         (fix_crossing_conditional_branches): Likewise for locals
26435         "old_jump", "new_jump".
26436         (fix_crossing_unconditional_branches): Likewise for locals
26437         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
26438         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
26439
26440 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26441
26442         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
26443         rtx to rtx_insn *.
26444         (struct mem_insn): Likewise for field "insn".
26445         (reg_next_use): Strengthen from rtx * to rtx_insn **.
26446         (reg_next_inc_use): Likewise.
26447         (reg_next_def): Likewise.
26448         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
26449         from rtx to rtx_insn *.
26450         (move_insn_before): Likewise for param "next_insn" and local "insns".
26451         (attempt_change): Likewise for local "mov_insn".
26452         (try_merge): Likewise for param "last_insn".
26453         (get_next_ref): Likewise for return type and local "insn".
26454         Strengthen param "next_array" from rtx * to rtx_insn **.
26455         (parse_add_or_inc): Strengthen param "insn" from rtx to
26456         rtx_insn *.
26457         (find_inc): Likewise for locals "insn" and "other_insn" (three of
26458         the latter).
26459         (merge_in_block): Likewise for locals "insn", "curr",
26460         "other_insn".
26461         (pass_inc_dec::execute): Update allocations of the arrays to
26462         reflect the stronger types.
26463
26464 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26465
26466         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
26467         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
26468         from rtx to rtx_code_label *.
26469
26470 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26471
26472         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
26473         to rtx_insn *.
26474
26475 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
26476
26477         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
26478         generated a warning and prevented bootstrapping the compiler.
26479
26480 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26481
26482         * rtl.h (delete_related_insns): Strengthen return type from rtx to
26483         rtx_insn *.
26484
26485         * jump.c (delete_related_insns): Likewise, also for locals "next"
26486         and "prev".
26487
26488 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26489
26490         * genautomata.c (output_internal_insn_latency_func): When writing
26491         the function "internal_insn_latency" to insn-automata.c,
26492         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
26493         allowing the optional guard function of (define_bypass) clauses to
26494         expect a pair of rtx_insn *, rather than a pair of rtx.
26495         (output_insn_latency_func): When writing the function
26496         "insn_latency", add an "uncast_" prefix to params "insn" and
26497         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
26498         using checked casts from the params, thus enabling the above
26499         change to the generated "internal_insn_latency" function.
26500
26501 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
26502
26503         PR tree-optimization/62091
26504         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
26505         handle correctly arrays.
26506         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
26507         inheritance binfos.
26508         (record_known_type): Walk into inner type.
26509         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
26510         condition on no type changes.
26511
26512 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26513
26514         * genattrtab.c (write_attr_get): Within the generated get_attr_
26515         functions, rename param "insn" to "uncast_insn" and reintroduce
26516         "insn" as an local rtx_insn * using a checked cast, so that "insn"
26517         is an rtx_insn * within insn-attrtab.c
26518
26519 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26520
26521         * output.h (peephole): Strengthen return type from rtx to
26522         rtx_insn *.
26523         * rtl.h (delete_for_peephole): Likewise for both params.
26524         * genpeep.c (main): In generated "peephole" function, strengthen
26525         return type and local "insn" from rtx to rtx_insn *.  For now,
26526         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
26527         rtx_insn *, with a checked cast.
26528         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
26529         locals "insn", "next", "prev" from rtx to rtx_insn *.
26530
26531 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
26532
26533         PR tree-optimization/62112
26534         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
26535         * gimple-iterator.h (gsi_replace): Return bool.
26536         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
26537         moved from ref_may_alias_global_p.
26538         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
26539         New overloads.
26540         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
26541         (stmt_kills_ref_p_1): Rename...
26542         (stmt_kills_ref_p): ... to this.
26543         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
26544         stmt_kills_ref_p): Declare.
26545         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
26546         Move the self-assignment case...
26547         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
26548
26549 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26550
26551         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
26552
26553         * emit-rtl.c (try_split): Likewise, also for locals "before" and
26554         "after".  For now, don't strengthen param "trial", which requires
26555         adding checked casts when returning it.
26556
26557 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26558
26559         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
26560         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
26561         "var_location" hook from rtx to rtx_insn *.
26562         (debug_nothing_rtx): Delete in favor of...
26563         (debug_nothing_rtx_code_label): New prototype.
26564         (debug_nothing_rtx_rtx): Delete unused prototype.
26565         (debug_nothing_rtx_insn): New prototype.
26566
26567         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
26568         invoking debug_hooks->var_location (in two places, one in a NOTE
26569         case of a switch statement, the other guarded by a CALL_P
26570         conditional.  Add checked cast to rtx_code_label * when invoking
26571         debug_hooks->label (within CODE_LABEL case of switch statement).
26572
26573         * dbxout.c (dbx_debug_hooks): Update "label" hook from
26574         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
26575         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
26576         (xcoff_debug_hooks): Likewise.
26577         * debug.c (do_nothing_debug_hooks): Likewise.
26578         (debug_nothing_rtx): Delete in favor of...
26579         (debug_nothing_rtx_insn): New function.
26580         (debug_nothing_rtx_rtx): Delete unused function.
26581         (debug_nothing_rtx_code_label): New function.
26582         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
26583         debug_nothing_rtx to debug_nothing_rtx_code_label.
26584         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
26585         to rtx_insn *.
26586         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
26587         debug_nothing_rtx to debug_nothing_rtx_insn.
26588         (sdbout_label): Strengthen param "insn" from rtx to
26589         rtx_code_label *.
26590         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
26591         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
26592         "var_location" hook from debug_nothing_rtx to
26593         debug_nothing_rtx_insn.
26594
26595 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26596
26597         * recog.h (insn_output_fn): Update this function typedef to match
26598         the changes below to the generated output functions, strengthening
26599         the 2nd param from rtx to rtx_insn *.
26600
26601         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
26602         insn when invoking an output function, to match the new signature
26603         of insn_output_fn with a stronger second param.
26604
26605         * genconditions.c (write_header): In the generated code for
26606         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
26607         to match the other changes in this patch.
26608
26609         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
26610         the generated "gen_" functions from rtx to rtx_insn * within their
26611         implementations.
26612
26613         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
26614         the subfunctions within the generated "recog_", "split", "peephole2"
26615         function trees from rtx to rtx_insn *.  For now, the top-level
26616         generated functions ("recog", "split", "peephole2") continue to
26617         take a plain rtx for "insn", to avoid introducing dependencies on
26618         other patches.  Rename this 2nd param from "insn" to
26619         "uncast_insn", and reintroduce "insn" as a local variable of type
26620         rtx_insn *, initialized at the top of the generated function with
26621         a checked cast on "uncast_insn".
26622         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
26623         the generated "gen_" functions from rtx to rtx_insn * within their
26624         prototypes.
26625
26626         * genoutput.c (process_template): Strengthen the 2nd param within
26627         the generated "output_" functions "insn" from rtx to rtx_insn *.
26628
26629 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
26630
26631         * tree-profile.c (tree_profiling): Skip external functions
26632         when doing coverage instrumentation.
26633         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
26634
26635 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26636
26637         * config/rs6000/altivec.h (vec_cpsgn): New #define.
26638         (vec_mergee): Likewise.
26639         (vec_mergeo): Likewise.
26640         (vec_cntlz): Likewise.
26641         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
26642         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
26643         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
26644         VMRGEW, and VMRGOW.
26645         * doc/extend.texi: Document various forms of vec_cpsgn,
26646         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
26647         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
26648         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
26649         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
26650         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
26651
26652 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26653
26654         * config/rs6000/rs6000.c (context.h): New include.
26655         (tree-pass.h): Likewise.
26656         (make_pass_analyze_swaps): New decl.
26657         (rs6000_option_override): Register pass_analyze_swaps.
26658         (swap_web_entry): New subsclass of web_entry_base (df.h).
26659         (special_handling_values): New enum.
26660         (union_defs): New function.
26661         (union_uses): Likewise.
26662         (insn_is_load_p): Likewise.
26663         (insn_is_store_p): Likewise.
26664         (insn_is_swap_p): Likewise.
26665         (rtx_is_swappable_p): Likewise.
26666         (insn_is_swappable_p): Likewise.
26667         (chain_purpose): New enum.
26668         (chain_contains_only_swaps): New function.
26669         (mark_swaps_for_removal): Likewise.
26670         (swap_const_vector_halves): Likewise.
26671         (adjust_subreg_index): Likewise.
26672         (permute_load): Likewise.
26673         (permute_store): Likewise.
26674         (handle_special_swappables): Likewise.
26675         (replace_swap_with_copy): Likewise.
26676         (dump_swap_insn_table): Likewise.
26677         (rs6000_analyze_swaps): Likewise.
26678         (pass_data_analyze_swaps): New pass_data.
26679         (pass_analyze_swaps): New rtl_opt_pass.
26680         (make_pass_analyze_swaps): New function.
26681         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
26682
26683 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26684
26685         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
26686         type from rtx to rtx_insn *.
26687         (create_copy_of_insn_rtx): Likewise.
26688         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
26689         (create_copy_of_insn_rtx): Likewise, also for local "res".
26690
26691 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26692
26693         * rtl.h (find_first_parameter_load): Strengthen return type from
26694         rtx to rtx_insn *.
26695         * rtlanal.c (find_first_parameter_load): Strengthen return type
26696         from rtx to rtx_insn *.  Add checked cast for now, to postpone
26697         strengthening the params.
26698
26699 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26700
26701         PR fortran/44054
26702         * diagnostic.c: Set default caret.
26703         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
26704         line is needed.
26705         * diagnostic.h (struct diagnostic_context):
26706
26707 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26708
26709         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
26710         (sel_bb_head): Strengthen return type insn_t (currently just an
26711         rtx) to rtx_insn *.
26712         (sel_bb_end): Likewise.
26713
26714         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
26715         (sel_bb_head): Strengthen return type and local "head" from
26716         insn_t (currently just an rtx) to rtx_insn *.
26717         (sel_bb_end): Likewise for return type.
26718         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
26719         working with insn.
26720
26721 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26722
26723         * basic-block.h (get_last_bb_insn): Strengthen return type from
26724         rtx to rtx_insn *.
26725         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
26726         end".
26727
26728 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26729
26730         PR fortran/44054
26731         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
26732         to here ...
26733         (diagnostic_report_diagnostic): ... from here.
26734         * toplev.c (general_init): Move code to c-family.
26735
26736 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26737
26738         * df.h (web_entry_base): Replace existing struct web_entry with a
26739         new class web_entry_base with only the predecessor member.
26740         (unionfind_root): Remove declaration and move to class member.
26741         (unionfind_union): Remove declaration and move to friend
26742         function.
26743         (union_defs): Remove declaration.
26744         * web.c (web_entry_base::unionfind_root): Modify to be member
26745         function and adjust accessors.
26746         (unionfind_union): Modify to be friend function and adjust
26747         accessors.
26748         (web_entry): New subclass of web_entry_base containing the reg
26749         member.
26750         (union_match_dups): Modify for struct -> class changes.
26751         (union_defs): Likewise.
26752         (entry_register): Likewise.
26753         (pass_web::execute): Likewise.
26754
26755 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
26756
26757         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
26758         builtin define __VEC_ELEMENT_REG_ORDER__.
26759
26760 2014-08-20  Martin Jambor  <mjambor@suse.cz>
26761             Wei Mi  <wmi@google.com>
26762
26763         PR ipa/60449
26764         PR middle-end/61776
26765         * tree-ssa-operands.c (update_stmt_operands): Remove
26766         MODIFIED_NORETURN_CALLS.
26767         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
26768         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
26769         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
26770         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
26771         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
26772         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
26773         (gimple_call_set_ctrl_altering): New func.
26774         (gimple_call_ctrl_altering_p): Ditto.
26775         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
26776         (make_blocks): Use gimple_call_initialize_ctrl_altering.
26777         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
26778         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
26779         remove MODIFIED_NORETURN_CALLS.
26780
26781 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
26782
26783         * coverage.c (coverage_compute_profile_id): Return non-0;
26784         also handle symbols with unique name.
26785         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
26786
26787 2014-08-20  Steve Ellcey  <sellcey@mips.com>
26788
26789         PR middle-end/49191
26790         * doc/sourcebuild.texi (non_strict_align): New.
26791
26792 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
26793
26794         * cgraphunit.c (ipa_passes, compile): Reshedule
26795         symtab_remove_unreachable_nodes passes; update comments.
26796         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
26797         TODO_remove_functions before the pass; the functions ought to be
26798         already removed.
26799         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
26800         TODO_remove_functions.
26801         * passes.c (pass_data_early_local_passes): Do not schedule function
26802         removal.
26803         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
26804
26805 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26806
26807         PR c/59304
26808         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
26809         before setting the option.
26810         * diagnostic.c (diagnostic_classify_diagnostic): Record
26811         command-line status.
26812
26813 2014-08-20  Richard Biener  <rguenther@suse.de>
26814
26815         PR lto/62190
26816         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
26817         to build uint{16,32,64}_type_node.
26818
26819 2014-08-20  Terry Guo  <terry.guo@arm.com>
26820
26821         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
26822         with immediate_operand.
26823
26824 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
26825
26826         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
26827         "insn" from an as_a to a safe_as_a, for the case when "insn" is
26828         NULL.
26829
26830 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26831
26832         PR preprocessor/51303
26833         * incpath.c (remove_duplicates): Use cpp_warning.
26834
26835 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26836
26837         PR c/60975
26838         PR c/53063
26839         * doc/options.texi (CPP): Document it.
26840         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
26841         * optc-gen.awk: Handle CPP.
26842         * opth-gen.awk: Likewise.
26843
26844 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26845
26846         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
26847         rtx_insn *.
26848         (duplicate_insn_chain): Likewise.
26849         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
26850         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
26851         checked cast for now (until we can strengthen the params in the
26852         same way).
26853         (duplicate_insn_chain): Likewise.
26854
26855 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26856
26857         * rtl.h (next_cc0_user): Strengthen return type from rtx to
26858         rtx_insn *.
26859         (prev_cc0_setter): Likewise.
26860
26861         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
26862         rtx_insn *, adding checked casts for now as necessary.
26863         (prev_cc0_setter): Likewise.
26864
26865 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26866
26867         * expr.h (emit_move_insn): Strengthen return type from rtx to
26868         rtx_insn *.
26869         (emit_move_insn_1): Likewise.
26870         (emit_move_complex_push): Likewise.
26871         (emit_move_complex_parts): Likewise.
26872
26873         * expr.c (emit_move_via_integer): Strengthen return type from rtx
26874         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
26875         with insns.
26876         (emit_move_complex_push): Strengthen return type from rtx to
26877         rtx_insn *.
26878         (emit_move_complex): Likewise, also for local "ret".
26879         (emit_move_ccmode): Likewise.
26880         (emit_move_multi_word): Likewise for return type and locals
26881         "last_insn", "seq".
26882         (emit_move_insn_1): Likewise for return type and locals "result",
26883         "ret".
26884         (emit_move_insn): Likewise for return type and local "last_insn".
26885         (compress_float_constant): Likewise.
26886
26887 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26888
26889         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
26890         from rtx to rtx_insn *.
26891
26892         * rtl.h (emit_insn_before): Likewise.
26893         (emit_insn_before_noloc): Likewise.
26894         (emit_insn_before_setloc): Likewise.
26895         (emit_jump_insn_before): Likewise.
26896         (emit_jump_insn_before_noloc): Likewise.
26897         (emit_jump_insn_before_setloc): Likewise.
26898         (emit_call_insn_before): Likewise.
26899         (emit_call_insn_before_noloc): Likewise.
26900         (emit_call_insn_before_setloc): Likewise.
26901         (emit_debug_insn_before): Likewise.
26902         (emit_debug_insn_before_noloc): Likewise.
26903         (emit_debug_insn_before_setloc): Likewise.
26904         (emit_label_before): Likewise.
26905         (emit_insn_after): Likewise.
26906         (emit_insn_after_noloc): Likewise.
26907         (emit_insn_after_setloc): Likewise.
26908         (emit_jump_insn_after): Likewise.
26909         (emit_jump_insn_after_noloc): Likewise.
26910         (emit_jump_insn_after_setloc): Likewise.
26911         (emit_call_insn_after): Likewise.
26912         (emit_call_insn_after_noloc): Likewise.
26913         (emit_call_insn_after_setloc): Likewise.
26914         (emit_debug_insn_after): Likewise.
26915         (emit_debug_insn_after_noloc): Likewise.
26916         (emit_debug_insn_after_setloc): Likewise.
26917         (emit_label_after): Likewise.
26918         (emit_insn): Likewise.
26919         (emit_debug_insn): Likewise.
26920         (emit_jump_insn): Likewise.
26921         (emit_call_insn): Likewise.
26922         (emit_label): Likewise.
26923         (gen_clobber): Likewise.
26924         (emit_clobber): Likewise.
26925         (gen_use): Likewise.
26926         (emit_use): Likewise.
26927         (emit): Likewise.
26928
26929         (emit_barrier_before): Strengthen return type from rtx to
26930         rtx_barrier *.
26931         (emit_barrier_after): Likewise.
26932         (emit_barrier): Likewise.
26933
26934         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
26935         from rtx to rtx_insn *.  Add checked casts for now when converting
26936         "last" from rtx to rtx_insn *.
26937         (emit_insn_before_noloc): Likewise for return type.
26938         (emit_jump_insn_before_noloc): Likewise.
26939         (emit_call_insn_before_noloc): Likewise.
26940         (emit_debug_insn_before_noloc): Likewise.
26941         (emit_barrier_before): Strengthen return type and local "insn"
26942         from rtx to rtx_barrier *.
26943         (emit_label_before): Strengthen return type from rtx to
26944         rtx_insn *.  Add checked cast for now when returning param
26945         (emit_pattern_after_noloc): Strengthen return type from rtx to
26946         rtx_insn *.  Add checked casts for now when converting "last" from
26947         rtx to rtx_insn *.
26948         (emit_insn_after_noloc): Strengthen return type from rtx to
26949         rtx_insn *.
26950         (emit_jump_insn_after_noloc): Likewise.
26951         (emit_call_insn_after_noloc): Likewise.
26952         (emit_debug_insn_after_noloc): Likewise.
26953         (emit_barrier_after): Strengthen return type from rtx to
26954         rtx_barrier *.
26955         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
26956         Add checked cast for now when converting "label" from rtx to
26957         rtx_insn *.
26958         (emit_pattern_after_setloc): Strengthen return type from rtx to
26959         rtx_insn *.  Add checked casts for now when converting "last" from
26960         rtx to rtx_insn *.
26961         (emit_pattern_after): Strengthen return type from rtx to
26962         rtx_insn *.
26963         (emit_insn_after_setloc): Likewise.
26964         (emit_insn_after): Likewise.
26965         (emit_jump_insn_after_setloc): Likewise.
26966         (emit_jump_insn_after): Likewise.
26967         (emit_call_insn_after_setloc): Likewise.
26968         (emit_call_insn_after): Likewise.
26969         (emit_debug_insn_after_setloc): Likewise.
26970         (emit_debug_insn_after): Likewise.
26971         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
26972         when converting "last" from rtx to rtx_insn *.
26973         (emit_pattern_before): Strengthen return type from rtx to
26974         rtx_insn *.
26975         (emit_insn_before_setloc): Likewise.
26976         (emit_insn_before): Likewise.
26977         (emit_jump_insn_before_setloc): Likewise.
26978         (emit_jump_insn_before): Likewise.
26979         (emit_call_insn_before_setloc): Likewise.
26980         (emit_call_insn_before): Likewise.
26981         (emit_debug_insn_before_setloc): Likewise.
26982         (emit_debug_insn_before): Likewise.
26983         (emit_insn): Strengthen return type and locals "last", "insn",
26984         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
26985         within cases where we know we have an insn.
26986         (emit_debug_insn): Likewise.
26987         (emit_jump_insn): Likewise.
26988         (emit_call_insn): Strengthen return type and local "insn" from rtx
26989         to rtx_insn *.
26990         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
26991         a checked cast to rtx_insn * for now on "label".
26992         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
26993         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
26994         (emit_use): Likewise.
26995         (gen_use): Likewise, also for local "seq".
26996         (emit): Likewise for return type and local "insn".
26997         (rtx_insn): Likewise for return type and local "new_rtx".
26998
26999         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
27000         from rtx to rtx_barrier *.
27001
27002         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
27003         changed return type from rtx to rtx_insn *, we must update
27004         "emit_fn" type, and this in turn means updating...
27005         (frame_insn): ...this.  Strengthen return type from rtx to
27006         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
27007
27008 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27009
27010         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
27011         rtx to rtx_jump_table_data *.  Also for local.
27012         * rtl.h (emit_jump_table_data): Likewise.
27013
27014 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27015
27016         * basic-block.h (create_basic_block_structure): Strengthen third
27017         param "bb_note" from rtx to rtx_note *.
27018         * rtl.h (emit_note_before): Strengthen return type from rtx to
27019         rtx_note *.
27020         (emit_note_after): Likewise.
27021         (emit_note): Likewise.
27022         (emit_note_copy): Likewise.  Also, strengthen param similarly.
27023         * function.h (struct rtl_data): Strengthen field
27024         "x_stack_check_probe_note" from rtx to rtx_note *.
27025
27026         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
27027         from rtx to rtx_note *.
27028         * cfgrtl.c (create_basic_block_structure): Strengthen third param
27029         "bb_note" from rtx to rtx_note *.
27030         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
27031         when calling emit_note_copy.
27032         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
27033         rtx_note *.
27034         (emit_note_after): Likewise.
27035         (emit_note_before): Likewise.
27036         (emit_note_copy): Likewise.  Also, strengthen param similarly.
27037         (emit_note): Likewise.
27038         * except.c (emit_note_eh_region_end): Likewise for return type.
27039         Strengthen local "next" from rtx to rtx_insn *.
27040         (convert_to_eh_region_ranges): Strengthen local "note"
27041         from rtx to rtx_note *.
27042         * final.c (change_scope): Likewise.
27043         (reemit_insn_block_notes): Likewise, for both locals named "note".
27044         Also, strengthen local "insn" from rtx to rtx_insn *.
27045         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
27046         rtx to rtx_note *.
27047         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
27048         strengthen local "seq" from rtx to rtx_insn *.
27049         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
27050         to rtx_note *.
27051         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
27052         vec<rtx_note *>.
27053         (get_bb_note_from_pool): Strengthen return type from rtx to
27054         rtx_note *.
27055         (sel_create_basic_block): Strengthen local "new_bb_note" from
27056         insn_t to rtx_note *.
27057         * var-tracking.c (emit_note_insn_var_location): Strengthen local
27058         "note" from rtx to rtx_note *.
27059         (emit_notes_in_bb): Likewise.
27060
27061 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27062
27063         * function.h (struct rtl_data): Strengthen field
27064         "x_parm_birth_insn" from rtx to rtx_insn *.
27065         * function.c (struct assign_parm_data_all): Strengthen fields
27066         "first_conversion_insn" and "last_conversion_insn" from rtx to
27067         rtx_insn *.
27068
27069 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27070
27071         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
27072         to rtx_insn *; also for local "var_end_seq".
27073         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
27074         (maybe_cleanup_end_of_block): Likewise for param "last" and local
27075         "insn".
27076         (expand_gimple_cond): Likewise for locals "last2" and "last".
27077         (mark_transaction_restart_calls): Likewise for local "insn".
27078         (expand_gimple_stmt): Likewise for return type and locals "last"
27079         and "insn".
27080         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
27081         (avoid_complex_debug_insns): Likewise for param "insn".
27082         (expand_debug_locations): Likewise for locals "insn", "last",
27083         "prev_insn" and "insn2".
27084         (expand_gimple_basic_block): Likewise for local "last".
27085         (construct_exit_block): Likewise for locals "head", "end",
27086         "orig_end".
27087         (pass_expand::execute): Likewise for locals "var_seq",
27088         "var_ret_seq", "next".
27089
27090 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27091
27092         * asan.h (asan_emit_stack_protection): Strengthen return type from
27093         rtx to rtx_insn *.
27094         * asan.c (asan_emit_stack_protection): Likewise.  Add local
27095         "insns" to hold the return value.
27096
27097 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27098
27099         * basic-block.h (bb_note): Strengthen return type from rtx to
27100         rtx_note *.
27101         * sched-int.h (bb_note): Likewise.
27102         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
27103
27104 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27105
27106         * rtl.h (make_insn_raw): Strengthen return type from rtx to
27107         rtx_insn *.
27108
27109         * emit-rtl.c (make_insn_raw): Strengthen return type and local
27110         "insn" from rtx to rtx_insn *.
27111         (make_debug_insn_raw): Strengthen return type from rtx to
27112         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
27113         (make_jump_insn_raw):  Strengthen return type from rtx to
27114         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
27115         (make_call_insn_raw):  Strengthen return type from rtx to
27116         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
27117         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
27118         callback from rtx to rtx_insn *; likewise for local "insn" and
27119         "next", adding a checked cast to rtx_insn in the relevant cases of
27120         the switch statement.
27121         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
27122         callback from rtx to rtx_insn *.
27123         (emit_pattern_after_setloc): Likewise.
27124         (emit_pattern_after): Likewise.
27125         (emit_pattern_before_setloc): Likewise.
27126         (emit_pattern_before): Likewise.
27127
27128 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27129
27130         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
27131         rtx_call_insn *.
27132         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
27133         accepting an rtx_insn *.
27134         (last_call_insn): Strengthen return type from rtx to
27135         rtx_call_insn *.
27136
27137 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27138
27139         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
27140         "insns" from rtx to rtx_insn *.
27141         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
27142         locals "insn" and "prev".
27143
27144 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27145
27146         * rtl.h (tablejump_p): Strengthen third param from rtx * to
27147         rtx_jump_table_data **.
27148
27149         * cfgbuild.c (make_edges): Introduce local "table", using it in
27150         place of "tmp" for jump table data.
27151         (find_bb_boundaries): Strengthen local "table" from rtx to
27152         rtx_jump_table_data *.
27153         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
27154         (outgoing_edges_match): Likewise for locals "table1" and "table2".
27155         (try_crossjump_to_edge): Likewise.
27156         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
27157         "table".
27158         (patch_jump_insn): Introduce local "table", using it in place of
27159         "tmp" for jump table data.
27160         (force_nonfallthru_and_redirect): Introduce local "table", so that
27161         call to tablejump_p can receive an rtx_jump_table_data **.  Update
27162         logic around the call to overwrite "note" appropriately if
27163         tablejump_p returns non-zero.
27164         (get_last_bb_insn): Introduce local "table", using it in place of
27165         "tmp" for jump table data.
27166         * dwarf2cfi.c (create_trace_edges): Likewise.
27167
27168         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
27169         from rtx to rtx_jump_table_data *.
27170         (create_fix_barrier): Strengthen local "tmp" from rtx to
27171         rtx_jump_table_data *.
27172         (arm_reorg): Likewise for local "table".
27173
27174         * config/s390/s390.c (s390_chunkify_start): Likewise.
27175
27176         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
27177
27178         * jump.c (delete_related_insns): Strengthen local "lab_next" from
27179         rtx to rtx_jump_table_data *.
27180
27181         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
27182         rtx_jump_table_data **.  Add a checked cast when writing through
27183         the pointer: we know there that local "table" is non-NULL and that
27184         JUMP_TABLE_DATA_P (table) holds.
27185         (label_is_jump_target_p): Introduce local "table", using it in
27186         place of "tmp" for jump table data.
27187
27188 2014-08-19  Marek Polacek  <polacek@redhat.com>
27189
27190         PR c++/62153
27191         * doc/invoke.texi: Document -Wbool-compare.
27192
27193 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27194
27195         * rtl.h (entry_of_function): Strengthen return type from rtx to
27196         rtx_insn *.
27197         * cfgrtl.c (entry_of_function): Likewise.
27198
27199 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27200
27201         * emit-rtl.h (get_insns): Strengthen return type from rtx to
27202         rtx_insn *, adding a checked cast for now.
27203         (get_last_insn): Likewise.
27204
27205 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27206
27207         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
27208         rtx_code_label *.
27209
27210         * emit-rtl.c (gen_label_rtx): Likewise.
27211
27212 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27213
27214         * rtl.h (previous_insn): Strengthen return type from rtx to
27215         rtx_insn *.
27216         (next_insn): Likewise.
27217         (prev_nonnote_insn): Likewise.
27218         (prev_nonnote_insn_bb): Likewise.
27219         (next_nonnote_insn): Likewise.
27220         (next_nonnote_insn_bb): Likewise.
27221         (prev_nondebug_insn): Likewise.
27222         (next_nondebug_insn): Likewise.
27223         (prev_nonnote_nondebug_insn): Likewise.
27224         (next_nonnote_nondebug_insn): Likewise.
27225         (prev_real_insn): Likewise.
27226         (next_real_insn): Likewise.
27227         (prev_active_insn): Likewise.
27228         (next_active_insn): Likewise.
27229
27230         * emit-rtl.c (next_insn): Strengthen return type from rtx to
27231         rtx_insn *, adding a checked cast.
27232         (previous_insn): Likewise.
27233         (next_nonnote_insn): Likewise.
27234         (next_nonnote_insn_bb): Likewise.
27235         (prev_nonnote_insn): Likewise.
27236         (prev_nonnote_insn_bb): Likewise.
27237         (next_nondebug_insn): Likewise.
27238         (prev_nondebug_insn): Likewise.
27239         (next_nonnote_nondebug_insn): Likewise.
27240         (prev_nonnote_nondebug_insn): Likewise.
27241         (next_real_insn): Likewise.
27242         (prev_real_insn): Likewise.
27243         (next_active_insn): Likewise.
27244         (prev_active_insn): Likewise.
27245
27246         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
27247         param "stepfunc" so that it returns an rtx_insn * rather than an
27248         rtx, to track the change to prev_nonnote_insn_bb, which is the
27249         only function this is called with.
27250         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
27251
27252 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
27253
27254         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
27255         assert.
27256
27257 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27258
27259         * coretypes.h (class rtx_debug_insn): Add forward declaration.
27260         (class rtx_nonjump_insn): Likewise.
27261         (class rtx_jump_insn): Likewise.
27262         (class rtx_call_insn): Likewise.
27263         (class rtx_jump_table_data): Likewise.
27264         (class rtx_barrier): Likewise.
27265         (class rtx_code_label): Likewise.
27266         (class rtx_note): Likewise.
27267
27268         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
27269         adding the invariant DEBUG_INSN_P (X).
27270         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
27271         the invariant NONJUMP_INSN_P (X).
27272         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
27273         the invariant JUMP_P (X).
27274         (class rtx_call_insn): New, a subclass of rtx_insn, adding
27275         the invariant CALL_P (X).
27276         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
27277         invariant JUMP_TABLE_DATA_P (X).
27278         (class rtx_barrier): New, a subclass of rtx_insn, adding the
27279         invariant BARRIER_P (X).
27280         (class rtx_code_label): New, a subclass of rtx_insn, adding
27281         the invariant LABEL_P (X).
27282         (class rtx_note): New, a subclass of rtx_insn, adding
27283         the invariant NOTE_P(X).
27284         (is_a_helper <rtx_debug_insn *>::test): New.
27285         (is_a_helper <rtx_nonjump_insn *>::test): New.
27286         (is_a_helper <rtx_jump_insn *>::test): New.
27287         (is_a_helper <rtx_call_insn *>::test): New.
27288         (is_a_helper <rtx_jump_table_data *>::test): New functions,
27289         overloaded for both rtx and rtx_insn *.
27290         (is_a_helper <rtx_barrier *>::test): New.
27291         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
27292         for both rtx and rtx_insn *.
27293         (is_a_helper <rtx_note *>::test): New.
27294
27295 2014-08-19  Marek Polacek  <polacek@redhat.com>
27296
27297         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
27298         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
27299         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
27300         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
27301
27302 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27303
27304         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
27305         rtx_insn *.  To help with transition, for now, convert from an
27306         access macro into a pair of functions: BND_TO, returning an
27307         rtx_insn *, and...
27308         (SET_BND_TO): New function, for use where BND_TO is used as an
27309         lvalue.
27310
27311         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
27312         SET_BND_TO.
27313         (BND_TO): New function, adding a checked cast.
27314         (SET_BND_TO): New function.
27315
27316         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
27317         SET_BND_TO.
27318         (compute_av_set_on_boundaries): Likewise.
27319
27320 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
27321
27322         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
27323         destination if it is used in source.
27324         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
27325         (*popcount<mode>2_falsedep_1): Likewise.
27326
27327 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
27328
27329         PR other/62168
27330         * configure.ac: Set install_gold_as_default to no first.
27331         * configure: Regenerated.
27332
27333 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27334
27335         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
27336         "note_list" field will eventually be an rtx_insn *.  To help with
27337         transition, for now, convert from an access macro into a pair of
27338         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
27339         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
27340         used as an lvalue.
27341
27342         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
27343         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
27344
27345         * sel-sched-ir.c (init_bb): Likewise.
27346         (sel_restore_notes): Likewise.
27347         (move_bb_info): Likewise.
27348         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
27349         (SET_BB_NOTE_LIST): New function.
27350
27351 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27352
27353         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
27354         field will eventually be an rtx_insn *.  To help with transition,
27355         for now, convert from an access macro into a pair of functions:
27356         VINSN_INSN_RTX, returning an rtx_insn *, and...
27357         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
27358         is used as an lvalue.
27359
27360         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
27361         SET_VINSN_INSN_RTX where it's used as an lvalue.
27362         (VINSN_INSN_RTX): New function.
27363         (SET_VINSN_INSN_RTX): New function.
27364
27365 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27366
27367         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
27368         eventually be rtx_insn *, but to help with transition, for now,
27369         convert from an access macro into a pair of functions: DEP_PRO
27370         returning an rtx_insn * and...
27371         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
27372         lvalue, returning an rtx&.
27373         (DEP_CON): Analogous changes to DEP_PRO above.
27374         (SET_DEP_CON): Likewise.
27375
27376         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
27377         an lvalue to SET_DEP_CON.
27378         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
27379         (sd_copy_back_deps): Likewise for DEP_CON.
27380         (DEP_PRO): New function, adding a checked cast for now.
27381         (DEP_CON): Likewise.
27382         (SET_DEP_PRO): New function.
27383         (SET_DEP_CON): Likewise.
27384
27385 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
27386
27387         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
27388         (extra_options): Add i386/cygwin.opt.
27389         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
27390         (CPP_SPEC): Accept -pthread.
27391         (LINK_SPEC): Ditto.
27392         (GOMP_SELF_SPECS): Update comment.
27393         * config/i386/cygwin.opt: New file for -pthread flag.
27394
27395 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27396
27397         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
27398         * df.h (DF_REF_INSN): Convert from a macro to a function, so
27399         that we can return an rtx_insn *.
27400
27401 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
27402
27403         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
27404         when building executables, not DLLs.  Add --large-address-aware
27405         under the same conditions.
27406         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
27407         when building executables, not DLLs.  Add --large-address-aware
27408         under the same conditions when using -m32.
27409
27410         * config/i386/cygwin-stdint.h: Throughout, make type
27411         definitions dependent on target architecture, not host.
27412
27413 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27414
27415         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
27416         the return type from rtx to rtx_insn *,  which will enable various
27417         conversions in followup patches.  For now this is is done by a
27418         checked cast.
27419         (NEXT_INSN): Likewise.
27420         (SET_PREV_INSN): Convert to an inline function.  This is intended
27421         for use as an lvalue, and so returns an rtx& to allow in-place
27422         modification.
27423         (SET_NEXT_INSN): Likewise.
27424
27425 2014-07-08  Mark Wielaard  <mjw@redhat.com>
27426
27427         PR debug/59051
27428         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
27429
27430 2014-08-19  Marek Polacek  <polacek@redhat.com>
27431
27432         PR c/61271
27433         * cgraphunit.c (handle_alias_pairs): Fix condition.
27434
27435 2014-08-19  Richard Biener  <rguenther@suse.de>
27436
27437         * gimple-fold.c (fold_gimple_assign): Properly build a
27438         null-pointer constant when devirtualizing addresses.
27439
27440 2014-07-07  Mark Wielaard  <mjw@redhat.com>
27441
27442         * dwarf2out.c (decl_quals): New function.
27443         (modified_type_die): Take one cv_quals argument instead of two,
27444         one for const and one for volatile.
27445         (add_type_attribute): Likewise.
27446         (generic_parameter_die): Call add_type_attribute with one modifier
27447         argument.
27448         (base_type_for_mode): Likewise.
27449         (add_bounds_info): Likewise.
27450         (add_subscript_info): Likewise.
27451         (gen_array_type_die): Likewise.
27452         (gen_descr_array_type_die): Likewise.
27453         (gen_entry_point_die): Likewise.
27454         (gen_enumeration_type_die): Likewise.
27455         (gen_formal_parameter_die): Likewise.
27456         (gen_subprogram_die): Likewise.
27457         (gen_variable_die): Likewise.
27458         (gen_const_die): Likewise.
27459         (gen_field_die): Likewise.
27460         (gen_pointer_type_die): Likewise.
27461         (gen_reference_type_die): Likewise.
27462         (gen_ptr_to_mbr_type_die): Likewise.
27463         (gen_inheritance_die): Likewise.
27464         (gen_subroutine_type_die): Likewise.
27465         (gen_typedef_die): Likewise.
27466         (force_type_die): Likewise.
27467
27468 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27469
27470         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
27471         if unset.
27472         * configure: Regenerate.
27473
27474 2014-08-19  Richard Biener  <rguenther@suse.de>
27475
27476         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
27477         DECL_EXTERNALs in BLOCKs as non-references.
27478         * tree-streamer-out.c (streamer_write_chain): Likewise.
27479
27480 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27481             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27482             Anna Tikhonova  <anna.tikhonova@intel.com>
27483             Ilya Tocar  <ilya.tocar@intel.com>
27484             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27485             Ilya Verbin  <ilya.verbin@intel.com>
27486             Kirill Yukhin  <kirill.yukhin@intel.com>
27487             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27488
27489         * config/i386/sse.md
27490         (define_mode_iterator VI48_AVX512F): Delete.
27491         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
27492         (define_mode_iterator VI2_AVX512VL): Ditto.
27493         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
27494         Delete.
27495         (define_insn
27496         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
27497         New.
27498         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
27499         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
27500         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
27501         with VI48_AVX512F_AVX512VL): New.
27502         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
27503         with VI2_AVX512VL): Ditto.
27504
27505 2014-08-19  Marek Polacek  <polacek@redhat.com>
27506
27507         * doc/invoke.texi: Document -Wc99-c11-compat.
27508
27509 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27510
27511         * rtl.h (PREV_INSN): Split macro in two: the existing one,
27512         for rvalues, and...
27513         (SET_PREV_INSN): New macro, for use as an lvalue.
27514         (NEXT_INSN, SET_NEXT_INSN): Likewise.
27515
27516         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
27517         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
27518         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
27519         (fixup_abnormal_edges): Likewise.
27520         (unlink_insn_chain): Likewise.
27521         (fixup_reorder_chain): Likewise.
27522         (cfg_layout_delete_block): Likewise.
27523         (cfg_layout_merge_blocks): Likewise.
27524         * combine.c (update_cfg_for_uncondjump): Likewise.
27525         * emit-rtl.c (link_insn_into_chain): Likewise.
27526         (remove_insn): Likewise.
27527         (delete_insns_since): Likewise.
27528         (reorder_insns_nobb): Likewise.
27529         (emit_insn_after_1): Likewise.
27530         * final.c (rest_of_clean_state): Likewise.
27531         (final_scan_insn): Likewise.
27532         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
27533         * haifa-sched.c (concat_note_lists): Likewise.
27534         (remove_notes): Likewise.
27535         (restore_other_notes): Likewise.
27536         (move_insn): Likewise.
27537         (unlink_bb_notes): Likewise.
27538         (restore_bb_notes): Likewise.
27539         * jump.c (delete_for_peephole): Likewise.
27540         * optabs.c (emit_libcall_block_1): Likewise.
27541         * reorg.c (emit_delay_sequence): Likewise.
27542         (fill_simple_delay_slots): Likewise.
27543         * sel-sched-ir.c (sel_move_insn): Likewise.
27544         (sel_remove_insn): Likewise.
27545         (get_bb_note_from_pool): Likewise.
27546         * sel-sched.c (move_nop_to_previous_block): Likewise.
27547
27548         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
27549         * config/c6x/c6x.c (gen_one_bundle): Likewise.
27550         (c6x_gen_bundles): Likewise.
27551         (hwloop_optimize): Likewise.
27552         * config/frv/frv.c (frv_function_prologue): Likewise.
27553         (frv_register_nop): Likewise.
27554         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
27555         (ia64_reorg): Likewise.
27556         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
27557         (mep_make_bundle): Likewise.
27558         (mep_bundle_insns): Likewise.
27559         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
27560         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
27561         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
27562
27563 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27564
27565         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
27566         return type from rtx to rtx_insn *.
27567         (BB_END): Likewise.
27568         (BB_HEADER): Likewise.
27569         (BB_FOOTER): Likewise.
27570         (SET_BB_HEAD): Convert to a function.
27571         (SET_BB_END): Likewise.
27572         (SET_BB_HEADER): Likewise.
27573         (SET_BB_FOOTER): Likewise.
27574
27575         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
27576         Strengthen the return type from rtx to rtx_insn *.  For now, this
27577         is done by adding a checked cast, but this will eventually
27578         become a field lookup.
27579         (BB_END): Likewise.
27580         (BB_HEADER): Likewise.
27581         (BB_FOOTER): Likewise.
27582         (SET_BB_HEAD): New function, from macro of same name.  This is
27583         intended for use as an lvalue, and so returns an rtx& to allow
27584         in-place modification.
27585         (SET_BB_END): Likewise.
27586         (SET_BB_HEADER): Likewise.
27587         (SET_BB_FOOTER): Likewise.
27588
27589 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
27590
27591         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
27592         for rvalues, and...
27593         (SET_BB_HEAD): New macro, for use as a lvalue.
27594         (BB_END, SET_BB_END): Likewise.
27595         (BB_HEADER, SET_BB_HEADER): Likewise.
27596         (BB_FOOTER, SET_BB_FOOTER): Likewise.
27597
27598         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
27599         of BB_* macros into SET_BB_* macros.
27600         (fix_crossing_unconditional_branches): Likewise.
27601         * caller-save.c (save_call_clobbered_regs): Likewise.
27602         (insert_one_insn): Likewise.
27603         * cfgbuild.c (find_bb_boundaries): Likewise.
27604         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
27605         (outgoing_edges_match): Likewise.
27606         (try_optimize_cfg): Likewise.
27607         * cfgexpand.c (expand_gimple_cond): Likewise.
27608         (expand_gimple_tailcall): Likewise.
27609         (expand_gimple_basic_block): Likewise.
27610         (construct_exit_block): Likewise.
27611         * cfgrtl.c (delete_insn): Likewise.
27612         (create_basic_block_structure): Likewise.
27613         (rtl_delete_block): Likewise.
27614         (rtl_split_block): Likewise.
27615         (emit_nop_for_unique_locus_between): Likewise.
27616         (rtl_merge_blocks): Likewise.
27617         (block_label): Likewise.
27618         (try_redirect_by_replacing_jump): Likewise.
27619         (emit_barrier_after_bb): Likewise.
27620         (fixup_abnormal_edges): Likewise.
27621         (record_effective_endpoints): Likewise.
27622         (relink_block_chain): Likewise.
27623         (fixup_reorder_chain): Likewise.
27624         (fixup_fallthru_exit_predecessor): Likewise.
27625         (cfg_layout_duplicate_bb): Likewise.
27626         (cfg_layout_split_block): Likewise.
27627         (cfg_layout_delete_block): Likewise.
27628         (cfg_layout_merge_blocks): Likewise.
27629         * combine.c (update_cfg_for_uncondjump): Likewise.
27630         * emit-rtl.c (add_insn_after): Likewise.
27631         (remove_insn): Likewise.
27632         (reorder_insns): Likewise.
27633         (emit_insn_after_1): Likewise.
27634         * haifa-sched.c (get_ebb_head_tail): Likewise.
27635         (restore_other_notes): Likewise.
27636         (move_insn): Likewise.
27637         (sched_extend_bb): Likewise.
27638         (fix_jump_move): Likewise.
27639         * ifcvt.c (noce_process_if_block): Likewise.
27640         (dead_or_predicable): Likewise.
27641         * ira.c (update_equiv_regs): Likewise.
27642         * reg-stack.c (change_stack): Likewise.
27643         * sel-sched-ir.c (sel_move_insn): Likewise.
27644         * sel-sched.c (move_nop_to_previous_block): Likewise.
27645
27646         * config/c6x/c6x.c (hwloop_optimize): Likewise.
27647         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
27648
27649 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
27650
27651         * rtl.h (for_each_rtx_in_insn): New function.
27652         * rtlanal.c (for_each_rtx_in_insn): Likewise.
27653
27654 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
27655
27656         * coretypes.h (class rtx_insn): Add forward declaration.
27657
27658         * rtl.h: Include is-a.h.
27659         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
27660         workaround to ensure gengtype knows inheritance is occurring,
27661         whilst continuing to use the pre-existing special-casing for
27662         rtx_def.
27663         (class rtx_insn): New subclass of rtx_def, adding the
27664         invariant that we're dealing with something we can sanely use
27665         INSN_UID, NEXT_INSN, PREV_INSN on.
27666         (is_a_helper <rtx_insn *>::test): New.
27667         (is_a_helper <const rtx_insn *>::test): New.
27668
27669 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
27670
27671         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
27672
27673 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
27674
27675         * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
27676         comdats as extern.
27677
27678 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
27679
27680         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
27681         to BUILT_IN_UNREACHABLE.
27682
27683 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
27684
27685         PR target/62011
27686         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
27687         New tune flag.
27688         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
27689         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
27690         (ffs<mode>2): Do not expand with tzcnt for
27691         TARGET_AVOID_FALSE_DEP_FOR_BMI.
27692         (ffssi2_no_cmove): Ditto.
27693         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
27694         (ctz<mode>2): New expander.
27695         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
27696         (*ctz<mode>2_falsedep): New insn.
27697         (*ctz<mode>2): Rename from ctz<mode>2.
27698         (clz<mode>2_lzcnt): New expander.
27699         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
27700         (*clz<mode>2_lzcnt_falsedep): New insn.
27701         (*clz<mode>2): Rename from ctz<mode>2.
27702         (popcount<mode>2): New expander.
27703         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
27704         (*popcount<mode>2_falsedep): New insn.
27705         (*popcount<mode>2): Rename from ctz<mode>2.
27706         (*popcount<mode>2_cmp): Remove.
27707         (*popcountsi2_cmp_zext): Ditto.
27708
27709 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
27710
27711         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
27712         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
27713         * config/microblaze/microblaze.h
27714         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
27715
27716 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
27717
27718         PR other/62168
27719         * configure.ac: Set install_gold_as_default to no for
27720         --enable-gold=no.
27721         * configure: Regenerated.
27722
27723 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
27724
27725         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
27726         * config.in: Add undef of HAVE_isl.
27727         * configure: Regenerate.
27728         * configure.ac: Add definition of HAVE_isl.
27729         * graphite-blocking.c: Add checking of HAVE_isl.
27730         * graphite-dependences.c: Likewise.
27731         * graphite-interchange.c: Likewise.
27732         * graphite-isl-ast-to-gimple.c: Likewise.
27733         * graphite-optimize-isl.c: Likewise.
27734         * graphite-poly.c: Likewise.
27735         * graphite-scop-detection.c: Likewise.
27736         * graphite-sese-to-poly.c: Likewise.
27737         * graphite.c: Likewise.
27738         * toplev.c: Replace the checking of HAVE_cloog with the checking
27739         of HAVE_isl.
27740
27741 2014-08-18  Richard Biener  <rguenther@suse.de>
27742
27743         PR tree-optimization/62090
27744         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
27745         (fold_builtin_3): Do not fold snprintf.
27746         (fold_builtin_4): Likewise.
27747         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
27748         moved from builtins.c.
27749         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
27750         (gimple_fold_builtin): Do not fold sprintf here.
27751
27752 2014-08-18  Richard Biener  <rguenther@suse.de>
27753
27754         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
27755         code to ...
27756         (maybe_canonicalize_mem_ref_addr): ... this function.
27757         (fold_stmt_1): Apply it here before all simplification.
27758
27759 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
27760
27761         PR ipa/61800
27762         * cgraph.h (cgraph_node::create_indirect_edge): Add
27763         compute_indirect_info param.
27764         * cgraph.c (cgraph_node::create_indirect_edge): Compute
27765         indirect_info only when it is required.
27766         * cgraphclones.c (cgraph_clone_edge): Do not recompute
27767         indirect_info fore cloned indirect edge.
27768
27769 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27770             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27771             Anna Tikhonova  <anna.tikhonova@intel.com>
27772             Ilya Tocar  <ilya.tocar@intel.com>
27773             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27774             Ilya Verbin  <ilya.verbin@intel.com>
27775             Kirill Yukhin  <kirill.yukhin@intel.com>
27776             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27777
27778         * config/i386/sse.md
27779         (define_mode_iterator VI8_AVX2_AVX512BW): New.
27780         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
27781
27782 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27783             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27784             Anna Tikhonova  <anna.tikhonova@intel.com>
27785             Ilya Tocar  <ilya.tocar@intel.com>
27786             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27787             Ilya Verbin  <ilya.verbin@intel.com>
27788             Kirill Yukhin  <kirill.yukhin@intel.com>
27789             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27790
27791         * config/i386/sse.md
27792         (define_mode_iterator VF1_AVX512VL): New.
27793         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
27794         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
27795         New.
27796
27797 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27798             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27799             Anna Tikhonova  <anna.tikhonova@intel.com>
27800             Ilya Tocar  <ilya.tocar@intel.com>
27801             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27802             Ilya Verbin  <ilya.verbin@intel.com>
27803             Kirill Yukhin  <kirill.yukhin@intel.com>
27804             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27805
27806         * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
27807         * config/i386/i386.md
27808         (define_code_iterator any_float): New.
27809         (define_code_attr floatsuffix): New.
27810         * config/i386/sse.md
27811         (define_mode_iterator VF1_128_256VL): New.
27812         (define_mode_iterator VF2_512_256VL): New.
27813         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
27814         TARGET check.
27815         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
27816         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
27817         New.
27818         (define_mode_attr qq2pssuff): New.
27819         (define_mode_attr sselongvecmode): New.
27820         (define_mode_attr sselongvecmodelower): New.
27821         (define_mode_attr sseintvecmode3): New.
27822         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
27823         New.
27824         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
27825         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
27826         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
27827         (define_insn "ufloatv2siv2df2<mask_name>"): New.
27828
27829 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27830             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27831             Anna Tikhonova  <anna.tikhonova@intel.com>
27832             Ilya Tocar  <ilya.tocar@intel.com>
27833             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27834             Ilya Verbin  <ilya.verbin@intel.com>
27835             Kirill Yukhin  <kirill.yukhin@intel.com>
27836             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27837
27838         * config/i386/sse.md
27839         (define_mode_iterator VF2_AVX512VL): New.
27840         (define_mode_attr sseintvecmode2): New.
27841         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
27842         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
27843         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
27844         (define_insn
27845         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
27846         Ditto.
27847         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
27848         Ditto.
27849         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
27850         Ditto.
27851
27852 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27853             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27854             Anna Tikhonova  <anna.tikhonova@intel.com>
27855             Ilya Tocar  <ilya.tocar@intel.com>
27856             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27857             Ilya Verbin  <ilya.verbin@intel.com>
27858             Kirill Yukhin  <kirill.yukhin@intel.com>
27859             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27860
27861         * config/i386/i386.md
27862         (define_insn "*movoi_internal_avx"): Add evex version.
27863         (define_insn "*movti_internal"): Ditto.
27864
27865 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27866             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27867             Anna Tikhonova  <anna.tikhonova@intel.com>
27868             Ilya Tocar  <ilya.tocar@intel.com>
27869             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27870             Ilya Verbin  <ilya.verbin@intel.com>
27871             Kirill Yukhin  <kirill.yukhin@intel.com>
27872             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27873
27874         * config/i386/i386.md
27875         (define_attr "isa"): Add avx512dq, noavx512dq.
27876         (define_attr "enabled"): Ditto.
27877         * config/i386/sse.md
27878         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
27879
27880 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27881             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27882             Anna Tikhonova  <anna.tikhonova@intel.com>
27883             Ilya Tocar  <ilya.tocar@intel.com>
27884             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27885             Ilya Verbin  <ilya.verbin@intel.com>
27886             Kirill Yukhin  <kirill.yukhin@intel.com>
27887             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27888
27889         * config/i386/i386.c
27890         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
27891         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
27892         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
27893         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
27894         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
27895         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
27896         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
27897         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
27898         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
27899         * config/i386/sse.md
27900         (define_mode_iterator VMOVE): Allow V4TI mode.
27901         (define_mode_iterator V_AVX512VL): New.
27902         (define_mode_iterator V): New handling for AVX512VL.
27903         (define_insn "avx512f_load<mode>_mask"): Delete.
27904         (define_insn "<avx512>_load<mode>_mask"): New.
27905         (define_insn "avx512f_store<mode>_mask"): Delete.
27906         (define_insn "<avx512>_store<mode>_mask"): New.
27907
27908
27909 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
27910
27911         PR sanitizer/62089
27912         * asan.c (instrument_derefs): Fix bitfield check.
27913
27914 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
27915
27916         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
27917         * config/rs6000/htm.md (ttest): Remove clobber.
27918         * config/rs6000/predicates.md (any_mask_operand): New predicate.
27919         (and_operand): Reformat.
27920         (and_2rld_operand): New predicate.
27921         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
27922         parameter.
27923         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
27924         parameter.  Handle AND directly.
27925         (rs6000_split_logical_di): Remove last parameter.
27926         (rs6000_split_logical): Remove last parameter.  Remove obsolete
27927         comment.
27928         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
27929         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
27930         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
27931         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
27932         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
27933         and 5 anonymous splitters):  Delete.
27934         (and<mode>3): New expander.
27935         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
27936         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
27937         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
27938         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
27939         (floatdisf2_internal1): Remove clobbers.
27940         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
27941         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
27942         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
27943         (and<mode>3 for BOOL_128): Remove clobber.
27944         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
27945         rs6000_split_logical.
27946         (*bool<mode>3_internal for BOOL_128): Adjust call of
27947         rs6000_split_logical.
27948         (*boolc<mode>3_internal1 for BOOL_128,
27949         *boolc<mode>3_internal2 for BOOL_128,
27950         *boolcc<mode>3_internal1 for BOOL_128,
27951         *boolcc<mode>3_internal2 for BOOL_128,
27952         *eqv<mode>3_internal1 for BOOL_128,
27953         *eqv<mode>3_internal2 for BOOL_128,
27954         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
27955         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
27956         clobber.
27957         (*vec_reload_and_reg_<mptrsize>): Delete.
27958
27959 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
27960
27961         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
27962         and split, *boolccsi3_internal3 and split): Delete.
27963         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
27964         *boolccdi3_internal3 and split): Delete.
27965         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
27966         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
27967
27968 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
27969
27970         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
27971         and split, *boolcsi3_internal3 and split): Delete.
27972         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
27973         *boolcdi3_internal3 and split): Delete.
27974         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
27975
27976 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
27977
27978         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
27979         <'u'>: Also support printing the low-order 16 bits.
27980         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
27981         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
27982         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
27983         *booldi3_internal3 and split): Delete.
27984         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
27985         *bool<mode>3_dot2): New.
27986         (two anonymous define_splits for non_logical_cint_operand): Merge.
27987
27988 2014-08-17  Marek Polacek  <polacek@redhat.com>
27989             Manuel López-Ibáñez  <manu@gcc.gnu.org>
27990
27991         PR c/62059
27992         * diagnostic.c (adjust_line): Add gcc_checking_assert.
27993         (diagnostic_show_locus): Don't print caret diagnostic
27994         if a column is larger than the line_width.
27995
27996 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
27997
27998         * common.opt: Make the ISL AST generator to be the main code generator
27999         of Graphite.
28000
28001 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
28002
28003         * wide-int.h (generic_wide_int): Declare as class instead of struct.
28004
28005 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
28006
28007         PR target/61641
28008         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
28009         Declare.
28010         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
28011         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
28012         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
28013         Define.
28014         * config/pa/pa.md (begin_brtab): Delete insn.
28015         (end_brtab): Likewise.
28016
28017 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28018
28019         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
28020
28021 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
28022
28023         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
28024         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
28025         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
28026         (get_dynamic_type): Remove.
28027         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
28028         (clear_speculation): Bring to ipa-deivrt.h
28029         (get_class_context): Rename to ...
28030         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
28031         (contains_type_p): Update.
28032         (get_dynamic_type): Rename to ...
28033         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
28034         (possible_polymorphic_call_targets): UPdate.
28035         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
28036         * ipa-prop.c (ipa_analyze_call_uses): Update.
28037
28038 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
28039
28040         * doc/invoke.texi (SH options): Document missing processor variant
28041         options.  Remove references to Hitachi.  Undocument deprecated mspace
28042         option.
28043
28044 2014-08-15  Jason Merrill  <jason@redhat.com>
28045
28046         * tree.c (type_hash_canon): Uncomment assert.
28047
28048 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28049
28050         * input.h (in_system_header_at): Add comment.
28051
28052 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28053
28054         PR fortran/44054
28055         * diagnostic.c (build_message_string): Make it extern.
28056         * diagnostic.h (build_message_string): Make it extern.
28057
28058 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
28059
28060         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
28061         load/store from/to non-floating class pseudo.
28062
28063 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28064
28065         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
28066
28067 2014-08-15  Richard Biener  <rguenther@suse.de>
28068
28069         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
28070         (get_constraint_for_ssa_var): Remove dead code.
28071         (get_constraint_for_1): Adjust.
28072         (find_what_var_points_to): Likewise.
28073         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
28074
28075 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
28076
28077         PR target/61878
28078         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
28079         (_mm512_mask_cmpge_epu32_mask): Ditto.
28080         (_mm512_cmpge_epu32_mask): Ditto.
28081         (_mm512_mask_cmpge_epi64_mask): Ditto.
28082         (_mm512_cmpge_epi64_mask): Ditto.
28083         (_mm512_mask_cmpge_epu64_mask): Ditto.
28084         (_mm512_cmpge_epu64_mask): Ditto.
28085         (_mm512_mask_cmple_epi32_mask): Ditto.
28086         (_mm512_cmple_epi32_mask): Ditto.
28087         (_mm512_mask_cmple_epu32_mask): Ditto.
28088         (_mm512_cmple_epu32_mask): Ditto.
28089         (_mm512_mask_cmple_epi64_mask): Ditto.
28090         (_mm512_cmple_epi64_mask): Ditto.
28091         (_mm512_mask_cmple_epu64_mask): Ditto.
28092         (_mm512_cmple_epu64_mask): Ditto.
28093         (_mm512_mask_cmplt_epi32_mask): Ditto.
28094         (_mm512_cmplt_epi32_mask): Ditto.
28095         (_mm512_mask_cmplt_epu32_mask): Ditto.
28096         (_mm512_cmplt_epu32_mask): Ditto.
28097         (_mm512_mask_cmplt_epi64_mask): Ditto.
28098         (_mm512_cmplt_epi64_mask): Ditto.
28099         (_mm512_mask_cmplt_epu64_mask): Ditto.
28100         (_mm512_cmplt_epu64_mask): Ditto.
28101         (_mm512_mask_cmpneq_epi32_mask): Ditto.
28102         (_mm512_mask_cmpneq_epu32_mask): Ditto.
28103         (_mm512_cmpneq_epu32_mask): Ditto.
28104         (_mm512_mask_cmpneq_epi64_mask): Ditto.
28105         (_mm512_cmpneq_epi64_mask): Ditto.
28106         (_mm512_mask_cmpneq_epu64_mask): Ditto.
28107         (_mm512_cmpneq_epu64_mask): Ditto.
28108         (_mm512_castpd_ps): Ditto.
28109         (_mm512_castpd_si512): Ditto.
28110         (_mm512_castps_pd): Ditto.
28111         (_mm512_castps_si512): Ditto.
28112         (_mm512_castsi512_ps): Ditto.
28113         (_mm512_castsi512_pd): Ditto.
28114         (_mm512_castpd512_pd128): Ditto.
28115         (_mm512_castps512_ps128): Ditto.
28116         (_mm512_castsi512_si128): Ditto.
28117         (_mm512_castpd512_pd256): Ditto.
28118         (_mm512_castps512_ps256): Ditto.
28119         (_mm512_castsi512_si256): Ditto.
28120         (_mm512_castpd128_pd512): Ditto.
28121         (_mm512_castps128_ps512): Ditto.
28122         (_mm512_castsi128_si512): Ditto.
28123         (_mm512_castpd256_pd512): Ditto.
28124         (_mm512_castps256_ps512): Ditto.
28125         (_mm512_castsi256_si512): Ditto.
28126         (_mm512_cmpeq_epu32_mask): Ditto.
28127         (_mm512_mask_cmpeq_epu32_mask): Ditto.
28128         (_mm512_mask_cmpeq_epu64_mask): Ditto.
28129         (_mm512_cmpeq_epu64_mask): Ditto.
28130         (_mm512_cmpgt_epu32_mask): Ditto.
28131         (_mm512_mask_cmpgt_epu32_mask): Ditto.
28132         (_mm512_mask_cmpgt_epu64_mask): Ditto.
28133         (_mm512_cmpgt_epu64_mask): Ditto.
28134         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
28135         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
28136         * config/i386/i386.c (enum ix86_builtins): Add
28137         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
28138         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
28139         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
28140         (bdesc_args): Add __builtin_ia32_si512_256si,
28141         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
28142         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
28143         __builtin_ia32_pd512_pd.
28144         (ix86_expand_args_builtin): Handle new FTYPEs.
28145         * config/i386/sse.md (castmode): Add 512-bit modes.
28146         (AVX512MODE2P): New.
28147         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
28148         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
28149
28150 2014-08-15  Richard Biener  <rguenther@suse.de>
28151
28152         * fold-const.c (tree_swap_operands_p): Put all constants
28153         last, also strip sign-changing NOPs when considering further
28154         canonicalization.  Canonicalize also when optimizing for size.
28155
28156 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28157
28158         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
28159         one_match > zero_match case to just before simple_sequence.
28160
28161 2014-08-15  Richard Biener  <rguenther@suse.de>
28162
28163         * data-streamer.h (streamer_string_index, string_for_index):
28164         Remove.
28165         * data-streamer-out.c (streamer_string_index): Make static.
28166         * data-streamer-in.c (string_for_index): Likewise.
28167         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
28168         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
28169
28170 2014-08-15  Richard Biener  <rguenther@suse.de>
28171
28172         PR tree-optimization/62031
28173         * tree-data-ref.c (dr_analyze_indices): Do not set
28174         DR_UNCONSTRAINED_BASE.
28175         (dr_may_alias_p): All indirect accesses have to go the
28176         formerly DR_UNCONSTRAINED_BASE path.
28177         * tree-data-ref.h (struct indices): Remove
28178         unconstrained_base member.
28179         (DR_UNCONSTRAINED_BASE): Remove.
28180
28181 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
28182
28183         PR middle-end/62092
28184         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
28185         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
28186         in OMP_CLAUSE_MAP in some outer target region.
28187
28188 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
28189
28190         * tree-ssa-loop-ivopts.c (ivopts_data): New field
28191         name_expansion_cache.
28192         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
28193         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
28194         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
28195         (difference_cannot_overflow_p): New parameter.  Use affine
28196         expansion for equality check.
28197         (iv_elimination_compare_lt): Pass new argument.
28198
28199 2014-08-14  DJ Delorie  <dj@redhat.com>
28200
28201         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
28202         variables to the accumulator.
28203
28204         * config/rl78/predicates.md (rl78_near_mem_operand): New.
28205         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
28206         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
28207         with far-far moves.
28208
28209         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
28210         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
28211         (umulqihi3_virt): Likewise.
28212         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
28213         (umulqihi3_real): Likewise.
28214
28215         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
28216
28217 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
28218
28219         PR tree-optimization/62091
28220         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
28221         function_entry_reached.
28222         (walk_aliased_vdefs): Clear it here.
28223         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
28224
28225 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
28226
28227         * ipa-utils.h (compare_virtual_tables): Declare.
28228         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
28229
28230 2014-08-14  Marek Polacek  <polacek@redhat.com>
28231
28232         DR 458
28233         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
28234         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
28235
28236 2014-08-14  Tom de Vries  <tom@codesourcery.com>
28237
28238         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
28239
28240 2014-08-14  Tom de Vries  <tom@codesourcery.com>
28241
28242         PR rtl-optimization/62004
28243         PR rtl-optimization/62030
28244         * ifcvt.c (rtx_interchangeable_p): New function.
28245         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
28246         * emit-rtl.h (mem_attrs_eq_p): Declare.
28247
28248 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
28249
28250         * graphite-scop-detection.c:
28251         Add inclusion of cp-tree.h.
28252         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
28253         in case they are pointers to object types
28254
28255 2014-08-14  Richard Biener  <rguenther@suse.de>
28256
28257         * BASE-VER: Change to 5.0.0
28258
28259 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28260             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28261             Anna Tikhonova  <anna.tikhonova@intel.com>
28262             Ilya Tocar  <ilya.tocar@intel.com>
28263             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28264             Ilya Verbin  <ilya.verbin@intel.com>
28265             Kirill Yukhin  <kirill.yukhin@intel.com>
28266             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28267
28268         * config/i386/sse.md (define_mode_attr avx512): New.
28269         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
28270         V4DI modes.
28271         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
28272         (define_mode_attr ssse3_avx2): Ditto.
28273         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
28274         (define_mode_attr avx2_avx512bw): New.
28275         (define_mode_attr ssedoublemodelower): New.
28276         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
28277         V32HI, V64QI modes.
28278         (define_mode_attr ssebytemode): Allow V8DI modes.
28279         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
28280         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
28281         (define_mode_attr ssePSmode2): New.
28282         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
28283         V16HI, V32HI modes.
28284         (define_mode_attr dbpsadbwmode): New.
28285         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
28286         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
28287         (vi8_sse4_1_avx2_avx512): New.
28288         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
28289         mode attribute.
28290         (define_mode_attr blendbits): Move before its immediate use.
28291
28292 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28293             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28294             Anna Tikhonova  <anna.tikhonova@intel.com>
28295             Ilya Tocar  <ilya.tocar@intel.com>
28296             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28297             Ilya Verbin  <ilya.verbin@intel.com>
28298             Kirill Yukhin  <kirill.yukhin@intel.com>
28299             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28300
28301         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
28302         * config/i386/subst.md
28303         (define_mode_iterator SUBST_V): Update.
28304         (define_mode_iterator SUBST_A): Ditto.
28305         (define_subst_attr "mask_operand7"): New.
28306         (define_subst_attr "mask_operand10"): New.
28307         (define_subst_attr "mask_operand_arg34") : New.
28308         (define_subst_attr "mask_expand_op3"): New.
28309         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
28310         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
28311         (define_subst_attr "mask_avx512vl_condition"): New.
28312         (define_subst_attr "round_mask_operand4"): Ditto.
28313         (define_subst_attr "round_mask_scalar_op3"): Delete.
28314         (define_subst_attr "round_mask_op4"): New.
28315         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
28316         V16SImode.
28317         (define_subst_attr "round_modev8sf_condition"): New.
28318         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
28319         <MODE>mode.
28320         (define_subst_attr "round_saeonly_mask_operand4"): New.
28321         (define_subst_attr "round_saeonly_mask_op4"): New.
28322         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
28323         V8DImode, V16SImode.
28324         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
28325         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
28326         (define_subst_attr "mask_expand4_args"): New.
28327         (define_subst "mask_expand4"): New.
28328
28329 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28330             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28331             Anna Tikhonova  <anna.tikhonova@intel.com>
28332             Ilya Tocar  <ilya.tocar@intel.com>
28333             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28334             Ilya Verbin  <ilya.verbin@intel.com>
28335             Kirill Yukhin  <kirill.yukhin@intel.com>
28336             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28337
28338         * config/i386/i386.md
28339         (define_attr "isa"): Add avx512bw,noavx512bw.
28340         (define_attr "enabled"): Ditto.
28341         (define_split): Add 32/64-bit mask logic.
28342         (define_insn "*k<logic>qi"): New.
28343         (define_insn "*k<logic>hi"): New.
28344         (define_insn "*anddi_1"): Add mask version.
28345         (define_insn "*andsi_1"): Ditto.
28346         (define_insn "*<code><mode>_1"): Ditto.
28347         (define_insn "*<code>hi_1"): Ditto.
28348         (define_insn "kxnor<mode>"): New.
28349         (define_insn "kunpcksi"): New.
28350         (define_insn "kunpckdi"): New.
28351         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
28352         (define_insn "*one_cmplhi2_1"): Ditto.
28353
28354 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28355             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28356             Anna Tikhonova  <anna.tikhonova@intel.com>
28357             Ilya Tocar  <ilya.tocar@intel.com>
28358             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28359             Ilya Verbin  <ilya.verbin@intel.com>
28360             Kirill Yukhin  <kirill.yukhin@intel.com>
28361             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28362
28363         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
28364         V32HImode.
28365
28366 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28367             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28368             Anna Tikhonova  <anna.tikhonova@intel.com>
28369             Ilya Tocar  <ilya.tocar@intel.com>
28370             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28371             Ilya Verbin  <ilya.verbin@intel.com>
28372             Kirill Yukhin  <kirill.yukhin@intel.com>
28373             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28374
28375         * config/i386/i386.c (print_reg): Сorrectly print 64-bit mask
28376         registers.
28377         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
28378         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
28379         xmm/ymm16+ when availble.
28380         * config/i386/i386.h
28381         (HARD_REGNO_NREGS): Add mask regs.
28382         (VALID_AVX512F_REG_MODE): Ditto.
28383         (VALID_AVX512F_REG_MODE) : Define.
28384         (VALID_MASK_AVX512BW_MODE): Ditto.
28385         (reg_class) (MASK_REG_P(X)): Define.
28386         * config/i386/i386.md: Do not split long moves with mask register,
28387         use kmovb if avx512bw is availible.
28388         (movdi_internal): Handle mask registers.
28389
28390 2014-08-14  Richard Biener  <rguenther@suse.de>
28391
28392         PR tree-optimization/62081
28393         * tree-ssa-loop.c (pass_fix_loops): New pass.
28394         (pass_tree_loop::gate):  Do not fixup loops here.
28395         * tree-pass.h (make_pass_fix_loops): Declare.
28396         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
28397
28398 2014-08-14  Richard Biener  <rguenther@suse.de>
28399
28400         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
28401         (type_hash_canon): ... this and avoid 2nd lookup for the add.
28402
28403 2014-08-14  Richard Biener  <rguenther@suse.de>
28404
28405         PR tree-optimization/62090
28406         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
28407         (fold_builtin_2): Do not fold sprintf.
28408         (fold_builtin_3): Likewise.
28409         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
28410         moved from builtins.c.
28411         (gimple_fold_builtin): Fold sprintf.
28412
28413 2014-08-14  Richard Biener  <rguenther@suse.de>
28414
28415         PR rtl-optimization/62079
28416         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
28417         run cleanup_cfg.
28418
28419 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
28420
28421         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
28422         current_function_decl.
28423
28424 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
28425
28426         * cgraph.c (cgraph_node::function_symbol): Fix wrong
28427         cgraph_function_node to cgraph_node::function_symbol
28428         refactoring.
28429
28430 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
28431
28432         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
28433         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
28434
28435 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
28436
28437         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
28438         warning.
28439
28440 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
28441
28442         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
28443         generator.
28444
28445 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
28446
28447         PR target/62025
28448         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
28449         any registers that are used in mem_insn.
28450
28451 2014-08-12  Steve Ellcey  <sellcey@mips.com>
28452
28453         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
28454
28455 2014-08-12  Steve Ellcey  <sellcey@mips.com>
28456
28457         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
28458         (MULTILIB_DIRNAMES): Ditto.
28459         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
28460         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
28461         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
28462         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
28463         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
28464         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
28465
28466 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28467
28468         PR target/61413
28469         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
28470         of __ARM_SIZEOF_WCHAR_T.
28471
28472 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28473
28474         PR target/62098
28475         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
28476         Remove unnecessary attributes.
28477
28478 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
28479
28480         * internal-fn.c (init_internal_fns): Fix off-by-one.
28481
28482 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28483             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28484             Anna Tikhonova  <anna.tikhonova@intel.com>
28485             Ilya Tocar  <ilya.tocar@intel.com>
28486             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28487             Ilya Verbin  <ilya.verbin@intel.com>
28488             Kirill Yukhin  <kirill.yukhin@intel.com>
28489             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28490
28491         * config/i386/i386.c (standard_sse_constant_opcode): Use
28492         vpxord/vpternlog if avx512 is availible.
28493
28494 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28495
28496         PR middle-end/62103
28497         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
28498         bitfields, that is when size doesn't match the size of type or the
28499         size of the constructor.
28500
28501 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
28502
28503         * config/rs6000/constraints.md (wh constraint): New constraint,
28504         for FP registers if direct move is available.
28505         (wi constraint): New constraint, for VSX/FP registers that can
28506         handle 64-bit integers.
28507         (wj constraint): New constraint for VSX/FP registers that can
28508         handle 64-bit integers for direct moves.
28509         (wk constraint): New constraint for VSX/FP registers that can
28510         handle 64-bit doubles for direct moves.
28511         (wy constraint): Make documentation match implementation.
28512
28513         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
28514         scalar_in_vmx_p field to simplify tests of whether SFmode or
28515         DFmode can go in the Altivec registers.
28516         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
28517         (rs6000_setup_reg_addr_masks): Likewise.
28518         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
28519         field, and wh/wi/wj/wk constraints.
28520         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
28521         the wh/wi/wj/wk constraints.
28522         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
28523         upper registers, prefer VSX registers unless the operation is a
28524         memory operation with REG+OFFSET addressing.
28525
28526         * config/rs6000/vsx.md (VSr mode attribute): Add support for
28527         DImode.  Change SFmode to use ww constraint instead of d to allow
28528         SF registers in the upper registers.
28529         (VSr2): Likewise.
28530         (VSr3): Likewise.
28531         (VSr5): Fix thinko in comment.
28532         (VSa): New mode attribute that is an alternative to wa, that
28533         returns the VSX register class that a mode can go in, but may not
28534         be the preferred register class.
28535         (VS_64dm): New mode attribute for appropriate register classes for
28536         referencing 64-bit elements of vectors for direct moves and normal
28537         moves.
28538         (VS_64reg): Likewise.
28539         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
28540         register allocator to only registers the data type can handle.
28541         (vsx_le_perm_load_<mode>): Likewise.
28542         (vsx_le_perm_store_<mode>): Likewise.
28543         (vsx_xxpermdi2_le_<mode>): Likewise.
28544         (vsx_xxpermdi4_le_<mode>): Likewise.
28545         (vsx_lxvd2x2_le_<mode>): Likewise.
28546         (vsx_lxvd2x4_le_<mode>): Likewise.
28547         (vsx_stxvd2x2_le_<mode>): Likewise.
28548         (vsx_add<mode>3): Likewise.
28549         (vsx_sub<mode>3): Likewise.
28550         (vsx_mul<mode>3): Likewise.
28551         (vsx_div<mode>3): Likewise.
28552         (vsx_tdiv<mode>3_internal): Likewise.
28553         (vsx_fre<mode>2): Likewise.
28554         (vsx_neg<mode>2): Likewise.
28555         (vsx_abs<mode>2): Likewise.
28556         (vsx_nabs<mode>2): Likewise.
28557         (vsx_smax<mode>3): Likewise.
28558         (vsx_smin<mode>3): Likewise.
28559         (vsx_sqrt<mode>2): Likewise.
28560         (vsx_rsqrte<mode>2): Likewise.
28561         (vsx_tsqrt<mode>2_internal): Likewise.
28562         (vsx_fms<mode>4): Likewise.
28563         (vsx_nfma<mode>4): Likewise.
28564         (vsx_eq<mode>): Likewise.
28565         (vsx_gt<mode>): Likewise.
28566         (vsx_ge<mode>): Likewise.
28567         (vsx_eq<mode>_p): Likewise.
28568         (vsx_gt<mode>_p): Likewise.
28569         (vsx_ge<mode>_p): Likewise.
28570         (vsx_xxsel<mode>): Likewise.
28571         (vsx_xxsel<mode>_uns): Likewise.
28572         (vsx_copysign<mode>3): Likewise.
28573         (vsx_float<VSi><mode>2): Likewise.
28574         (vsx_floatuns<VSi><mode>2): Likewise.
28575         (vsx_fix_trunc<mode><VSi>2): Likewise.
28576         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
28577         (vsx_x<VSv>r<VSs>i): Likewise.
28578         (vsx_x<VSv>r<VSs>ic): Likewise.
28579         (vsx_btrunc<mode>2): Likewise.
28580         (vsx_b2trunc<mode>2): Likewise.
28581         (vsx_floor<mode>2): Likewise.
28582         (vsx_ceil<mode>2): Likewise.
28583         (vsx_<VS_spdp_insn>): Likewise.
28584         (vsx_xscvspdp): Likewise.
28585         (vsx_xvcvspuxds): Likewise.
28586         (vsx_float_fix_<mode>2): Likewise.
28587         (vsx_set_<mode>): Likewise.
28588         (vsx_extract_<mode>_internal1): Likewise.
28589         (vsx_extract_<mode>_internal2): Likewise.
28590         (vsx_extract_<mode>_load): Likewise.
28591         (vsx_extract_<mode>_store): Likewise.
28592         (vsx_splat_<mode>): Likewise.
28593         (vsx_xxspltw_<mode>): Likewise.
28594         (vsx_xxspltw_<mode>_direct): Likewise.
28595         (vsx_xxmrghw_<mode>): Likewise.
28596         (vsx_xxmrglw_<mode>): Likewise.
28597         (vsx_xxsldwi_<mode>): Likewise.
28598         (vsx_xscvdpspn): Tighten constraints to only use register classes
28599         the types use.
28600         (vsx_xscvspdpn): Likewise.
28601         (vsx_xscvdpspn_scalar): Likewise.
28602
28603         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
28604         wj, and wk constraints.
28605         (GPR_REG_CLASS_P): New helper macro for register classes targeting
28606         general purpose registers.
28607
28608         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
28609         direct moves.
28610         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
28611         DImode instead of wm.  Use wk constraint for direct move of DFmode
28612         instead of wm.
28613         (extendsidi2_lfiwax): Likewise.
28614         (lfiwax): Likewise.
28615         (lfiwzx): Likewise.
28616         (movdi_internal64): Likewise.
28617
28618         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
28619         wk constraints. Make the wy constraint documentation match them
28620         implementation.
28621
28622 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
28623
28624         Replacement of isl_int by isl_val
28625         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
28626         (compute_bounds_for_param): use isl_val instead of isl_int
28627         (compute_bounds_for_loop): likewise
28628         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
28629         (build_linearized_memory_access): use isl_val instead of isl_int
28630         (pdr_stride_in_loop): likewise
28631         * graphite-optimize-isl.c:
28632         (getPrevectorMap): use isl_val instead of isl_int
28633         * graphite-poly.c:
28634         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
28635         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
28636         (extern the_isl_ctx): declare
28637         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
28638         (extract_affine_gmp): likewise
28639         (wrap): likewise
28640         (build_loop_iteration_domains): likewise
28641         (add_param_constraints): likewise
28642
28643 2014-08-11  Richard Biener  <rguenther@suse.de>
28644
28645         PR tree-optimization/62075
28646         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
28647         handle uses in patterns.
28648
28649 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28650             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28651             Anna Tikhonova  <anna.tikhonova@intel.com>
28652             Ilya Tocar  <ilya.tocar@intel.com>
28653             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28654             Ilya Verbin  <ilya.verbin@intel.com>
28655             Kirill Yukhin  <kirill.yukhin@intel.com>
28656             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28657
28658         * common/config/i386/i386-common.c
28659         (OPTION_MASK_ISA_AVX512VL_SET): Define.
28660         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
28661         (ix86_handle_option): Handle OPT_mavx512vl.
28662         * config/i386/cpuid.h (bit_AVX512VL): Define.
28663         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
28664         set -mavx512vl accordingly.
28665         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28666         OPTION_MASK_ISA_AVX512VL.
28667         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
28668         (ix86_option_override_internal): Define PTA_AVX512VL, handle
28669         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
28670         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
28671         * config/i386/i386.h (TARGET_AVX512VL): Define.
28672         (TARGET_AVX512VL_P(x)): Ditto.
28673         * config/i386/i386.opt: Add mavx512vl.
28674
28675 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
28676
28677         PR tree-optimization/62073
28678         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
28679         a basic block.
28680
28681 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28682             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28683             Anna Tikhonova  <anna.tikhonova@intel.com>
28684             Ilya Tocar  <ilya.tocar@intel.com>
28685             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28686             Ilya Verbin  <ilya.verbin@intel.com>
28687             Kirill Yukhin  <kirill.yukhin@intel.com>
28688             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28689
28690         * common/config/i386/i386-common.c
28691         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
28692         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
28693         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
28694         (ix86_handle_option): Handle OPT_mavx512bw.
28695         * config/i386/cpuid.h (bit_AVX512BW): Define.
28696         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
28697         set -mavx512bw accordingly.
28698         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28699         OPTION_MASK_ISA_AVX512BW.
28700         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
28701         (ix86_option_override_internal): Define PTA_AVX512BW, handle
28702         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
28703         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
28704         * config/i386/i386.h (TARGET_AVX512BW): Define.
28705         (TARGET_AVX512BW_P(x)): Ditto.
28706         * config/i386/i386.opt: Add mavx512bw.
28707
28708 2014-08-11  Richard Biener  <rguenther@suse.de>
28709
28710         PR tree-optimization/62070
28711         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
28712         Remove SSA checking.
28713
28714 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
28715
28716         * asan.c (asan_check_flags): New enum.
28717         (build_check_stmt_with_calls): Removed function.
28718         (build_check_stmt): Split inlining logic to
28719         asan_expand_check_ifn.
28720         (instrument_derefs): Rename parameter.
28721         (instrument_mem_region_access): Rename parameter.
28722         (instrument_strlen_call): Likewise.
28723         (asan_expand_check_ifn): New function.
28724         (asan_instrument): Remove old code.
28725         (pass_sanopt::execute): Change handling of
28726         asan-instrumentation-with-call-threshold.
28727         (asan_clear_shadow): Fix formatting.
28728         (asan_function_start): Likewise.
28729         (asan_emit_stack_protection): Likewise.
28730         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
28731         Update description.
28732         * internal-fn.c (expand_ASAN_CHECK): New function.
28733         * internal-fn.def (ASAN_CHECK): New internal function.
28734         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
28735         Update description.
28736         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
28737         * tree.c: Small comment fix.
28738
28739 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
28740
28741         * gimple.c (gimple_call_fnspec): Support internal functions.
28742         (gimple_call_return_flags): Use const.
28743         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
28744         * internal-fn.def: Add fnspec information.
28745         * internal-fn.h (internal_fn_fnspec): New function.
28746         (init_internal_fns): Declare new function.
28747         * internal-fn.c (internal_fn_fnspec_array): New global variable.
28748         (init_internal_fns): New function.
28749         * tree-core.h: Update macro call.
28750         * tree.c (build_common_builtin_nodes): Initialize internal fns.
28751
28752 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
28753
28754         * lto-streamer.h (struct output_block::symbol): Change from
28755         struct symtab_node to plain symtab_node.
28756         (referenced_from_this_partition_p): Change first parameter
28757         from struct symtab_node to plain symtab_node.
28758
28759 2014-08-10  Marek Polacek  <polacek@redhat.com>
28760
28761         PR c/51849
28762         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
28763
28764 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
28765
28766         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
28767         DECL correctly; do not give up on types in static storage.
28768
28769 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
28770
28771         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
28772
28773 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
28774
28775         * graphite-isl-ast-to-gimple.c:
28776         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
28777
28778         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
28779
28780 2014-08-08  Guozhi Wei  <carrot@google.com>
28781
28782         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
28783
28784 2014-08-08  Cary Coutant  <ccoutant@google.com>
28785
28786         * dwarf2out.c (get_skeleton_type_unit): Remove.
28787         (output_skeleton_debug_sections): Remove skeleton type units.
28788         (output_comdat_type_unit): Likewise.
28789         (dwarf2out_finish): Likewise.
28790
28791 2014-08-07  Yi Yang  <ahyangyi@google.com>
28792
28793         * predict.c (expr_expected_value_1): Remove the redundant assignment.
28794
28795 2014-08-08  Richard Biener  <rguenther@suse.de>
28796
28797         * lto-streamer.h (struct lto_input_block): Make it a class
28798         with a constructor.
28799         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
28800         (struct lto_function_header, struct lto_simple_header,
28801         struct lto_simple_header_with_strings,
28802         struct lto_decl_header, struct lto_function_header): Make
28803         a simple inheritance hieararchy.  Remove unused fields.
28804         (struct lto_asm_header): Remove.
28805         * lto-streamer-out.c (produce_asm): Adjust.
28806         (lto_output_toplevel_asms): Likewise.
28807         (produce_asm_for_decls): Likewise.
28808         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
28809         * data-streamer-in.c (string_for_index): Likewise.
28810         * ipa-inline-analysis.c (inline_read_section): Likewise.
28811         * ipa-prop.c (ipa_prop_read_section): Likewise.
28812         (read_replacements_section): Likewise.
28813         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
28814         * lto-section-in.c (lto_create_simple_input_block): Likewise.
28815         (lto_destroy_simple_input_block): Likewise.
28816         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
28817         (lto_input_toplevel_asms): Likewise.
28818
28819 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28820             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28821             Anna Tikhonova  <anna.tikhonova@intel.com>
28822             Ilya Tocar  <ilya.tocar@intel.com>
28823             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28824             Ilya Verbin  <ilya.verbin@intel.com>
28825             Kirill Yukhin  <kirill.yukhin@intel.com>
28826             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28827
28828         * common/config/i386/i386-common.c
28829         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
28830         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
28831         (ix86_handle_option): Handle OPT_mavx512dq.
28832         * config/i386/cpuid.h (bit_AVX512DQ): Define.
28833         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
28834         set -mavx512dq accordingly.
28835         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28836         OPTION_MASK_ISA_AVX512DQ.
28837         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
28838         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
28839         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
28840         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
28841         * config/i386/i386.h (TARGET_AVX512DQ): Define.
28842         (TARGET_AVX512DQ_P(x)): Ditto.
28843         * config/i386/i386.opt: Add mavx512dq.
28844
28845 2014-08-08  Richard Biener  <rguenther@suse.de>
28846
28847         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
28848         target_percent, target_percent_s): Export.
28849         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
28850         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
28851         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
28852         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
28853         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
28854         Move to gimple-fold.c.
28855         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
28856         strcat and strcpy.
28857         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
28858         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
28859         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
28860         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
28861         (rewrite_call_expr_array): Remove.
28862         (fold_builtin_sprintf_chk): Likewise.
28863         (fold_builtin_snprintf_chk): Likewise.
28864         (fold_builtin_varargs): Remove handling of sprintf_chk,
28865         vsprintf_chk, snprintf_chk and vsnprintf_chk.
28866         (gimple_fold_builtin_sprintf_chk): Remove.
28867         (gimple_fold_builtin_snprintf_chk): Likewise.
28868         (gimple_fold_builtin_varargs): Likewise.
28869         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
28870         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
28871         * gimple.c (gimple_seq_add_seq_without_update): New function.
28872         * gimple.h (gimple_seq_add_seq_without_update): Declare.
28873         * gimple-fold.c: Include output.h.
28874         (gsi_replace_with_seq_vops): New function, split out from ...
28875         (gimplify_and_update_call_from_tree): ... here.
28876         (replace_call_with_value): New function.
28877         (replace_call_with_call_and_fold): Likewise.
28878         (var_decl_component_p): Moved from builtins.c.
28879         (gimple_fold_builtin_memory_op): Moved from builtins.c
28880         fold_builtin_memory_op and rewritten to GIMPLE.
28881         (gimple_fold_builtin_memset): Likewise.
28882         (gimple_fold_builtin_strcpy): Likewise.
28883         (gimple_fold_builtin_strncpy): Likewise.
28884         (gimple_fold_builtin_strcat): Likewise.
28885         (gimple_fold_builtin_fputs): Likewise.
28886         (gimple_fold_builtin_memory_chk): Likewise.
28887         (gimple_fold_builtin_stxcpy_chk): Likewise.
28888         (gimple_fold_builtin_stxncpy_chk): Likewise.
28889         (gimple_fold_builtin_snprintf_chk): Likewise.
28890         (gimple_fold_builtin_sprintf_chk): Likewise.
28891         (gimple_fold_builtin_strlen): New function.
28892         (gimple_fold_builtin_with_strlen): New function split out from
28893         gimple_fold_builtin.
28894         (gimple_fold_builtin): Change signature and handle
28895         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
28896         here.  Call gimple_fold_builtin_with_strlen.
28897         (gimple_fold_call): Adjust.
28898
28899 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
28900
28901         * calls.c (precompute_arguments): Check
28902         promoted_for_signed_and_unsigned_p and set the promoted mode.
28903         (promoted_for_signed_and_unsigned_p): New function.
28904         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
28905         and set the promoted mode.
28906         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
28907         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
28908         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
28909
28910
28911 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
28912
28913         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
28914         instead of SUBREG_PROMOTED_UNSIGNED_SET.
28915         (expand_call): Likewise.
28916         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
28917         to get promoted mode.
28918         * combine.c (record_promoted_value): Skip > 0 comparison with
28919         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
28920         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
28921         of SUBREG_PROMOTED_UNSIGNED_P.
28922         (convert_modes): Likewise.
28923         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
28924         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
28925         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
28926         SUBREG_PROMOTED_UNSIGNED_SET.
28927         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
28928         instead of SUBREG_PROMOTED_UNSIGNED_SET.
28929         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
28930         SUBREG_PROMOTED_SET.
28931         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
28932         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
28933         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
28934         of SUBREG_PROMOTED_UNSIGNED_P.
28935         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
28936         (SUBREG_PROMOTED_SET): New define.
28937         (SUBREG_PROMOTED_GET): Likewise.
28938         (SUBREG_PROMOTED_SIGN): Likewise.
28939         (SUBREG_PROMOTED_SIGNED_P): Likewise.
28940         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
28941         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
28942         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
28943         instead of SUBREG_PROMOTED_UNSIGNED_GET.
28944         (nonzero_bits1): Skip > 0 comparison with the results as
28945         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
28946         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
28947         of !SUBREG_PROMOTED_UNSIGNED_P.
28948         * simplify-rtx.c (simplify_unary_operation_1): Use new
28949         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
28950         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
28951         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
28952         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
28953
28954 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
28955
28956         * ipa-devirt.c: Include gimple-pretty-print.h
28957         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
28958         further tests.
28959         (decl_maybe_in_construction_p): Fix conditional on cdtor check
28960         (get_polymorphic_call_info): Fix return value
28961         (type_change_info): New sturcture based on ipa-prop
28962         variant.
28963         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
28964         based on ipa-prop variant.
28965         (extr_type_from_vtbl_ptr_store): New function
28966         based on ipa-prop variant.
28967         (record_known_type): New function.
28968         (check_stmt_for_type_change): New function.
28969         (get_dynamic_type): New function.
28970         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
28971         * tree-ssa-pre.c: ipa-utils.h
28972         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
28973         machinery; sanity check with ipa-prop devirtualization.
28974         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
28975         polymorphic flag.
28976
28977 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
28978
28979         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
28980         * alias.c, cfgexpand.c, cgraphbuild.c,
28981         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
28982         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
28983         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
28984         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
28985         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
28986         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
28987         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
28988         dse.c, except.c, gengtype.c, gimple-expr.c,
28989         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
28990         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
28991         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
28992         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
28993         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
28994         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
28995         pointer-set.h.
28996         * pointer-set.c: Remove file.
28997         * pointer-set.h: Remove file.
28998
28999 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29000
29001         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
29002         * config/arm/types.md (f_sels, f_seld): Delete.
29003
29004 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29005
29006         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
29007         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
29008         (aarch64_movdi_<mode>high): Likewise.
29009         (aarch64_mov<mode>high_di): Likewise.
29010         (aarch64_movdi_<mode>low): Likewise.
29011         (aarch64_mov<mode>low_di): Likewise.
29012         (aarch64_movtilow_tilow): Likewise.
29013         Add comment explaining usage of fp,simd attributes and of
29014         TARGET_FLOAT and TARGET_SIMD.
29015
29016 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
29017             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29018
29019         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
29020         Use MOVN when one of the half-words is 0xffff.
29021
29022 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
29023
29024         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
29025
29026 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
29027
29028         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
29029         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
29030         (rfs_str): String corresponding to RFS_* constants.
29031         (rank_for_schedule_stats_t): New typedef.
29032         (rank_for_schedule_stats): New static variable.
29033         (rfs_result): New static function.
29034         (rank_for_schedule): Track statistics for deciding heuristics.
29035         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
29036         static functions.
29037         (ready_sort): Use them for debug printouts.
29038         (schedule_block): Init statistics state.  Print statistics on
29039         rank_for_schedule decisions.
29040
29041 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
29042
29043         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
29044
29045 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
29046
29047         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
29048         constraint.
29049
29050 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
29051
29052         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
29053         function to not conflict.
29054         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
29055         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
29056         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
29057         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
29058         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
29059         of pointer_map.
29060
29061 2014-08-07  Marek Polacek  <polacek@redhat.com>
29062
29063         * fold-const.c (fold_binary_loc): Add folding of
29064         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
29065
29066 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
29067
29068         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
29069         instead of type size.
29070         (ASM_FINISH_DECLARE_OBJECT): Likewise.
29071
29072 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
29073
29074         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
29075         (*thumb1_movqi_insn): Likewise.
29076         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
29077
29078 2014-08-07  Tom de Vries  <tom@codesourcery.com>
29079
29080         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
29081         (glibc_2_11_or_earlier): Remove effective-target keywords.
29082
29083 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
29084
29085         * config/arm/arm.c (bdesc_2arg): Fix typo.
29086         (arm_atomic_assign_expand_fenv): Remove The default implementation.
29087
29088 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
29089
29090         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
29091
29092 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
29093
29094         PR debug/61923
29095         * haifa-sched.c (advance_one_cycle): Fix dump.
29096         (schedule_block): Don't advance cycle if we are already at the
29097         beginning of the cycle.
29098
29099 2014-08-06  Martin Jambor  <mjambor@suse.cz>
29100
29101         PR ipa/61393
29102         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
29103
29104 2014-08-06  Richard Biener  <rguenther@suse.de>
29105
29106         PR lto/62034
29107         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
29108         SCCs here.
29109         (lto_input_tree): Pop SCCs here.
29110
29111 2014-08-06  Richard Biener  <rguenther@suse.de>
29112
29113         PR tree-optimization/61320
29114         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
29115         handle misaligned loads.
29116
29117 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
29118
29119         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
29120         (aarch64_expand_vec_perm_const): Check for dup before zip.
29121
29122 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29123
29124         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
29125         CONST_INT_P instead of GET_CODE and compare.
29126         (aarch64_select_cc_mode): Likewise.
29127         (aarch64_print_operand): Likewise.
29128         (aarch64_rtx_costs): Likewise.
29129         (aarch64_simd_valid_immediate): Likewise.
29130         (aarch64_simd_check_vect_par_cnst_half): Likewise.
29131         (aarch64_simd_emit_pair_result_insn): Likewise.
29132
29133 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
29134
29135         * gdbhooks.py (find_gcc_source_dir): New helper function.
29136         (class PassNames): New class, locating and parsing passes.def.
29137         (class BreakOnPass): New command "break-on-pass".
29138
29139 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
29140
29141         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
29142         getting olde.
29143
29144 2014-08-05  Richard Biener  <rguenther@suse.de>
29145
29146         PR rtl-optimization/61672
29147         * emit-rtl.h (mem_attrs_eq_p): Declare.
29148         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
29149         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
29150         * cfgcleanup.c (merge_memattrs): Likewise.
29151         Include emit-rtl.h.
29152
29153 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29154
29155         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
29156         rather than singleton vectors.
29157         (vqdmlsls_lane_s32): Likewise.
29158
29159 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29160
29161         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
29162         Use VSDQ_HSI mode iterator.
29163         (aarch64_sqrdmulh_laneq<mode>): Likewise.
29164         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
29165         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
29166         Use BUILTIN_VDQHS macro.
29167         (sqrdmulh_laneq): Likewise.
29168         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
29169         (vqdmlals_laneq_s32): Likewise.
29170         (vqdmlslh_laneq_s16): Likewise.
29171         (vqdmlsls_laneq_s32): Likewise.
29172         (vqdmulhh_laneq_s16): Likewise.
29173         (vqdmulhs_laneq_s32): Likewise.
29174         (vqrdmulhh_laneq_s16): Likewise.
29175         (vqrdmulhs_laneq_s32): Likewise.
29176
29177 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29178
29179         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
29180         (vmuld_laneq_f64): Likewise.
29181         (vmuls_laneq_f32): Likewise.
29182         (vmul_n_f64): Likewise.
29183         (vmuld_lane_f64): Reimplement in C.
29184         (vmuls_lane_f32): Likewise.
29185
29186 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29187
29188         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
29189         to reservation.
29190         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
29191
29192 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29193
29194         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
29195         (rbitsi2): Likewise.
29196         (*arm_rev): Set predicable and predicable_short_it attributes.
29197
29198 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29199
29200         * convert.c (convert_to_integer): Guard transformation to lrint by
29201         -fno-math-errno.
29202
29203 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
29204
29205         * config/aarch64/aarch64-builtins.c
29206         (aarch64_simd_builtin_type_mode): Delete.
29207         (v8qi_UP): Remap to V8QImode.
29208         (v4hi_UP): Remap to V4HImode.
29209         (v2si_UP): Remap to V2SImode.
29210         (v2sf_UP): Remap to V2SFmode.
29211         (v1df_UP): Remap to V1DFmode.
29212         (di_UP): Remap to DImode.
29213         (df_UP): Remap to DFmode.
29214         (v16qi_UP):V16QImode.
29215         (v8hi_UP): Remap to V8HImode.
29216         (v4si_UP): Remap to V4SImode.
29217         (v4sf_UP): Remap to V4SFmode.
29218         (v2di_UP): Remap to V2DImode.
29219         (v2df_UP): Remap to V2DFmode.
29220         (ti_UP): Remap to TImode.
29221         (ei_UP): Remap to EImode.
29222         (oi_UP): Remap to OImode.
29223         (ci_UP): Map to CImode.
29224         (xi_UP): Remap to XImode.
29225         (si_UP): Remap to SImode.
29226         (sf_UP): Remap to SFmode.
29227         (hi_UP): Remap to HImode.
29228         (qi_UP): Remap to QImode.
29229         (aarch64_simd_builtin_datum): Make mode a machine_mode.
29230         (VAR1): Build builtin name.
29231         (aarch64_init_simd_builtins): Remove dead code.
29232
29233 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
29234
29235         * graphite-isl-ast-to-gimple.c:
29236         (set_options): New function.
29237         (scop_to_isl_ast): Add calling of set_options.
29238
29239 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
29240
29241         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
29242         (analyze_iv_to_split_insn): Don't initialize them.
29243         (get_ivts_expr): Removed.
29244         (allocate_basic_variable, insert_base_initialization): Use
29245         SET_SRC instead of *get_ivts_expr.
29246         (split_iv): Use &SET_SRC instead of get_ivts_expr.
29247
29248 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
29249
29250         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
29251         (translate_isl_ast_for_loop): Add checking of the
29252         flag_loop_parallelize_all.
29253         (ast_build_before_for): New function.
29254         (scop_to_isl_ast): Add checking of the
29255         flag_loop_parallelize_all.
29256         * graphite-dependences.c: Move the defenition of the
29257         scop_get_dependences from graphite-optimize-isl.c to this file.
29258         (apply_schedule_on_deps): Add checking of the ux's emptiness.
29259         (carries_deps): Add checking of the x's value.
29260         * graphite-optimize-isl.c: Move the defenition of the
29261         scop_get_dependences to graphite-dependences.c.
29262         * graphite-poly.h: Add declarations of scop_get_dependences
29263         and carries_deps.
29264
29265 2014-08-04  Rohit  <rohitarulraj@freescale.com>
29266
29267         PR target/60102
29268         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
29269         names.
29270         (alt_reg_names): Likewise.
29271         (rs6000_dwarf_register_span): For SPE high registers, replace
29272         dwarf register numbers with GCC hard register numbers.
29273         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
29274         (rs6000_dbx_register_number): For SPE high registers, return dwarf
29275         register number for the corresponding GCC hard register number.
29276         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
29277         newly added GCC hard register numbers for SPE high registers.
29278         (DWARF_FRAME_REGISTERS):  Likewise.
29279         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
29280         (DWARF_FRAME_REGNUM): Likewise.
29281         (FIXED_REGISTERS): Likewise.
29282         (CALL_USED_REGISTERS): Likewise.
29283         (CALL_REALLY_USED_REGISTERS): Likewise.
29284         (REG_ALLOC_ORDER): Likewise.
29285         (enum reg_class): Likewise.
29286         (REG_CLASS_NAMES): Likewise.
29287         (REG_CLASS_CONTENTS): Likewise.
29288         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
29289
29290 2014-08-04  Richard Biener  <rguenther@suse.de>
29291
29292         * gimple-fold.h (gimple_fold_builtin): Remove.
29293         * gimple-fold.c (gimple_fold_builtin): Make static.
29294         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
29295         fold_stmt, not gimple_fold_builtin.
29296
29297 2014-08-04  Martin Liska <mliska@suse.cz>
29298
29299         * cgraph.h (csi_end_p): Removed.
29300         (csi_next): Likewise.
29301         (csi_node): Likewise.
29302         (csi_start): Likewise.
29303         (cgraph_node_in_set_p): Likewise.
29304         (cgraph_node_set_size): Likewise.
29305         (vsi_end_p): Likewise.
29306         (vsi_next): Likewise.
29307         (vsi_node): Likewise.
29308         (vsi_start): Likewise.
29309         (varpool_node_set_size): Likewise.
29310         (cgraph_node_set_nonempty_p): Likewise.
29311         (varpool_node_set_nonempty_p): Likewise.
29312         * cgraphunit.c (cgraph_process_new_functions): vec replaces
29313         cgraph_node_set.
29314         * ipa-inline-transform.c: Likewise.
29315         * ipa-utils.c (cgraph_node_set_new): Removed.
29316         (cgraph_node_set_add): Likewise.
29317         (cgraph_node_set_remove): Likewise.
29318         (cgraph_node_set_find): Likewise.
29319         (dump_cgraph_node_set): Likewise.
29320         (debug_cgraph_node_set): Likewise.
29321         (free_cgraph_node_set): Likewise.
29322         (varpool_node_set_new): Likewise.
29323         (varpool_node_set_add): Likewise.
29324         (varpool_node_set_remove): Likewise.
29325         (varpool_node_set_find): Likewise.
29326         (dump_varpool_node_set): Likewise.
29327         (free_varpool_node_set): Likewise.
29328         (debug_varpool_node_set): Likewise.
29329         * tree-emutls.c (struct tls_var_data):
29330         (emutls_index): Removed.
29331         (emutls_decl): Likewise.
29332         (gen_emutls_addr): Function implementation uses newly added
29333         hash_map<varpool_node *, tls_var_data>.
29334         (clear_access_vars): Likewise.
29335         (create_emultls_var): Likewise.
29336         (ipa_lower_emutls): Likewise.
29337         (reset_access): New function.
29338
29339 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
29340
29341         * config/i386/i386.c (ix86_option_override_internal): Add
29342         PTA_RDRND and PTA_MOVBE for bdver4.
29343
29344 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29345             James Greenhalgh  <james.greenhalgh@arm.com>
29346
29347         * doc/md.texi (clrsb): Document.
29348         (clz): Change reference to x into operand 1.
29349         (ctz): Likewise.
29350         (popcount): Likewise.
29351
29352 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29353
29354         PR target/61713
29355         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
29356         move to subtarget in serial version if result is ignored.
29357
29358 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29359             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29360
29361         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
29362         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
29363         (sched_analyze_insn): Update use of try_group_insn to
29364         sched_macro_fuse_insns.
29365         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
29366         arguments that are not conditional jumps.
29367
29368 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
29369
29370         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
29371         family information. Handle BTVER2 cpu with cpuid family value.
29372
29373 2014-08-04  Tom de Vries  <tom@codesourcery.com>
29374
29375         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
29376         (glibc_2_11_or_earlier): Document effective-target keywords.
29377
29378 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
29379
29380         * ipa-devirt.c (odr_type_warn_count): Add type.
29381         (possible_polymorphic_call_targets): Set it.
29382         (ipa_devirt): Use it.
29383
29384 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
29385
29386         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
29387         Document.
29388         * ipa-devirt.c: Include hash-map.h
29389         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
29390         (clear_speculation): Break out of ...
29391         (get_class_context): ... here; speed up handling obviously useless
29392         speculations.
29393         (odr_type_warn_count, decl_warn_count): New structures.
29394         (final_warning_record): New structure.
29395         (final_warning_records): New static variable.
29396         (possible_polymorphic_call_targets): Cleanup handling of
29397         speculative info; do not build speculation when user do not care;
29398         record info about warnings when asked for.
29399         (add_decl_warning): New function.
29400         (type_warning_cmp): New function.
29401         (decl_warning_cmp): New function.
29402         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
29403         (gate): Enable pass when warnings are requested.
29404         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
29405         options.
29406
29407 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
29408
29409         * hash-map.h (default_hashmap_traits::mark_key_deleted):
29410         Fix cast.
29411         (hash_map::remove): New method.
29412         (hash_map::traverse): New method.
29413         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
29414         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
29415         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
29416         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
29417         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
29418         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
29419         pointer_map.
29420
29421 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
29422
29423         * hash-set.h: new File.
29424         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
29425         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
29426         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
29427         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
29428         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
29429         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
29430         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
29431         varpool.c: Use hash_set instead of pointer_set.
29432
29433 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
29434
29435         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
29436
29437 2014-08-01  Jiong Wang <jiong.wang@arm.com>
29438
29439         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
29440         for frame access when strict_p is false.
29441
29442 2014-08-01  Renlin Li <renlin.li@arm.com>
29443 2014-08-01  Jiong Wang <jiong.wang@arm.com>
29444
29445         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
29446         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
29447         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
29448         Declaration.
29449         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
29450         predicate.
29451         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
29452         aarch64_mem_pair_offset.
29453
29454 2014-08-01  Jiong Wang <jiong.wang@arm.com>
29455
29456         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
29457         offset.
29458         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
29459         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
29460
29461 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
29462
29463         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
29464
29465 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
29466
29467         PR regression/61510
29468         * cgraphunit.c (analyze_functions): Use get_create rather than get
29469         for decls which are clones of abstract functions.
29470
29471 2014-08-01  Martin Liska  <mliska@suse.cz>
29472
29473         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
29474         * ipa-prop.h (count_formal_params): Global function created from static.
29475         * ipa-prop.c (count_formal_params): Likewise.
29476         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
29477         profiles for semantically equivalent functions.
29478         * passes.c (do_per_function): If we load body of a function
29479         during WPA, this condition should behave same.
29480         * varpool.c (ctor_for_folding): More tolerant assert for variable
29481         aliases created during WPA.
29482
29483 2014-08-01  Martin Liska  <mliska@suse.cz>
29484
29485         * doc/invoke.texi (Options That Control Optimization): Documentation
29486         for -foptimize-strlen introduced. Optimization levels default options
29487         fixed.
29488
29489 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
29490
29491         * opts.c (common_handle_option): Handle -fsanitize=alignment.
29492         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
29493         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
29494         type to bool.
29495         * stor-layout.h (min_align_of_type): New prototype.
29496         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
29497         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
29498         check.
29499         * ubsan.c: Include builtins.h.
29500         (ubsan_expand_bounds_ifn): Change return type to bool,
29501         always return true.
29502         (ubsan_expand_null_ifn): Change return type to bool, change
29503         argument to gimple_stmt_iterator *.  Handle both null and alignment
29504         sanitization, take type from ckind argument's type rather than
29505         first argument.
29506         (instrument_member_call): Removed.
29507         (instrument_mem_ref): Remove t argument, add mem and base arguments.
29508         Handle both null and alignment sanitization, don't say whole
29509         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
29510         call instead of 2 argument.
29511         (instrument_null): Adjust instrument_mem_ref caller.  Don't
29512         instrument calls here.
29513         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
29514         like SANITIZE_NULL.
29515         * stor-layout.c (min_align_of_type): New function.
29516         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
29517         Or it into SANITIZE_UNDEFINED.
29518         * doc/invoke.texi (-fsanitize=alignment): Document.
29519
29520 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29521
29522         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
29523
29524 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29525
29526         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
29527         inchash.
29528         (vn_reference_compute_hash): Dito.
29529         (vn_nary_op_compute_hash): Dito.
29530         (vn_phi_compute_hash): Dito.
29531         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
29532
29533 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29534
29535         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
29536         Rename to inchash:add_expr_commutative. Convert to inchash.
29537         (iterative_hash_hashable_expr): Rename to
29538         inchash:add_hashable_expr. Convert to inchash.
29539         (avail_expr_hash): Dito.
29540
29541 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29542
29543         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
29544         Convert to inchash.
29545
29546 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29547
29548         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
29549
29550 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29551
29552         * Makefile.in (OBJS): Add rtlhash.o
29553         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
29554         (loc_checksum): Dito.
29555         (loc_checksum_ordered): Dito.
29556         (hash_loc_operands): Dito.
29557         (hash_locs): Dito.
29558         (hash_loc_list): Dito.
29559         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
29560         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
29561         * rtlhash.c: New file.
29562         * rtlhash.h: New file.
29563
29564 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29565
29566         * inchash.h (inchash): Change inchash class to namespace.
29567         (class hash): ... Rename from inchash.
29568         (add_object): Move from macro to class template.
29569         * lto-streamer-out.c (hash_tree): Change inchash
29570         to inchash::hash.
29571         * tree.c (build_type_attribute_qual_variant): Dito.
29572         (type_hash_list): Dito.
29573         (attribute_hash_list): Dito.
29574         (iterative_hstate_expr): Rename to inchash::add_expr
29575         (build_range_type_1): Change inchash to inchash::hash
29576         and use hash::add_expr.
29577         (build_array_type_1): Dito.
29578         (build_function_type): Dito
29579         (build_method_type_directly): Dito.
29580         (build_offset_type): Dito.
29581         (build_complex_type): Dito.
29582         (make_vector_type): Dito.
29583         * tree.h (iterative_hash_expr): Dito.
29584
29585 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
29586
29587         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
29588
29589 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
29590
29591         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
29592         correct alphabetical position.
29593         (vpaddd_f64): Rewrite using builtins.
29594         (vpaddd_s64): Move to correct alphabetical position.
29595         (vpaddd_u64): New.
29596
29597 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
29598
29599         PR target/61844
29600         * config/sh/sh.c (sh_legitimate_address_p,
29601         sh_legitimize_reload_address): Handle reg+reg address modes when
29602         ALLOW_INDEXED_ADDRESS is false.
29603         * config/sh/predicates.md (general_movsrc_operand,
29604         general_movdst_operand): Likewise.
29605
29606 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
29607
29608         * config/aarch64/aarch64-builtins.c
29609         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
29610         BYTES_BIG_ENDIAN.
29611
29612 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
29613
29614         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
29615         the generated mask based on BYTES_BIG_ENDIAN.
29616         (aarch64_simd_check_vect_par_cnst_half): New.
29617         * config/aarch64/aarch64-protos.h
29618         (aarch64_simd_check_vect_par_cnst_half): New.
29619         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
29620         the check out to aarch64_simd_check_vect_par_cnst_half.
29621         (vect_par_cnst_lo_half): Likewise.
29622         * config/aarch64/aarch64-simd.md
29623         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
29624         (move_hi_quad_<mode>): Always generate a low mask.
29625
29626 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
29627
29628         * doc/invoke.texi (AVR Options): Add documentation about
29629         __AVR_DEVICE_NAME__ built-in macro.
29630
29631 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
29632
29633         PR target/61948
29634         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
29635         constraints are satisfied.
29636         (<shift>di3_neon): Likewise.
29637
29638 2014-07-31  Richard Biener  <rguenther@suse.de>
29639
29640         PR tree-optimization/61964
29641         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
29642         by structural equality.
29643
29644 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
29645
29646         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
29647         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
29648         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
29649         New enums.
29650         * gcc.c (sanitize_spec_function): Support new option.
29651         (SANITIZER_SPEC): Remove now redundant check.
29652         * opts.c (common_handle_option): Support new option.
29653         (finish_options): Check for incompatibilities.
29654         * toplev.c (process_options): Split userspace-specific checks.
29655
29656 2014-07-31  Richard Biener  <rguenther@suse.de>
29657
29658         * lto-streamer.h (struct output_block): Remove global.
29659         (struct data_in): Remove labels, num_named_labels and
29660         num_unnamed_labels.
29661         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
29662         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
29663
29664 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
29665
29666         PR c++/60517
29667         * common.opt (-Wreturn-local-addr): Moved from c.opt.
29668         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
29669         (isolate_path): New argument to avoid inserting a trap.
29670         (find_implicit_erroneous_behaviour): Handle returning the address
29671         of a local variable.
29672         (find_explicit_erroneous_behaviour): Likewise.
29673
29674 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
29675
29676         PR lto/61868
29677         * toplev.c (init_random_seed): Move piece of code never called to
29678         set_random_seed.
29679         (set_random_seed): see above.
29680
29681 2014-07-31  Tom de Vries  <tom@codesourcery.com>
29682
29683         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
29684
29685 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
29686
29687         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
29688         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
29689
29690 2014-07-31  Richard Biener  <rguenther@suse.de>
29691
29692         * data-streamer.h (streamer_write_data_stream): Declare here,
29693         renamed from ...
29694         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
29695         * lto-cgraph.c (lto_output_node): Adjust.
29696         (lto_output_varpool_node): Likewise.
29697         * data-streamer-out.c (streamer_string_index): Likewise.
29698         (streamer_write_data_stream, lto_append_block): Move from ...
29699         * lto-section-out.c (lto_output_data_stream,
29700         lto_append_block): ... here.
29701
29702 2014-07-30  Mike Stump  <mikestump@comcast.net>
29703
29704         * configure.ac: Also check for popen.
29705         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
29706         * configure: Regenerate.
29707         * config.in:  Regenerate.
29708
29709 2014-07-30  Martin Jambor  <mjambor@suse.cz>
29710
29711         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
29712         parameter to gimple.
29713
29714 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29715
29716         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
29717         address as second parameter to __tpf_eh_return routine.
29718
29719 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
29720
29721         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
29722         Thumb2.
29723
29724 2014-07-30  Tom Tromey  <tromey@redhat.com>
29725
29726         PR c/59855
29727         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
29728         * doc/extend.texi (Type Attributes): Document designated_init
29729         attribute.
29730
29731 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
29732
29733         * graphite-isl-ast-to-gimple.c:
29734         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
29735         (gcc_expression_from_isl_expression): Pass type to
29736         gcc_expression_from_isl_ast_expr_id.
29737
29738 2014-07-30  Richard Biener  <rguenther@suse.de>
29739
29740         * lto-streamer.h (lto_write_data): New function.
29741         * langhooks.c (lhd_append_data): Do not free block.
29742         * lto-section-out.c (lto_write_data): New function writing
29743         raw data to the current section.
29744         (lto_write_stream): Adjust for langhook semantic change.
29745         (lto_destroy_simple_output_block): Write header directly.
29746         * lto-opts.c (lto_write_options): Write options directly.
29747         * lto-streamer-out.c (produce_asm): Write heaeder directly.
29748         (lto_output_toplevel_asms): Likewise.
29749         (copy_function_or_variable): Copy data directly.
29750         (write_global_references): Output index table directly.
29751         (lto_output_decl_state_refs): Likewise.
29752         (write_symbol): Write data directly.
29753         (produce_symtab): Adjust.
29754         (produce_asm_for_decls): Output header and refs directly.
29755
29756 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
29757
29758         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
29759         to speculative_targets
29760         (get_class_context): Fix handling of contextes without outer type;
29761         avoid matching non-polymorphic types in LTO.
29762         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
29763         parameter to speculative_targetsp; handle speculation.
29764         (dump_possible_polymorphic_call_targets): Update dumping.
29765
29766 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
29767
29768         * common.opt (Wodr): Enable by default.
29769
29770 2014-07-29  Olivier Hainque  <hainque@adacore.com>
29771
29772         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
29773
29774 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
29775
29776         PR bootstrap/61914
29777         * gengtype.c (strtoken): New function.
29778         (create_user_defined_type): Replace strtok with strtoken.
29779
29780 2014-07-29  Nathan Sidwell  <nathan@acm.org>
29781
29782         * gcov-io.c (gcov_var): Make hidden.
29783         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
29784         (gcov_do_dump): Declare.
29785         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
29786
29787 2014-07-29  Martin Jambor  <mjambor@suse.cz>
29788
29789         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
29790         parameter to gimple.
29791         (sra_modify_assign): Likewise.
29792
29793 2014-07-29  Richard Biener  <rguenther@suse.de>
29794
29795         PR middle-end/52478
29796         * expr.c (expand_expr_real_2): Revert last change.
29797
29798 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
29799
29800         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
29801         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
29802         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
29803         call.
29804         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
29805         (contains_type_p): Forward declare.
29806         (polymorphic_call_target_hasher::hash): Hash speculative info.
29807         (polymorphic_call_target_hasher::equal): Compare speculative info.
29808         (get_class_context): Handle speuclation.
29809         (contains_type_p): Update.
29810         (get_polymorphic_call_info_for_decl): Update.
29811         (walk_ssa_copies): Break out from ...
29812         (get_polymorphic_call_info): ... here; set speculative context
29813         before giving up.
29814         * ipa-prop.c (ipa_write_indirect_edge_info,
29815         ipa_read_indirect_edge_info): Stream speculative context.
29816         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
29817         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
29818         SPECULATIVE_MAYBE_DERIVED_TYPE).
29819         (possible_polymorphic_call_targets overriders): Update.
29820         (dump_possible_polymorphic_call_targets overriders): Update.
29821         (dump_possible_polymorphic_call_target_p overriders): Update.
29822
29823 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
29824
29825         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
29826         ipa-devirt path; fix thinko there.
29827
29828 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
29829
29830         * config/i386/i386.c (ix86_return_in_memory): Replace one
29831         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
29832
29833 2014-07-28  Marek Polacek  <polacek@redhat.com>
29834
29835         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
29836
29837 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
29838
29839         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
29840         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
29841         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
29842         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
29843         (USE_LD_AS_NEEDED): Likewise.
29844         (ASM_APP_ON): Likewise.
29845         (ASM_APP_OFF): Likewise.
29846         (TARGET_POSIX_IO): Likewise.
29847         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
29848         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
29849         (USE_LD_AS_NEEDED): Likewise.
29850         (ASM_APP_ON): Likewise.
29851         (ASM_APP_OFF): Likewise.
29852         (TARGET_POSIX_IO): Likewise.
29853
29854 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
29855
29856         PR middle-end/61734
29857         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
29858         operators other than the equality operators.
29859
29860 2014-07-28  Richard Biener  <rguenther@suse.de>
29861
29862         PR middle-end/52478
29863         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
29864         sure to register SImode ones, not only >= word_mode ones.
29865         * expr.c (expand_expr_real_2): When expanding -ftrapv
29866         binops do not use OPTAB_LIB_WIDEN.
29867
29868 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
29869
29870         PR middle-end/61919
29871         * tree-outof-ssa.c (insert_partition_copy_on_edge)
29872         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
29873         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
29874         inserting them in the insn stream.
29875
29876 2014-07-28  Marek Polacek  <polacek@redhat.com>
29877
29878         PR middle-end/61913
29879         * common.opt (Wodr): Add Var.
29880
29881 2014-07-28  Richard Biener  <rguenther@suse.de>
29882
29883         PR tree-optimization/61921
29884         * tree-ssa-structalias.c (create_variable_info_for_1): Check
29885         if there is a varpool node before dereferencing it.
29886
29887 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
29888
29889         * graphite-sese-to-poly.c:
29890         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
29891         id of the pbb), which contains pointer to the pbb1.
29892
29893         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
29894
29895 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
29896
29897         * graphite-isl-ast-to-gimple.c:
29898         (graphite_create_new_guard): New function.
29899         (translate_isl_ast_node_if): New function.
29900         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
29901
29902         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
29903
29904 2014-07-27  Anthony Green  <green@moxielogic.com>
29905
29906         * config.gcc: Add moxie-*-moxiebox* configuration.
29907         * config/moxie/moxiebox.h: New file.
29908
29909 2014-07-26  Andrew Pinski  <apinski@cavium.com>
29910
29911         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
29912         from the read only register.
29913
29914 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
29915
29916         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
29917         as the allocation class if it isn't likely to be spilled.
29918
29919 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
29920
29921         * rtl.h (tls_referenced_p): Declare.
29922         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
29923         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
29924         (mips_cannot_force_const_mem): Use tls_referenced_p.
29925         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
29926         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
29927         instead of pa_tls_referenced_p.
29928         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
29929         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
29930         (pa_legitimate_constant_p): Likewise.
29931         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
29932         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
29933         (rs6000_cannot_force_const_mem, rs6000_emit_move)
29934         (rs6000_address_for_altivec): Use tls_referenced_p instead of
29935         rs6000_tls_referenced_p.
29936         (rs6000_tls_symbol_ref_1): Delete.
29937
29938 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
29939
29940         PR target/44551
29941         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
29942         Optimize inverse of a VEC_CONCAT.
29943
29944 2014-07-25  Xinliang David Li  <davidxl@google.com>
29945
29946         * params.def: New parameter.
29947         * coverage.c (get_coverage_counts): Check new flag.
29948         (coverage_compute_profile_id): Check new flag.
29949         (coverage_begin_function): Check new flag.
29950         (coverage_end_function): Check new flag.
29951         * value-prof.c (coverage_node_map_initialized_p): New function.
29952         (init_node_map): Populate map with all functions.
29953         * doc/invoke.texi: Document new parameter.
29954
29955 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
29956             Richard Biener <rguenther@suse.de>
29957
29958         * lto-streamer-out.c (struct sccs): Turn to ...
29959         (class DFS): ... this one; refactor the DFS walk so it can
29960         be re-done on per-SCC basis.
29961         (DFS::DFS): New constructor.
29962         (DFS::~DFS): New destructor.
29963         (hash_tree): Add new MAP argument holding in-SCC hash values;
29964         remove POINTER_TYPE hashing hack.
29965         (scc_entry_compare): Rename to ...
29966         (DFS::scc_entry_compare): ... this one.
29967         (hash_scc): Rename to ...
29968         (DFS::hash_scc): ... this one; pass output_block instead
29969         of streamer_cache; work harder to get unique and stable SCC
29970         hashes.
29971         (DFS_write_tree): Rename to ...
29972         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
29973         (lto_output_tree): Update.
29974
29975 2014-07-25  Andi Kleen  <ak@linux.intel.com>
29976
29977         * lto-streamer-out.c (hash_tree): Convert to inchash.
29978
29979 2014-07-25  Andi Kleen  <ak@linux.intel.com>
29980
29981         * tree.c (build_type_attribute_qual_variant): Use inchash.
29982         (type_hash_list): Dito.
29983         (attribute_hash_list): Dito
29984         (iterative_hstate_expr): Dito.
29985         (iterative_hash_expr): Dito.
29986         (build_range_type_1): Dito.
29987         (build_array_type_1): Dito.
29988         (build_function_type): Dito.
29989         (build_method_type_directly): Dito.
29990         (build_offset_type): Dito.
29991         (build_complex_type): Dito.
29992         (make_vector_type): Dito.
29993         * tree.h (iterative_hash_expr): Add compat wrapper.
29994         (iterative_hstate_expr): Add.
29995
29996 2014-07-25  Andi Kleen  <ak@linux.intel.com>
29997
29998         * Makefile.in (OBJS): Add inchash.o.
29999         (PLUGIN_HEADERS): Add inchash.h.
30000         * ipa-devirt.c: Include inchash.h.
30001         * lto-streamer-out.c: Dito.
30002         * tree-ssa-dom.c: Dito.
30003         * tree-ssa-pre.c: Dito.
30004         * tree-ssa-sccvn.c: Dito.
30005         * tree-ssa-tail-merge.c: Dito.
30006         * asan.c: Dito.
30007         * tree.c (iterative_hash_hashval_t): Move to ...
30008         (iterative_hash_host_wide_int): Move to ...
30009         * inchash.c: Here. New file.
30010         * tree.h (iterative_hash_hashval_t): Move to ...
30011         (iterative_hash_host_wide_int): Move to ...
30012         * inchash.h: Here. New file.
30013
30014 2014-07-25  Richard Biener  <rguenther@suse.de>
30015
30016         PR middle-end/61762
30017         PR middle-end/61894
30018         * fold-const.c (native_encode_int): Add and handle offset
30019         parameter to do partial encodings of expr.
30020         (native_encode_fixed): Likewise.
30021         (native_encode_real): Likewise.
30022         (native_encode_complex): Likewise.
30023         (native_encode_vector): Likewise.
30024         (native_encode_string): Likewise.
30025         (native_encode_expr): Likewise.
30026         * fold-const.c (native_encode_expr): Add offset parameter
30027         defaulting to -1.
30028         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
30029         (fold_ctor_reference): Handle all reads from tcc_constant
30030         ctors.
30031
30032 2014-07-25  Richard Biener  <rguenther@suse.de>
30033
30034         * tree-inline.c (estimate_move_cost): Mark speed_p argument
30035         as possibly unused.
30036
30037 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
30038
30039         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
30040
30041 2014-07-24  Kyle McMartin  <kyle@redhat.com>
30042
30043         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
30044
30045 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30046
30047         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
30048         Add prototype.
30049         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
30050         function.
30051         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
30052         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
30053         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
30054
30055 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30056
30057         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
30058         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
30059         aggregate types.  Instead, *all* aggregate types, except for single-
30060         element or homogeneous float/vector aggregates, are quadword-aligned
30061         if required by their type alignment.  Issue -Wpsabi note when a type
30062         is now treated differently than before.
30063
30064 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30065
30066         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
30067         does not fit fully into floating-point registers, and there is still
30068         space in the register parameter area, use GPRs to pass those parts
30069         of the argument.  Issue -Wpsabi note if any parameter is now treated
30070         differently than before.
30071         (rs6000_arg_partial_bytes): Update.
30072
30073 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
30074
30075         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
30076
30077 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
30078
30079         * rtl.h (target_rtl): Remove lang_dependent_initialized.
30080         * toplev.c (initialize_rtl): Don't use it.  Move previously
30081         "language-dependent" calls to...
30082         (backend_init): ...here.
30083         (lang_dependent_init_target): Don't set lang_dependent_initialized.
30084         Assert that RTL initialization hasn't happend yet.
30085
30086 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
30087
30088         PR rtl-optimization/61629
30089         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
30090         they have already been initialized.
30091
30092 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
30093
30094         PR middle-end/61268
30095         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
30096         DECL_INCOMING_RTL and entry_parm.
30097         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
30098         * calls.c (load_register_parameters): Likewise argument values.
30099         (emit_library_call_value_1, store_one_arg): Likewise argument
30100         save areas.
30101         * config/i386/i386.c (assign_386_stack_local): Likewise the local
30102         stack slot.
30103         * explow.c (validize_mem): Modify the argument in-place.
30104
30105 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30106
30107         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
30108         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
30109
30110 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30111
30112         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
30113         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
30114
30115 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30116
30117         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
30118         (aarch64_save_callee_saves): New parameter "skip_wb".
30119         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
30120
30121 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30122
30123         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
30124         "wb_candidate2".
30125         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
30126
30127 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
30128
30129         * graphite-isl-ast-to-gimple.c:
30130         (graphite_create_new_loop): Add calling of isl_id_free to properly
30131         decrement reference counts.
30132
30133         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
30134
30135 2014-07-24  Martin Liska  <mliska@suse.cz>
30136         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
30137         function used.
30138         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
30139         (rs6000_code_end): Likewise.
30140
30141 2014-07-24  Martin Liska  <mliska@suse.cz>
30142
30143         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
30144         symtab_node funtion used.
30145         (rs6000_xcoff_declare_object_name): Likewise.
30146
30147 2014-07-24  Martin Liska  <mliska@suse.cz>
30148
30149         * cgraphunit.c (compile): Correct function used.
30150
30151 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
30152
30153         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
30154         as non-indexable.
30155
30156 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
30157
30158         PR lto/61802
30159         * varasm.c (bss_initializer_p): Handle offlined ctors.
30160         (align_variable, get_variable_align): Likewise.
30161         (make_decl_one_only): Likewise.
30162         (default_binds_local_p_1): Likewise.
30163         (decl_binds_to_current_def_p): Likewise.
30164         (get_variable_section): Get constructor if it is offlined.
30165         (assemble_variable_contents): Sanity check that the caller
30166         streamed in the ctor in LTO.
30167
30168 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
30169
30170         * graphite-isl-ast-to-gimple.c:
30171         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
30172         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
30173         isl_ast_op_pdiv_r to the different case.
30174
30175         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
30176
30177 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30178
30179         PR middle-end/61876
30180         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
30181         when flag_errno_math is on.
30182
30183 2014-07-24  Martin Liska  <mliska@suse.cz>
30184
30185         * cgraph.h (varpool_node):
30186         (availability get_availability (void)):
30187         created from cgraph_variable_initializer_availability
30188         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
30189         created from: cgraph_variable_initializer_availability
30190         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
30191         (void finalize_named_section_flags (void)):
30192         created from varpool_finalize_named_section_flags
30193         (bool assemble_decl (void)): created from varpool_assemble_decl
30194         (void analyze (void)): created from varpool_analyze_node
30195         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
30196         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
30197         (void remove_initializer (void)): created from varpool_remove_initializer
30198         (tree get_constructor (void)): created from varpool_get_constructor
30199         (bool externally_visible_p (void)): created from varpool_externally_visible_p
30200         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
30201         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
30202         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
30203         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
30204         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
30205         (static bool output_variables (void)): created from varpool_output_variables
30206         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
30207         created from varpool_extra_name_alias
30208         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
30209         (static void dump_varpool (FILE *f)): created from dump_varpool
30210         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
30211         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
30212         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
30213         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
30214         (void assemble_aliases (void)): created from assemble_aliases
30215
30216 2014-07-24  Martin Liska  <mliska@suse.cz>
30217
30218         * cgraph.h (symtab_node):
30219         (void register_symbol (void)): created from symtab_register_node
30220         (void remove (void)): created from symtab_remove_node
30221         (void dump (FILE *f)): created from dump_symtab_node
30222         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
30223         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
30224         (struct ipa_ref *add_reference (symtab_node *referred_node,
30225         enum ipa_ref_use use_type)): created from add_reference
30226         (struct ipa_ref *add_reference (symtab_node *referred_node,
30227         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
30228         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
30229         gimple stmt)): created from maybe_add_reference
30230         (bool semantically_equivalent_p (symtab_node *target)): created from
30231         symtab_semantically_equivalent_p
30232         (void remove_from_same_comdat_group (void)): created from
30233         remove_from_same_comdat_group
30234         (void add_to_same_comdat_group (symtab_node *old_node)): created from
30235         symtab_add_to_same_comdat_group
30236         (void dissolve_same_comdat_group_list (void)): created from
30237         symtab_dissolve_same_comdat_group_list
30238         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
30239         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
30240         created from symtab_alias_ultimate_target
30241         (inline symtab_node *next_defined_symbol (void)): created from
30242         symtab_next_defined_symbol
30243         (bool resolve_alias (symtab_node *target)): created from
30244         symtab_resolve_alias
30245         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
30246         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
30247         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
30248         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
30249         (void set_section (const char *section)): created from set_section_1
30250         (enum availability get_availability (void)): created from symtab_node_availability
30251         (void make_decl_local (void)): created from symtab_make_decl_local
30252         (bool real_symbol_p (void)): created from symtab_read_node
30253         (can_be_discarded_p (void)): created from symtab_can_be_discarded
30254         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
30255         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
30256         symtab_in_same_comdat_p;
30257         (bool address_taken_from_non_vtable_p (void)): created from
30258         address_taken_from_non_vtable_p
30259         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
30260         (static void dump_table (FILE *)): created from dump_symtab
30261         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
30262         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
30263         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
30264         symtab_used_from_object_file_p
30265         (void dump_base (FILE *)): created from dump_symtab_base
30266         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
30267         (void unregister (void)): created from symtab_unregister_node
30268         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
30269         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
30270         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
30271         symtab_nonoverwritable_alias_1
30272         * cgraph.h (cgraph_node):
30273         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
30274         created from cgraph_remove_node_and_inline_clones
30275         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
30276         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
30277         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
30278         (cgraph_node *function_symbol (enum availability *avail = NULL)):
30279         created from cgraph_function_node
30280         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
30281         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
30282         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
30283         created from cgraph_create_clone
30284         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
30285         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
30286         created from cgraph_create_virtual_clone
30287         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
30288         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
30289         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
30290         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
30291         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
30292         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
30293         created from cgraph_function_version_info
30294         (struct cgraph_function_version_info *insert_new_function_version (void)):
30295         created from insert_new_cgraph_node_version
30296         (struct cgraph_function_version_info *function_version (void)): created from
30297         get_cgraph_node_version
30298         (void analyze (void)): created from analyze_function
30299         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
30300         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
30301         tree real_alias) cgraph_add_thunk
30302         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
30303         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
30304         created from cgraph_function_or_thunk_node
30305         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
30306         created from expand_thunk
30307         (void reset (void)): created from cgraph_reset_node
30308         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
30309         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
30310         (void remove (void)): created from cgraph_remove_node
30311         (void dump (FILE *f)): created from dump_cgraph_node
30312         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
30313         (bool get_body (void)): created from cgraph_get_body
30314         (void release_body (void)): created from cgraph_release_function_body
30315         (void unnest (void)): created from cgraph_unnest_node
30316         (void make_local (void)): created from cgraph_make_node_local
30317         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
30318         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
30319         gcov_type count, int freq)): created from cgraph_create_edge
30320         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
30321         gcov_type count, int freq)): created from cgraph_create_indirect_edge
30322         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
30323         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
30324         created from cgraph_create_edge_including_clones
30325         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
30326         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
30327         (void remove_callers (void)): created from cgraph_node_remove_callers
30328         (void remove_callees (void)): created from cgraph_node_remove_callees
30329         (enum availability get_availability (void)): created from cgraph_function_body_availability
30330         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
30331         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
30332         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
30333         (void call_duplication_hooks (cgraph_node *node2)): created from
30334         cgraph_call_node_duplication_hooks
30335         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
30336         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
30337         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
30338         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
30339         (void call_function_insertion_hooks (void)):
30340         created from cgraph_call_function_insertion_hooks
30341         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
30342         (bool local_p (void)): created from cgraph_local_node
30343         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
30344         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
30345         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
30346         (inline bool only_called_directly_or_aliased_p (void)):
30347         created from cgraph_only_called_directly_or_aliased_p
30348         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
30349         created from cgraph_will_be_removed_from_program_if_no_direct_calls
30350         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
30351         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
30352         (bool can_remove_if_no_direct_calls_p (void)):
30353         created from cgraph_can_remove_if_no_direct_calls_p
30354         (inline bool has_gimple_body_p (void)):
30355         created from cgraph_function_with_gimple_body_p
30356         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
30357         (static void dump_cgraph (FILE *f)): created from dump_cgraph
30358         (static inline void debug_cgraph (void)): created from debug_cgraph
30359         (static void record_function_versions (tree decl1, tree decl2)):
30360         created from record_function_versions
30361         (static void delete_function_version (tree decl)):
30362         created from delete_function_version
30363         (static void add_new_function (tree fndecl, bool lowered)):
30364         created from cgraph_add_new_function
30365         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
30366         (static cgraph_node * create (tree decl)): created from cgraph_create_node
30367         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
30368         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
30369         (static cgraph_node *get_for_asmname (tree asmname)):
30370         created from cgraph_node_for_asm
30371         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
30372         created from cgraph_same_body_alias
30373         (static bool used_from_object_file_p_worker (cgraph_node *node,
30374         void *): new function
30375         (static bool non_local_p (cgraph_node *node, void *)):
30376         created from cgraph_non_local_node_p_1
30377         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
30378         created from verify_cgraph
30379         (static bool make_local (cgraph_node *node, void *)):
30380         created from cgraph_make_node_local
30381         (static cgraph_node *create_alias (tree alias, tree target)):
30382         created from cgraph_create_function_alias
30383         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
30384         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
30385         created from cgraph_create_edge_1
30386         * cgraph.h (varpool_node):
30387         (void remove (void)): created from varpool_remove_node
30388         (void dump (FILE *f)): created from dump_varpool_node
30389
30390 2014-07-24  Richard Biener  <rguenther@suse.de>
30391
30392         PR ipa/61823
30393         * tree-ssa-structalias.c (create_variable_info_for_1):
30394         Use varpool_get_constructor.
30395         (create_variable_info_for): Likewise.
30396
30397 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30398
30399         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
30400         subtract outgoing area size when restoring stack_pointer_rtx.
30401
30402 2014-07-24  Nick Clifton  <nickc@redhat.com>
30403
30404         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
30405         that operations are taking place in parallel.
30406         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
30407
30408 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
30409
30410         * omp-low.c (extract_omp_for_data): Add missing break statement.
30411
30412 2014-07-24  Richard Biener  <rguenther@suse.de>
30413
30414         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
30415         * tree-inline.c (estimate_move_cost): Add speed_p parameter
30416         and adjust MOVE_RATIO query accordingly.
30417         (estimate_num_insns): Adjust callers.
30418         * ipa-prop.c (ipa_populate_param_decls): Likewise.
30419         * ipa-cp.c (gather_context_independent_values,
30420         estimate_local_effects): Likewise.
30421         * ipa-split.c (consider_split): Likewise.
30422
30423 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
30424
30425         * config/i386/driver-i386.c: Remove names of unused arguments and
30426         unnecessary unused attributes.
30427         * config/i386/host-mingw32.c: Likewise.
30428         * config/i386/i386.c: Likewise.
30429         * config/i386/winnt-stubs.c: Likewise.
30430         * config/i386/winnt.c: Likewise.
30431
30432 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30433
30434         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
30435         (aarch64_gen_loadwb_pair): New helper function.
30436         (aarch64_expand_epilogue): Simplify code using new helper functions.
30437         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
30438
30439 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30440
30441         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
30442         (aarch64_gen_storewb_pair): New helper function.
30443         (aarch64_expand_prologue): Simplify code using new helper functions.
30444         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
30445
30446 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30447
30448         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
30449         Rename to aarch64_save_callee_saves, remove restore code.
30450         (aarch64_restore_callee_saves): New function.
30451
30452 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30453
30454         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
30455         (aarch64_save_callee_saves): New function to handle reg save
30456         for both core and vectore regs.
30457
30458 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30459
30460         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
30461         (aarch64_gen_store_pair): New helper function.
30462         (aarch64_save_or_restore_callee_save_registers)
30463         (aarch64_save_or_restore_fprs): Use new helper functions.
30464
30465 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30466
30467         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
30468         (aarch64_save_or_restore_callee_save_registers)
30469         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
30470
30471 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30472
30473         * config/aarch64/aarch64.c
30474         (aarch64_save_or_restore_callee_save_registers)
30475         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
30476
30477 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30478
30479         * config/aarch64/aarch64.c
30480         (aarch64_save_or_restore_callee_save_registers)
30481         (aarch64_save_or_restore_fprs): Remove 'increment'.
30482
30483 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30484
30485         * config/aarch64/aarch64.c
30486         (aarch64_save_or_restore_callee_save_registers)
30487         (aarch64_save_or_restore_fprs): Use register offset in
30488         cfun->machine->frame.reg_offset.
30489
30490 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30491
30492         * config/aarch64/aarch64.c
30493         (aarch64_save_or_restore_callee_save_registers)
30494         (aarch64_save_or_restore_fprs): Remove base_rtx.
30495
30496 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30497
30498         * config/aarch64/aarch64.c
30499         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
30500         to 'start_offset'.  Remove local variable 'start_offset'.
30501
30502 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30503
30504         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
30505         type to HOST_WIDE_INT.
30506
30507 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30508
30509         * config/aarch64/aarch64.c (aarch64_expand_prologue)
30510         (aarch64_save_or_restore_fprs)
30511         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
30512
30513 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30514
30515         * config/arm/t-rtems-eabi: Add
30516         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
30517         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
30518         mbig-endian/mthumb/march=armv7-r, and
30519         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
30520         multilibs.
30521
30522 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30523             Chris Johns <chrisj@rtems.org>
30524             Joel Sherrill <joel.sherrill@oarcorp.com>
30525
30526         * config.gcc: Add nios2-*-rtems*.
30527         * config/nios2/rtems.h: New file.
30528         * gcc/config/nios2/t-rtems: New file.
30529
30530 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
30531
30532         PR target/61396
30533         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
30534         constant numbers, not general constants.
30535         (rs6000_expand_vector_init): Ditto.
30536
30537 2014-07-23  Nathan Sidwell  <nathan@acm.org>
30538
30539         * gcov-tool.c (gcov_list): Declare here.
30540         (set_gcov_list): Remove.
30541         (gcov_output_files): Set gcov_list directly.
30542
30543 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
30544
30545         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
30546
30547 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30548
30549         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
30550         callee-saved registers are available for padding purpose
30551         and r3 is not mandatory, then prefer use those callee-saved
30552         instead of r3.
30553
30554 2014-07-23  Richard Biener  <rguenther@suse.de>
30555
30556         * params.def (PARAM_MAX_COMBINE_INSNS): New.
30557         * combine.c: Include statistics.h and params.h.
30558         (combine_instructions): Guard three and four insn combines
30559         with max-combine-insns value.  Record statistics for combines
30560         performed.
30561         * doc/invoke.texi (max-combine-insns): Document new param.
30562
30563 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
30564
30565         * graphite-isl-ast-to-gimple.c:
30566         (translate_isl_ast_node_block): New function.
30567         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
30568
30569         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
30570         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
30571
30572 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
30573
30574         * graphite-isl-ast-to-gimple.c:
30575         (get_max_schedule_dimensions): New function.
30576         (extend_schedule): Likewise.
30577         (generate_isl_schedule): Add calling of extend_schedule and
30578         get_max_schedule_dimensions.
30579
30580 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30581
30582         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
30583         (case UNSPEC): Handle UNSPEC_RBIT.
30584
30585 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30586
30587         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
30588         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
30589
30590 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30591
30592         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
30593
30594 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
30595
30596         * graphite-isl-ast-to-gimple.c:
30597         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
30598         (ivs_params_clear):
30599         (build_iv_mapping): New function.
30600         (translate_isl_ast_node_user): Likewise.
30601         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
30602
30603         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
30604         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
30605         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
30606
30607 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
30608
30609         PR target/55701
30610         * config/arm/arm.md (setmem): New pattern.
30611         * config/arm/arm-protos.h (struct tune_params): New fields.
30612         (arm_gen_setmem): New prototype.
30613         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
30614         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
30615         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
30616         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
30617         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
30618         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
30619         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
30620         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
30621         (arm_const_inline_cost): New function.
30622         (arm_block_set_max_insns): New function.
30623         (arm_block_set_non_vect_profit_p): New function.
30624         (arm_block_set_vect_profit_p): New function.
30625         (arm_block_set_unaligned_vect): New function.
30626         (arm_block_set_aligned_vect): New function.
30627         (arm_block_set_unaligned_non_vect): New function.
30628         (arm_block_set_aligned_non_vect): New function.
30629         (arm_block_set_vect, arm_gen_setmem): New functions.
30630
30631 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
30632
30633         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
30634
30635 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
30636
30637         PR target/61855
30638         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
30639         out of #ifdef __OPTIMIZE__.
30640
30641 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
30642
30643         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
30644         different trapping status if -fnon-call-exceptions is enabled.
30645
30646 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
30647
30648         * expr.c (store_field): Handle VOIDmode for calls that return values
30649         in multiple locations.
30650
30651 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30652
30653         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
30654         (altivec_vsldoi_<mode>): Likewise.
30655
30656 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
30657
30658         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
30659         to the number of characters in the line.
30660
30661 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
30662
30663         * graphite-isl-ast-to-gimple.c: Add using of
30664         build_nonstandard_integer_type instead of int128_integer_type_node.
30665
30666 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
30667
30668         * toplev.c (output_stack_usage): Adjust the location of the warning.
30669
30670 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
30671
30672         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
30673         (*membar_storeload): Disable for LEON3.
30674
30675 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30676
30677         PR rtl-optimization/61461
30678         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
30679
30680 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
30681
30682         PR target/61794
30683         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
30684         Fix instruction constraint.
30685         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
30686
30687 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
30688
30689         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
30690
30691 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
30692
30693         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
30694         GNU coding standards.
30695         (nds32_register_move_cost): Likewise.
30696         (nds32_memory_move_cost): Likewise.
30697         (nds32_address_cost): Likewise.
30698
30699 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
30700
30701         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
30702
30703 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
30704
30705         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
30706         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
30707         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
30708         (HAVE_sync_compare_and_swapqi): Define.
30709         (HAVE_sync_compare_and_swaphi): Likewise.
30710         (HAVE_sync_compare_and_swapsi): Likewise.
30711
30712 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
30713
30714         * config/mips/p5600.md: Add missing cpu tests.
30715
30716 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30717
30718         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
30719         (vmla_f64): Likewise.
30720         (vfms_f64): Likewise.
30721         (vmls_f64): Likewise.
30722
30723 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30724
30725         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
30726         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
30727
30728 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30729
30730         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
30731         (vmlal_high_lane_s32): Likewise.
30732         (vmlal_high_lane_u16): Likewise.
30733         (vmlal_high_lane_u32): Likewise.
30734         (vmlsl_high_lane_s16): Likewise.
30735         (vmlsl_high_lane_s32): Likewise.
30736         (vmlsl_high_lane_u16): Likewise.
30737         (vmlsl_high_lane_u32): Likewise.
30738
30739 2014-07-17  Terry Guo  <terry.guo@arm.com>
30740
30741         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
30742         (alus_reg): Renamed to alus_sreg.
30743         * config/arm/arm-fixed.md: Change type of non-dsp instructions
30744         from alu_reg to alu_sreg.  Change type of dsp instructions from
30745         alu_reg to alu_dsp_reg.
30746         * config/arm/thumb1.md: Likewise.
30747         * config/arm/thumb2.md: Likewise.
30748         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
30749         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
30750         with alu_sreg and alus_sreg.
30751         * config/arm/arm1026ejs.md (alu_op): Likewise.
30752         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
30753         * config/arm/arm926ejs.md (9_alu_op): Likewise.
30754         * config/arm/fa526.md (526_alu_op): Likewise.
30755         * config/arm/fa606te.md (606te_alu_op): Likewise.
30756         * config/arm/fa626te.md (626te_alu_op): Likewise.
30757         * config/arm/fa726te.md (726te_alu_op): Likewise.
30758         * config/arm/fmp626.md (mp626_alu_op): Likewise.
30759         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
30760         alu_sreg, alu_dsp_reg and alus_sreg.
30761         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
30762         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
30763         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
30764         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
30765         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
30766         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
30767         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
30768         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
30769         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
30770         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
30771         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
30772         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
30773         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
30774         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
30775         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
30776         alus_reg to alus_sreg.
30777
30778 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
30779
30780         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
30781         infinity format.
30782
30783 2014-07-17  Richard Biener  <rguenther@suse.de>
30784
30785         PR rtl-optimization/61801
30786         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
30787         don't set reg_pending_barrier if it appears in a debug-insn.
30788
30789 2014-07-16  DJ Delorie  <dj@redhat.com>
30790
30791         * config/rx/rx.c (rx_option_override): Fix alignment values.
30792         (rx_align_for_label): Likewise.
30793
30794 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
30795
30796         PR target/61737.
30797         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
30798         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
30799         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
30800         functions.
30801         (cris_print_index, cris_print_operand, cris_constant_index_p)
30802         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
30803         (cris_address_cost): Ditto last CONSTANT_P.
30804         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
30805         callers changed.  Yield cris_offsettable_symbol for non-PIC
30806         constant symbolic expressions including labels.  Yield cris_unspec
30807         for all unspecs.
30808         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
30809         target to pic_offset_table_rtx for calls that will likely go
30810         through PLT, const0_rtx when they can't.  All callers changed.
30811         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
30812         symbolic expressions to be PICified.  Remove second, redundant,
30813         assert on can_create_pseudo_p returning non-zero.  Use
30814         replace_equiv_address_nv, not replace_equiv_address, for final
30815         operand update.
30816         * config/cris/cris.md ("movsi"): Move variable t to pattern
30817         toplevel. Adjust assert for new cris_symbol_type member.  Use
30818         CONSTANT_P instead of CONSTANT_ADDRESS_P.
30819         ("*movsi_internal") <case 9>: Make check for valid unspec operands
30820         for lapc stricter.
30821         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
30822         ("call", "call_value"): Use second incoming operand as a marker
30823         for pic-offset-table-register being used.
30824         ("*expanded_call_non_v32", "*expanded_call_v32")
30825         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
30826         second incoming operand to CALL, match cris_call_type_marker.
30827         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
30828         ("*expanded_call_side"): Ditto.  Fix typo in comment.
30829         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
30830         CONSTANT_P.
30831         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
30832         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
30833         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
30834         users changed.  Add members cris_offsettable_symbol and cris_unspec.
30835         (cris_symbol_type): Rename from cris_pic_symbol_type.
30836         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
30837         just CONSTANT_P.
30838         * config/cris/cris-protos.h (cris_symbol_type_of,
30839         cris_expand_pic_call_address): Adjust prototypes.
30840         (cris_legitimate_constant_p): New prototype.
30841
30842         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
30843         an existing tmake_file.  Don't add t-slibgcc and t-linux.
30844
30845 2014-07-17  Jason Merrill  <jason@redhat.com>
30846
30847         PR c++/61623
30848         * symtab.c (symtab_remove_from_same_comdat_group): Also
30849         set_comdat_group to NULL_TREE.
30850         (verify_symtab): Fix diagnostic.
30851
30852 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
30853
30854         PR target/61662
30855         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
30856
30857 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
30858
30859         Support location tracking for built-in macro tokens
30860         * input.h (is_location_from_builtin_token): New function declaration.
30861         * input.c (is_location_from_builtin_token): New function definition.
30862         * toplev.c (general_init): Tell libcpp what the pre-defined
30863         spelling location for built-in tokens is.
30864
30865 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
30866
30867         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
30868         on the FUNCTION_DECL.
30869
30870 2014-07-16  Richard Biener  <rguenther@suse.de>
30871
30872         PR other/61782
30873         * doc/extend.texi (always_inline): Clarify.
30874
30875 2014-07-15  Eric Christopher  <echristo@gmail.com>
30876
30877         * doc/invoke.texi (Link Options): Document -z option.
30878
30879 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
30880
30881         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
30882         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
30883
30884 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
30885
30886         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
30887
30888 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
30889
30890         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
30891         varpool_assemble_decl.
30892         * varpool.c (varpool_assemble_decl): Assert that node->definition is
30893         true.
30894
30895 2014-07-15  Michael Matz  <matz@suse.de>
30896
30897         PR rtl-optimization/61772
30898         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
30899
30900 2014-07-15  Richard Biener  <rguenther@suse.de>
30901
30902         * opts.c (default_options_table): Disable bit-ccp at -Og.
30903
30904 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
30905
30906         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
30907
30908 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
30909
30910         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
30911         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
30912         call langhook for unknown declaration.
30913         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
30914         * tree.h (DECL_ARGUMENTS): Update.
30915         * print-tree.c (print_node): Update.
30916         * tree-core.h (tree_decl_non_common): Remove arguments.
30917         (tree_function_decl): Add arguments.
30918
30919 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
30920
30921         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
30922
30923 2014-07-14  Richard Biener  <rguenther@suse.de>
30924
30925         PR tree-optimization/61779
30926         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
30927         simplifying a condition.
30928
30929 2014-07-14  Richard Biener  <rguenther@suse.de>
30930
30931         * builtins.c (c_strlen): Make only_value == 2 really only
30932         affect warning generation.
30933
30934 2014-07-14  Richard Biener  <rguenther@suse.de>
30935
30936         PR tree-optimization/61757
30937         PR tree-optimization/61783
30938         PR tree-optimization/61787
30939         * tree-ssa-dom.c (record_equality): Revert canonicalization
30940         change and add comment.
30941         (propagate_rhs_into_lhs): Revert previous fix, removing
30942         loop depth restriction again.
30943
30944 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30945
30946         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
30947         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
30948         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
30949         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
30950         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
30951         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
30952         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
30953
30954 2014-07-14  Richard Biener  <rguenther@suse.de>
30955
30956         * cgraph.h (decl_in_symtab_p): Make inline.
30957
30958 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
30959
30960         PR middle-end/61294
30961         * doc/invoke.texi (-Wmemset-transposed-args): Document.
30962
30963         PR target/61656
30964         * config/i386/i386.c (classify_argument): Don't merge classes above
30965         number of words.
30966
30967 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
30968
30969         * cgraph.h (symtab_node): Add nonzero_address.
30970         (decl_in_symtab_p): Break out from ...
30971         (symtab_get_node): ... here.
30972         * fold-const.c: Include cgraph.h
30973         (tree_single_nonzero_warnv_p): Use symtab to determine
30974         if symbol is non-zero.
30975         * symtab.c (symtab_node::nonzero_address): New method.
30976
30977 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
30978
30979         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
30980         forgotten in previous commit.
30981
30982 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
30983
30984         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
30985         on builtin types.
30986         * ipa-devirt.c: Include stor-layout.h and intl.h
30987         (odr_subtypes_equivalent_p): New function.
30988         (warn_odr): New function.
30989         (warn_type_mismatch): New function.
30990         (odr_types_equivalent_p): New function.
30991         (add_type_duplicate): Use it.
30992         * common.opt (Wodr): New flag.
30993         * doc/invoke.texi (Wodr): Document new warning.
30994
30995 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
30996
30997         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
30998         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
30999         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
31000         (varpool_get_constructor): Push CTORS_IN timevar.
31001         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
31002
31003 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
31004
31005         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
31006         Remove VOID_FTYPE_PUSHORT.
31007         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
31008         Change code to USHORT_FTYPE_VOID.
31009         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
31010         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
31011         (ix86_atomic_assign_expand_fenv): Update for
31012         __builtin_ia32_fnstsw changes.
31013         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
31014         (fnstsw): Change operand 0 to nonimmediate operand.
31015
31016 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
31017
31018         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
31019         (varpool_get_constructor): New function.
31020         (varpool_ctor_useable_for_folding_p): Break out from ...
31021         (ctor_for_folding): ... here; use varpool_get_constructor.
31022         (varpool_assemble_decl): Likewise.
31023         * lto-streamer.h (struct output_block): Turn cgraph_node
31024         to symbol filed.
31025         (lto_input_variable_constructor): Declare.
31026         * ipa-visibility.c (function_and_variable_visibility): Use
31027         varpool_get_constructor.
31028         * cgraph.h (varpool_get_constructor): Declare.
31029         (varpool_ctor_useable_for_folding_p): New function.
31030         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
31031         parameter; return error_mark_node for non-trivial constructors.
31032         (lto_write_tree_1, DFS_write_tree): Update use of
31033         get_symbol_initial_value.
31034         (output_function): Update initialization of symbol.
31035         (output_constructor): New function.
31036         (copy_function): Rename to ..
31037         (copy_function_or_variable): ... this one; handle vars too.
31038         (lto_output): Output variable sections.
31039         * lto-streamer-in.c (input_constructor): New function.
31040         (lto_read_body): Rename from ...
31041         (lto_read_body_or_constructor): ... this one; handle vars too.
31042         (lto_input_variable_constructor): New function.
31043         * ipa-prop.c (ipa_prop_write_jump_functions,
31044         ipa_prop_write_all_agg_replacement): Update.
31045         * lto-cgraph.c (compute_ltrans_boundary): Use it.
31046         (output_cgraph_opt_summary): Set symbol to NULL.
31047
31048 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
31049
31050         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
31051         non-polymorphic types.
31052         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
31053         * ipa-devirt.c (types_same_for_odr): Do not explode when one
31054         of types is not polymorphic.
31055
31056 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
31057
31058         * lra-constraints.c (remove_inheritance_pseudos): Process
31059         destination pseudo too.
31060
31061 2014-07-11  Rong Xu  <xur@google.com>
31062
31063         * gcov-tool.c (gcov_output_files): Fix build error introduced in
31064         commit r212448.
31065
31066 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
31067
31068         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
31069         * config/avr/avr-devices.c (AVR_MCU): Same.
31070         (avr_mcu_types): add text start value to end of device list.
31071         * config/avr/avr-mcus.def: Add text section start for all devices.
31072         (ata5782): Add new avr5 device.
31073         (ata5831): Same.
31074         * config/avr/avr-tables.opt: Regenerate.
31075         * config/avr/avr.h: Add declaration for text section start handler.
31076         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
31077         SPEC functions.
31078         (LINK_SPEC): Include text section start handler to linker spec.
31079         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
31080         pass -Ttext option to linker if the text section start for the device
31081         is not zero.
31082         * config/avr/t-multilib: Regenerate.
31083         * doc/avr-mmcu.texi: Regenerate.
31084
31085 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
31086
31087         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
31088         * config/rs6000/aix52.h (LINK_SPEC): Same.
31089         * config/rs6000/aix53.h (LINK_SPEC): Same.
31090         * config/rs6000/aix61.h (LINK_SPEC): Same.
31091         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
31092
31093 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
31094
31095         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
31096         (graphite_verify): New function.
31097         (ivs_params_clear): New function.
31098         (gcc_expression_from_isl_ast_expr_id): New function.
31099         (gcc_expression_from_isl_expr_int): New function.
31100         (binary_op_to_tree): New function.
31101         (ternary_op_to_tree): New function.
31102         (unary_op_to_tree): New function.
31103         (nary_op_to_tree): New function.
31104         (gcc_expression_from_isl_expr_op): New function.
31105         (gcc_expression_from_isl_expression): New function.
31106         (graphite_create_new_loop): New function.
31107         (translate_isl_ast_for_loop): New function.
31108         (get_upper_bound): New function.
31109         (graphite_create_new_loop_guard): New function.
31110         (translate_isl_ast_node_for): New function.
31111         (translate_isl_ast): New function.
31112         (add_parameters_to_ivs_params): New function.
31113         (scop_to_isl_ast): New parameter ip.
31114         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
31115
31116 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
31117
31118         * config/xtensa/predicates.md (call expander): Update for
31119         DECL_SECTION_NAME being string.
31120
31121 2014-07-11  Richard Biener  <rguenther@suse.de>
31122
31123         PR middle-end/61473
31124         * builtins.c (fold_builtin_memory_op): Inline memory moves that
31125         can be implemented with a single load followed by a single store.
31126         (c_strlen): Only warn when only_value is not 2.
31127
31128 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
31129
31130         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
31131
31132 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
31133
31134         PR target/61561
31135         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
31136         (*movhi_bytes): Likewise.
31137         (*arm_movqi_insn): Likewise.
31138
31139 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
31140
31141         PR target/56858
31142         * config/alpha/alpha.c: Include tree-pass.h, context.h
31143         and pass_manager.h.
31144         (pass_data_handle_trap_shadows): New pass.
31145         (pass_handle_trap_shadows::gate): New pass gate function.
31146         (make_pass_handle_trap_shadows): New function.
31147         (rest_of_handle_trap_shadows): Ditto.
31148
31149         (alpha_align_insns_1): Rename from alpha_align_insns.
31150         (pass_data_align_insns): New pass.
31151         (pass_align_insns::gate): New pass gate function.
31152         (make_pass_aling_insns): New function.
31153         (rest_of_align_insns): Ditto.
31154         (alpha_align_insns): Ditto.
31155
31156         (alpha_option_override): Declare handle_trap_shadows info
31157         and align_insns_info.  Register handle_trap_shadows and align_insns
31158         passes here.
31159         (alpha_reorg): Do not call alpha_trap_shadows and
31160         alpha_align_insn from here.
31161
31162         (alpha_pad_function_end): Do not skip BARRIERs.
31163
31164 2014-07-10  Rong Xu  <xur@google.com>
31165
31166         Add gcov-tool: an offline gcda profile processing tool support.
31167         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
31168         (gcov_is_error): Ditto.
31169         (gcov_read_string): Ditto.
31170         (gcov_read_sync): Ditto.
31171         * gcov-io.h: Move counter defines to gcov-counter.def.
31172         * gcov-dump.c (tag_counters): Use gcov-counter.def.
31173         * coverage.c: Ditto.
31174         * gcov-tool.c: Offline gcda profile processing tool.
31175         (unlink_gcda_file): Remove one gcda file.
31176         (unlink_profile_dir): Remove gcda files from the profile path.
31177         (gcov_output_files): Output gcda files to an output dir.
31178         (profile_merge): Merge two profiles in directory.
31179         (print_merge_usage_message): Print merge usage.
31180         (merge_usage): Print merge usage and exit.
31181         (do_merge): Driver for profile merge sub-command.
31182         (profile_rewrite): Rewrite profile.
31183         (print_rewrite_usage_message): Print rewrite usage.
31184         (rewrite_usage): Print rewrite usage and exit.
31185         (do_rewrite): Driver for profile rewrite sub-command.
31186         (print_usage): Print gcov-info usage and exit.
31187         (print_version): Print gcov-info version.
31188         (process_args): Process arguments.
31189         (main): Main routine for gcov-tool.
31190         * Makefile.in: Build and install gcov-tool.
31191         * gcov-counter.def: New file split from gcov-io.h.
31192         * doc/gcc.texi: Include gcov-tool.texi.
31193         * doc/gcov-tool.texi: Document for gcov-tool.
31194
31195 2014-07-10  Richard Biener  <rguenther@suse.de>
31196
31197         PR tree-optimization/61757
31198         * tree-ssa-dom.c (loop_depth_of_name): Restore.
31199         (propagate_rhs_into_lhs): Revert part of last change.
31200
31201 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
31202
31203         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
31204         FUNCTION_DECLs.
31205
31206 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
31207
31208         PR middle-end/53590
31209         * function.c (allocate_struct_function): Revert r188667 change.
31210
31211         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
31212
31213 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
31214
31215         * doc/install.texi: Remove links to defunct package providers for
31216         Solaris.
31217
31218 2014-07-09  Tom de Vries  <tom@codesourcery.com>
31219
31220         * final.c (get_call_fndecl): Declare.
31221         (self_recursive_call_p): New function.
31222         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
31223
31224 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31225
31226         * ipa-devirt.c (record_node): Walk through aliases.
31227
31228 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31229
31230         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
31231
31232 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31233
31234         Revert:
31235         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
31236
31237 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31238
31239         * ipa-visibility.c (function_and_variable_visibility): Remove
31240         temporary hack disabling local aliases on AIX.
31241
31242 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31243
31244         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
31245         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
31246
31247 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31248
31249         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
31250         * rs6000/rs6000.c: Inline output of .set instruction.
31251         (declare_alias_data): New struct.
31252         (rs6000_declare_alias): New function.
31253         (rs6000_xcoff_declare_function_name): Use it.
31254         (rs6000_xcoff_declare_object_name): New function.
31255         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
31256         (ASM_OUTPUT_DEF): Turn to empty definition.
31257
31258 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31259
31260         PR bootstrap/61679
31261         * hash-table.h: use hash_table::value_type instead of
31262         Descriptor::value_type in the return types of several methods.
31263
31264 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31265
31266         * tree-pass.h (pass_data): Remove has_execute member.
31267         * passes.c (execute_one_pass): Don't check pass->has_execute.
31268         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
31269         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
31270         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
31271         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
31272         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
31273         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
31274         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
31275         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
31276         gimple-low.c, gimple-ssa-isolate-paths.c,
31277         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
31278         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
31279         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
31280         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
31281         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
31282         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
31283         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
31284         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
31285         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
31286         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
31287         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
31288         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
31289         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
31290         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
31291         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
31292         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
31293         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
31294         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
31295         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
31296         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
31297         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
31298         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
31299         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
31300         web.c: Remove initializer for pass_data::has_execute.
31301
31302 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31303
31304         * graphite-htab.h: Use hash_map instead of hash_table.
31305         * graphite-clast-to-gimple.c: Adjust.
31306         * passes.c: Use hash_map instead of hash_table.
31307         * sese.c: Likewise.
31308         * sese.h: Remove now unused code.
31309
31310 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
31311
31312         PR target/61599
31313         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
31314         than zero.
31315
31316 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
31317
31318         PR rtl-optimization/61673
31319         * combine.c (simplify_comparison): Test just mode's sign bit
31320         in tmode rather than the sign bit and any bits above it.
31321
31322 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
31323
31324         * graphite-isl-ast-to-gimple.c (generate_isl_context):
31325         Add __isl_give to the declaration.
31326         (generate_isl_schedule): Likewise.
31327         (scop_to_isl_ast): Likewise.
31328
31329 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31330
31331         * config/arm/arm.c (cortexa5_extra_costs): New table.
31332         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
31333
31334 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
31335
31336         PR tree-optimization/61725
31337         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
31338         range, use range_includes_zerop_p instead of integer_zerop on
31339         vr0->min, only use log2 of max if min is not negative.
31340
31341 2014-07-08  Richard Biener  <rguenther@suse.de>
31342
31343         * tree-ssa-dom.h (loop_depth_of_name): Remove.
31344         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
31345         restriction on loop depth difference.
31346         (record_equality): Likewise.
31347         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
31348         (loop_depth_of_name): Remove.
31349         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
31350         restriction on loop depth difference.
31351         (init_copy_prop): Likewise.
31352
31353 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31354
31355         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
31356         parameter.
31357         (walk_aliased_vdefs): Likewise.
31358         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
31359         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
31360         (detect_type_change_from_memory_writes): Check if entry was reached.
31361
31362 2014-07-08  Richard Biener  <rguenther@suse.de>
31363
31364         PR tree-optimization/61681
31365         * tree-ssa-structalias.c (find_what_var_points_to): Expand
31366         NONLOCAL inside ESCAPED.
31367
31368 2014-07-08  Richard Biener  <rguenther@suse.de>
31369
31370         PR tree-optimization/61680
31371         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31372         Handle properly all read-write dependences with group accesses.
31373
31374 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
31375
31376         PR tree-optimization/61576
31377         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
31378         block containing reduction statement is predecessor of phi basi block.
31379
31380 2014-07-08  Marek Polacek  <polacek@redhat.com>
31381
31382         PR c/60226
31383         * fold-const.c (round_up_loc): Change the parameter type.
31384         Remove assert.
31385         * fold-const.h (round_up_loc): Adjust declaration.
31386         * stor-layout.c (finalize_record_size): Check for too large types.
31387
31388 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
31389
31390         * symtab.c: Include calls.h.
31391         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
31392
31393 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
31394
31395         * config/rs6000/rs6000.c (output_vec_const_move): Handle
31396         little-endian code generation.
31397         * config/rs6000/spe.md (spe_evmergehi): Rename to...
31398         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
31399         (spe_evmergehilo): Rename to...
31400         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
31401         (spe_evmergelo): Rename to...
31402         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
31403         (spe_evmergelohi): Rename to...
31404         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
31405         (spe_evmergehi, spe_evmergehilo): New expanders.
31406         (spe_evmergelo, spe_evmergelohi): Likewise.
31407         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
31408         (*frob_tf_ti): Likewise.
31409         (*frob_<mode>_di_2): Likewise.
31410         (*frob_tf_di_8_2): Likewise.
31411         (*frob_di_<mode>): Likewise.
31412         (*frob_ti_tf): Likewise.
31413         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
31414         (*frob_ti_<mode>_8_2): Likewise.
31415         (*frob_ti_tf_2): Likewise.
31416         (mov_si<mode>_e500_subreg0): Rename to...
31417         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
31418         endianness only.
31419         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
31420         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
31421         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
31422         the big endianness only.
31423         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
31424         (*mov_si<mode>_e500_subreg0_2): Rename to...
31425         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
31426         big big endianness only.
31427         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
31428         (*mov_si<mode>_e500_subreg4): Rename to...
31429         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
31430         endianness only.
31431         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
31432         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
31433         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
31434         the big endianness only.
31435         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
31436         pattern.
31437         (*mov_si<mode>_e500_subreg4_2): Rename to...
31438         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
31439         endianness only.
31440         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
31441         (*mov_sitf_e500_subreg8): Rename to...
31442         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
31443         endianness only.
31444         (*mov_sitf_e500_subreg8_le): New instruction pattern.
31445         (*mov_sitf_e500_subreg8_2): Rename to...
31446         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
31447         endianness only.
31448         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
31449         (*mov_sitf_e500_subreg12): Rename to...
31450         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
31451         endianness only.
31452         (*mov_sitf_e500_subreg12_le): New instruction pattern.
31453         (*mov_sitf_e500_subreg12_2): Rename to...
31454         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
31455         endianness only.
31456         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
31457
31458 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
31459
31460         * asan.c (instrument_strlen_call): Do not instrument first byte
31461         in strlen if already instrumented.
31462
31463 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31464
31465         * config/arm/arm.opt (mwords-little-endian): Delete.
31466         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
31467         of TARGET_LITTLE_WORDS.
31468         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
31469         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
31470         warning.
31471         * doc/invoke.texi: Remove references to -mwords-little-endian.
31472
31473 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
31474
31475         * expmed.c (struct init_expmed_rtl): Change all fields but
31476         pow2 and cint from struct rtx_def to rtx.
31477         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
31478         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
31479         at the end again.
31480
31481 2014-07-06  Marek Polacek  <polacek@redhat.com>
31482
31483         PR c/6940
31484         * doc/invoke.texi: Document -Wsizeof-array-argument.
31485
31486 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
31487
31488         * wide-int.h (wide_int_storage): Change declaration from struct
31489         to class.
31490
31491 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
31492
31493         * cgraph.c (cgraph_create_indirect_edge): Update call of
31494         get_polymorphic_call_info.
31495         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
31496         (possible_polymorphic_call_targets): Add parameter call.
31497         (decl_maybe_in_construction_p): New predicate.
31498         (get_polymorphic_call_info): Add parameter call;
31499         use decl_maybe_in_construction_p.
31500         * gimple-fold.c (fold_gimple_assign): Update use of
31501         possible_polymorphic_call_targets.
31502         (gimple_fold_call): Likewise.
31503         * ipa-prop.c: Inlcude calls.h
31504         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
31505         (param_type_may_change_p): New predicate.
31506         (detect_type_change_from_memory_writes): Break out from ...
31507         (detect_type_change): ... this one; use param_type_may_change_p.
31508         (detect_type_change_ssa): Use param_type_may_change_p.
31509         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
31510
31511 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
31512
31513         PR target/49423
31514         * config/arm/arm-protos.h (arm_legitimate_address_p,
31515         arm_is_constant_pool_ref): Add prototypes.
31516         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
31517         (arm_is_constant_pool_ref) New function.
31518         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
31519         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
31520         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
31521         operand. Remove pool_range and neg_pool_range attributes.
31522         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
31523         pool_range and neg_pool_range attributes.
31524         * config/arm/constraints.md (Uh): New constraint.
31525         (Uq): Don't allow constant pool references.
31526
31527 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
31528
31529         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
31530         (move_lo_quad_internal_be_<mode>): Likewise.
31531         (move_lo_quad_<mode>): Convert to define_expand.
31532         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
31533         (aarch64_simd_move_hi_quad_be_<mode>): New.
31534         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
31535         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
31536         (aarch64_combinez_be<mode>): New.
31537         (aarch64_combine<mode>): Convert to define_expand.
31538         (aarch64_combine_internal<mode>): New.
31539         (aarch64_simd_combine<mode>): Remove bogus RTL description.
31540
31541 2014-07-04  Tom de Vries  <tom@codesourcery.com>
31542
31543         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
31544         combination of earlyclobber and read/write modifiers.
31545
31546 2014-07-04  Tom de Vries  <tom@codesourcery.com>
31547
31548         * config/aarch64/aarch64-simd.md
31549         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
31550
31551 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
31552
31553         PR target/61714
31554         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
31555
31556 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
31557
31558         PR middle-end/61654
31559         * cgraphunit.c (expand_thunk): Call free_dominance_info.
31560
31561         PR tree-optimization/61684
31562         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
31563         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
31564
31565 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31566             Kito Cheng  <kito@0xlab.org>
31567             Monk Chiang  <sh.chiang04@gmail.com>
31568
31569         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
31570         (nds32_symbol_load_store_p): Move to ...
31571         (nds32_fp_as_gp_check_available): Move to ...
31572         * config/nds32/nds32-fp-as-gp.c: ... here.
31573         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
31574         extern declaration.
31575
31576 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31577             Kito Cheng  <kito@0xlab.org>
31578             Monk Chiang  <sh.chiang04@gmail.com>
31579
31580         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
31581         (nds32_expand_store_multiple): Move to ...
31582         (nds32_expand_movmemqi): Move to ...
31583         * config/nds32/nds32-memory-manipulation.c: ... here.
31584
31585 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31586             Kito Cheng  <kito@0xlab.org>
31587             Monk Chiang  <sh.chiang04@gmail.com>
31588
31589         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
31590         (nds32_output_casesi_pc_relative): Move to ...
31591         (nds32_output_casesi): Move to ...
31592         (nds32_mem_format): Move to ...
31593         (nds32_output_16bit_store): Move to ...
31594         (nds32_output_16bit_load): Move to ...
31595         (nds32_output_32bit_store): Move to ...
31596         (nds32_output_32bit_load): Move to ...
31597         (nds32_output_32bit_load_s): Move to ...
31598         (nds32_output_stack_push): Move to ...
31599         (nds32_output_stack_pop): Move to ...
31600         * config/nds32/nds32-md-auxiliary.c: ... here.
31601
31602 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31603             Ling-Hua Tseng  <uranus@tinlans.org>
31604
31605         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
31606         the purpose of this file.
31607
31608 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31609             Kito Cheng  <kito@0xlab.org>
31610             Monk Chiang  <sh.chiang04@gmail.com>
31611
31612         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
31613         (nds32_address_cost): Move implementation to ...
31614         * config/nds32/nds32-cost.c: ... here.
31615         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
31616         (nds32_address_cost_impl): Declare.
31617
31618 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31619             Kito Cheng  <kito@0xlab.org>
31620             Monk Chiang  <sh.chiang04@gmail.com>
31621
31622         * config/nds32/nds32.c
31623         (nds32_consecutive_registers_load_store_p): Move to ...
31624         (nds32_valid_multiple_load_store): Move to ...
31625         (nds32_valid_stack_push_pop): Move to ...
31626         (nds32_can_use_bclr_p): Move to ...
31627         (nds32_can_use_bset_p): Move to ...
31628         (nds32_can_use_btgl_p): Move to ...
31629         (nds32_can_use_bitci_p): Move to ...
31630         * config/nds32/nds32-predicates.c: ... here.
31631
31632 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31633             Kito Cheng  <kito@0xlab.org>
31634             Monk Chiang  <sh.chiang04@gmail.com>
31635
31636         * config/nds32/nds32.c
31637         (nds32_expand_builtin_null_ftype_reg): Move to ...
31638         (nds32_expand_builtin_reg_ftype_imm): Move to ...
31639         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
31640         (nds32_init_builtins): Move implementation to ...
31641         (nds32_expand_builtin): Move implementation to ...
31642         * config/nds32/nds32-intrinsic.c: ... here.
31643         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
31644         (nds32_expand_builtin_impl): Declare.
31645
31646 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31647             Kito Cheng  <kito@0xlab.org>
31648             Monk Chiang  <sh.chiang04@gmail.com>
31649
31650         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
31651         (nds32_emit_section_tail_template): Move to ...
31652         (nds32_emit_isr_jmptbl_section): Move to ...
31653         (nds32_emit_isr_vector_section): Move to ...
31654         (nds32_emit_isr_reset_conten): Move to ...
31655         (nds32_check_isr_attrs_conflict): Move to ...
31656         (nds32_construct_isr_vectors_information): Move to ...
31657         (nds32_asm_file_start): Move implementation to ...
31658         (nds32_asm_file_end): Move implementation to ...
31659         * config/nds32/nds32-isr.c: ... here.
31660         * config/nds32/nds32-protos.h
31661         (nds32_check_isr_attrs_conflict): Declare.
31662         (nds32_construct_isr_vectors_information): Declare.
31663         (nds32_asm_file_start_for_isr): Declare.
31664         (nds32_asm_file_end_for_isr): Declare.
31665
31666 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31667             Kito Cheng  <kito@0xlab.org>
31668             Monk Chiang  <sh.chiang04@gmail.com>
31669
31670         * config.gcc (nds32*): Add new modules to extra_objs.
31671         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
31672         (nds32be-*-*): Likewise.
31673         * config/nds32/nds32-cost.c: New file.
31674         * config/nds32/nds32-fp-as-gp.c: New file.
31675         * config/nds32/nds32-intrinsic.c: New file.
31676         * config/nds32/nds32-isr.c: New file.
31677         * config/nds32/nds32-md-auxiliary.c: New file.
31678         * config/nds32/nds32-memory-manipulation.c: New file.
31679         * config/nds32/nds32-pipelines-auxiliary.c: New file.
31680         * config/nds32/nds32-predicates.c: New file.
31681         * config/nds32/t-nds32: New file.
31682
31683 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
31684
31685         PR tree-optimization/61682
31686         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
31687         using cases and when one of the operands is equal to 1.
31688
31689 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
31690
31691         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
31692         ashr<mode>3): Correct mode of operands[2].
31693         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
31694         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
31695         Correct mode of operands[2].  Fix split condition.
31696
31697 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
31698
31699         * arm.md (arch): Add armv6_or_vfpv3.
31700         (arch_enabled): Add test for the above.
31701         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
31702         on VFP9.
31703         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
31704
31705 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
31706
31707         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
31708         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
31709         HWI 1 and negate the unsigned value.
31710         * expmed.c (expand_sdiv_pow2): For modes wider than word always
31711         use AND instead of shift.
31712         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
31713
31714 2014-07-03  Marek Polacek  <polacek@redhat.com>
31715
31716         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
31717         (-fsanitize=float-divide-by-zero): Move to the table with
31718         -fsanitize=undefined suboptions.
31719         (-fsanitize=float-cast-overflow): Likewise.
31720
31721 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
31722
31723         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
31724         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
31725         endianness.
31726
31727 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
31728
31729         * loop-invariant.c (struct invariant): Add a new member: eqno;
31730         (find_identical_invariants): Update eqno;
31731         (create_new_invariant): Init eqno;
31732         (get_inv_cost): Compute comp_cost with eqno;
31733
31734 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
31735
31736         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
31737         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
31738         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
31739         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
31740         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
31741
31742 2014-07-02  Christian Bruel  <christian.bruel@st.com>
31743
31744         PR target/29349
31745         PR target/53513
31746         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
31747         (make_preds_opaque): Delete.
31748         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
31749         (commit_mode_sets): New function.
31750         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
31751         Process all modes at once.
31752         * basic-block.h (pre_edge_lcm_avs): Declare.
31753         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
31754         Call clear_aux_for_edges. Fix comments.
31755         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
31756         (pre_edge_rev_lcm): Idem.
31757         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
31758         parameter.
31759         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
31760         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
31761         Idem.
31762         * config/i386/i386.c (x96_emit_mode_set): Idem.
31763         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
31764         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
31765         (fpscr_toggle) Disallow from delay slot.
31766         * target.def (emit_mode_set): Add prev_mode parameter.
31767         * doc/tm.texi: Regenerate.
31768
31769 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31770
31771         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
31772         variable i.
31773
31774 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
31775
31776         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
31777         vtable_pointer_value_to_vtable): Constify.
31778         (contains_polymorphic_type_p): Declare.
31779         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
31780         vtable_pointer_value_to_vtable): Constify.
31781         (contains_polymorphic_type_p): New predicate.
31782         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
31783         polymorphic types.
31784         (ipa_set_ancestor_jf): Likewise.
31785         (detect_type_change): Return false in easy cases.
31786         (compute_complex_assign_jump_func): Require type to contain
31787         polymorphic type.
31788         (compute_known_type_jump_func): Likewise.
31789
31790 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
31791
31792         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
31793         Remove.
31794         (type_in_anonymous_namespace_p): Constify argument.
31795         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
31796         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
31797         (main_odr_variant): New function.
31798         (hash_type_name): Make static; update assert; do not ICE on
31799         non-records.
31800         (types_same_for_odr): Bring here from tree.c; simplify and remove
31801         old structural comparing code that doesn't work for templates.
31802         (odr_hasher::equal): Update assert.
31803         (add_type_duplicate): Return true when bases should be computed;
31804         replace incomplete loader by complete; do not output duplicated
31805         warnings; do not ICE on non-records; set odr_violated flag.
31806         (get_odr_type): Be ready to replace incomplete type by complete
31807         one; work on ODR variants instead of main variants; reorder item
31808         in array so bases have still smaller indexes.
31809         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
31810         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
31811
31812 2014-07-01  Cary Coutant  <ccoutant@google.com>
31813
31814         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
31815         lookup.
31816         (resolve_addr_in_expr): When replacing the rtx in a location list
31817         entry, get a new address table entry.
31818         (dwarf2out_finish): Call index_location_lists even if there are no
31819         addr_index_table entries yet.
31820
31821 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
31822
31823         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
31824         change for not being obvious.
31825
31826 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
31827
31828         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
31829         unused argument.
31830
31831 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31832
31833         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
31834         (vcagt_f64): Likewise.
31835         (vcale_f64): Likewise.
31836         (vcaled_f64): Likewise.
31837         (vcales_f32): Likewise.
31838         (vcalt_f64): Likewise.
31839         (vcaltd_f64): Likewise.
31840         (vcalts_f32): Likewise.
31841
31842 2014-07-01  Marek Polacek  <polacek@redhat.com>
31843
31844         * doc/invoke.texi: Document -Wint-conversion.
31845
31846 2014-07-01  Marek Polacek  <polacek@redhat.com>
31847
31848         PR c/58286
31849         * doc/invoke.texi: Document -Wincompatible-pointer-types.
31850
31851 2014-07-01  Martin Liska  <mliska@suse.cz>
31852
31853         IPA REF alias refactoring
31854         * cgraph.h (iterate_direct_aliases): New function.
31855         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
31856         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
31857         FOR_EACH_ALIAS added.
31858         (cgraph_for_node_and_aliases): Likewise.
31859         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
31860         * ipa-inline.c (reset_edge_caches): Likewise.
31861         (update_caller_keys): Likewise.
31862         * trans-mem.c (ipa_tm_execute): Likewise.
31863         *varpool.c (varpool_analyze_node): Likewise.
31864         (varpool_for_node_and_aliases): Likewise.
31865         * ipa-ref.h (first_alias): New function.
31866         (last_alias): Likewise.
31867         (has_aliases_p): Likewise.
31868         * ipa-ref.c (ipa_ref::remove_reference): Removal function
31869         is sensitive to IPA_REF_ALIASes.
31870         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
31871         are put at the beginning of the list.
31872         (symtab_node::iterate_direct_aliases): New function.
31873
31874 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31875
31876         Revert:
31877         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
31878         type is complete.
31879         (write_ts_type_common_tree_pointers): Do not stream fields not set
31880         for incomplete types; do not stream duplicated fields for variants;
31881         sanity check that variant and type match.
31882         (write_ts_type_non_common_tree_pointers): Likewise.
31883         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
31884         TYPE_SIZE whether type is complete.
31885         (lto_input_ts_type_common_tree_pointers): Do same changes as in
31886         write_ts_type_common_tree_pointers
31887         (lto_input_ts_type_non_common_tree_pointers): Likewise.
31888
31889 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
31890
31891         * var-tracking.c (add_stores): Return instead of asserting if old
31892         and new values for conditional store are the same.
31893
31894 2014-06-30  Richard Henderson  <rth@redhat.com>
31895
31896         PR rtl-opt/61608
31897         PR target/39284
31898         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
31899         the cfg if there were any changes.
31900         * passes.def: Revert move of peephole2 after reorder_blocks;
31901         move duplicate_computed_gotos before peephole2.
31902
31903 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
31904
31905         * except.c (emit_note_eh_region_end): New helper function.
31906         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
31907         emit EH_REGION_END note.
31908         * jump.c (cleanup_barriers): Do not split a call and its
31909         corresponding CALL_ARG_LOCATION note.
31910
31911 2014-06-30  Jeff Law  <law@redhat.com>
31912
31913         PR tree-optimization/61607
31914         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
31915         deeper into the SSA_NAME_VALUE chain.
31916
31917 2014-06-30  Marek Polacek  <polacek@redhat.com>
31918
31919         * convert.c (convert_to_integer): Don't instrument conversions if the
31920         function has no_sanitize_undefined attribute.
31921         * ubsan.c: Don't run the ubsan pass if the function has
31922         no_sanitize_undefined attribute.
31923
31924 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
31925
31926         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
31927         -fsanitize=undefined suboptions.
31928
31929 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
31930
31931         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
31932         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
31933         against bigendian and adjust indices.
31934
31935 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
31936
31937         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
31938
31939 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
31940
31941         PR target/61633
31942         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
31943         Add alternative; make early clobber.  Adjust both split patterns
31944         to use operand 0 as the working register.
31945
31946 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
31947
31948         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
31949         as ira_object_id_map might be NULL, or 1.
31950
31951 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
31952
31953         * loop-invariant.c (get_inv_cost): Handle register class.
31954         (gain_for_invariant): Check the register pressure of the inv
31955         and its overlapped register class, other than all.
31956
31957 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
31958
31959         * doc/invoke.texi (Optimize Options): Fix descriptions of
31960         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
31961
31962 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
31963
31964         * doc/extend.texi (Function Attributes): Update 'naked' attribute
31965         documentation.
31966
31967 2014-06-29  Tobias Grosser <tobias@grosser.es>
31968
31969         PR bootstrap/61650
31970         * graphite-isl-ast-to-gimple.c: Add missing guards.
31971
31972 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
31973
31974         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
31975         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
31976         * flag-types.h: Add new enum fgraphite_generator.
31977         * graphite-isl-ast-to-gimple.c: New.
31978         * graphite-isl-ast-to-gimple.h: New.
31979         * graphite.c (graphite_transform_loops): Add choice of Graphite
31980         code generator, which depends on flag_graphite_code_gen.
31981
31982 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
31983
31984         * graphite-dependences.c (subtract_commutative_associative_deps):
31985         Add NULL checking of the following variables: must_raw_no_source,
31986         may_raw_no_source, must_war_no_source, may_war_no_source,
31987         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
31988         must_war, may_war, must_waw, may_waw.
31989
31990 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
31991
31992         * graphite-clast-to-gimple.c: gloog is renamed to
31993         graphite_regenerate_ast_cloog.  gloog_error is renamed to
31994         graphite_regenerate_error.
31995         * graphite-clast-to-gimple.h: The definition of the struct
31996         bb_pbb_def is moved to graphite-htab.h.
31997         Add inclusion of the hash-table.h.
31998         * graphite-htab.h: The declaration of the function gloog is moved
31999         to graphite-clast-to-gimple.h and renamed to
32000         graphite_regenerate_ast_cloog.
32001         * graphite.c (graphite_transform_loops): gloog is renamed
32002         to graphite_regenerate_ast_cloog.
32003
32004 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32005
32006         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
32007         type is complete.
32008         (write_ts_type_common_tree_pointers): Do not stream fields not set
32009         for incomplete types; do not stream duplicated fields for variants;
32010         sanity check that variant and type match.
32011         (write_ts_type_non_common_tree_pointers): Likewise.
32012         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
32013         TYPE_SIZE whether type is complete.
32014         (lto_input_ts_type_common_tree_pointers): Do same changes as in
32015         write_ts_type_common_tree_pointers
32016         (lto_input_ts_type_non_common_tree_pointers): Likewise.
32017
32018 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32019
32020         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
32021
32022 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32023
32024         * tree-inline.c (remap_type_1): Do not duplicate fields
32025         that are shared in between type and its main variant.
32026
32027 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32028
32029         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
32030         of the type.
32031         (ipa_set_ancestor_jf) Likewise.
32032         (check_stmt_for_type_change): Check that we work on main variant.
32033         (detect_type_change): Look into main variant.
32034         (compute_known_type_jump_func): Check that main variant has BINFO.
32035
32036 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32037
32038         * ipa-devirt.c (set_type_binfo): New function.
32039         (add_type_duplicate): Use it.
32040         (get_odr_type): Sanity check that binfos points to main variants.
32041         (get_class_context): Be sure the context's outer_type is main variant.
32042         (contains_type_p): Walk main variant.
32043         (get_polymorphic_call_info_for_decl): Set outer_type to be
32044         main variant.
32045         (get_polymorphic_call_info): Likewise.
32046         (possible_polymorphic_call_targets): Sanity check that we operate
32047         on main variant.
32048
32049 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32050
32051         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
32052
32053 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32054
32055         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
32056         accidental change due to wide-int branch merge.
32057
32058 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32059
32060         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
32061         compressed debug support.
32062         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
32063         * configure: Regenerate.
32064         * config.in: Regenerate.
32065         * common.opt (compressed_debug_sections): New enum.
32066         (gz, gz=): New options.
32067         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
32068         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
32069         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
32070         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
32071         LINK_COMPRESS_DEBUG_SPEC.
32072         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
32073         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
32074         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
32075         (Debugging Options): Document -gz[=type].
32076
32077 2014-06-27  Martin Jambor  <mjambor@suse.cz>
32078
32079         PR ipa/61160
32080         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
32081         args_to_skip, use those from node instead.  Copy args_to_skip and
32082         combined_args_to_skip from node to the new thunk.
32083         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
32084         (cgraph_create_virtual_clone): Moved computation of
32085         combined_args_to_skip...
32086         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
32087
32088 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
32089
32090         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
32091         redundant diagnostic machinary.
32092
32093 2014-06-27  Richard Biener  <rguenther@suse.de>
32094
32095         * tree-ssa-math-opts.c (bswap_replace): Fix
32096         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
32097
32098 2014-06-27  Martin Liska  <mliska@suse.cz>
32099
32100         * gimple.h (gimple_location_safe): New function introduced.
32101         * cgraphunit.c (walk_polymorphic_call_targets): Usage
32102         of gimple_location_safe replaces gimple_location.
32103         (gimple_fold_call): Likewise.
32104         * ipa-devirt.c (ipa_devirt): Likewise.
32105         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
32106         * ipa.c (walk_polymorphic_call_targets): Likewise.
32107         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
32108
32109 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
32110
32111         PR tree-optimization/57233
32112         PR tree-optimization/61299
32113         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
32114         functions.
32115         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
32116         would be lowered to scalar shifts, check if corresponding
32117         shifts and vector BIT_IOR_EXPR are supported and don't lower
32118         or lower just to narrower vector type in that case.
32119         * expmed.c (expand_shift_1): Fix up handling of vector
32120         shifts and rotates.
32121
32122 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
32123
32124         PR target/61586
32125         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
32126
32127 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
32128
32129         * doc/invoke.texi (-fsemantic-interposition): Document.
32130         * common.opt (fsemantic-interposition): New flag.
32131         * varasm.c (decl_replaceable_p): Use it.
32132
32133 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32134
32135         PR target/61542
32136         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
32137         extraction other than index 3.
32138
32139 2014-06-26  Teresa Johnson  <tejohnson@google.com>
32140
32141         * doc/invoke.texi: Fix typo.
32142         * dumpfile.c: Add support for documented -fdump-* options
32143         optimized/missed/note/optall.
32144
32145 2014-06-26  Martin Jambor  <mjambor@suse.cz>
32146
32147         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
32148         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
32149         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
32150         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
32151         * opts.c (default_options_optimization): Set
32152         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
32153         * doc/invoke.texi (allow-load-data-races)
32154         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
32155         (allow-store-data-races): Document the new default.
32156
32157 2014-06-26  Martin Jambor  <mjambor@suse.cz>
32158
32159         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
32160         renamed to ipa_impossible_devirt_target.  Fix typo.
32161         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
32162         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
32163         ipa_impossible_devirt_target.
32164
32165 2014-06-26  Richard Biener  <rguenther@suse.de>
32166
32167         PR tree-optimization/61607
32168         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
32169         explaining why we restrict copies on loop depth.
32170         * tree-ssa-dom.c (cprop_operand): Remove restriction on
32171         on loop depth.
32172         (record_equivalences_from_phis): Instead add it here.
32173
32174 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
32175
32176         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
32177         (LTO_WRAPPER_OBJS): New variable.
32178         (lto-wrapper$(exeext)): Use it.
32179         * collect2.c: Include "collect-utils.h".
32180         (verbose, debug): Remove variables.
32181         (at_file_supplied): No longer static.
32182         (tool_name): New variable.
32183         (do_wait, fork_execute, maybe_unlink): Don't declare.
32184         (tool_cleanup): No longer static.
32185         (notice): Remove function.
32186         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
32187         fork_execute calls.
32188         (collect_wait, do_wait, collect_execute): Remove functions.
32189         (maybe_unlink): No longer static.
32190         * collect2.h (verbose, debug): Don't declare.
32191         (at_file_supplied): Declare.
32192         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
32193         changed.
32194         (collect_execute): Replace with implementation from collect2, plus a
32195         new arg use_atfile.  All callers changed.
32196         (collect_wait): Replace with implementation from collect2.
32197         (maybe_unlink_file): Remove function.
32198         (fork_execute): Replace with implementation from collect2, plus a
32199         new arg use_atfile.  All callers changed.
32200         (do_wait): Add call to utils_cleanup to the error path.
32201         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
32202         (tool_cleanup): Adjust declarations.
32203         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
32204         * tlink.c: Include "collect-utils.h".
32205         (tlink_execute): New arg use_atfile.  All callers changed.
32206         (tlink_init, tlink_execute): Remove declarations.
32207
32208         * collect-utils.c (save_temps): New variable.
32209         (do_wait): Use it instead of debug.  Use fatal_error.
32210         * collect-utils.h (save_temps): Declare.
32211         * collect2.c (verbose): Rename from vflag.  All uses changed.
32212         (tool_cleanup): New function, copied from collect_atexit.
32213         (collect_atexit, handler): Just call it.
32214         * collect2.h (verbose): Declaration renamed from vflag.
32215         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
32216         debug.
32217
32218         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
32219         (lto-wrapper$(exeext)): Link with collect-utils.o.
32220         * collect-utils.c: New file.
32221         * collect-utils.h: New file.
32222         * lto-wrapper.c: Include "collect-utils.h".
32223         (args_name): Delete variable.
32224         (tool_name): New variable.
32225         (tool_cleanup): New function.
32226         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
32227         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
32228         (fork_execute): Remove functions.
32229
32230 2014-06-26  Nick Clifton  <nickc@redhat.com>
32231
32232         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
32233
32234         * doc/extend.texi (Function Attributes): Fix typo in description
32235         of RX vector attribute.
32236
32237 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
32238
32239         * config.gcc (supported_defaults): Error when passing either
32240         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
32241
32242 2014-06-26  Richard Biener  <rguenther@suse.de>
32243
32244         * tree-ssa-dom.c (cprop_operand): Remove restriction on
32245         propagating volatile pointers.
32246
32247 2014-06-26  Richard Biener  <rguenther@suse.de>
32248
32249         PR tree-optimization/61607
32250         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
32251         loop if we redirected its latch edge.
32252         (thread_block_1): Do not cancel loops prematurely.
32253
32254 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
32255
32256         * toplev.c (backend_init_target): Move init_emit_regs and
32257         init_regs to...
32258         (backend_init) ... here; skip ira_init_once and backend_init_target.
32259         (target_reinit) ... and here; clear
32260         this_target_rtl->lang_dependent_initialized.
32261         (lang_dependent_init_target): Clear
32262         this_target_rtl->lang_dependent_initialized;
32263         break out rtl initialization to ...
32264         (initialize_rtl): ... here; call also backend_init_target
32265         and ira_init_once.
32266         * toplev.h (initialize_rtl): New function.
32267         * function.c: Include toplev.h
32268         (init_function_start): Call initialize_rtl.
32269         * rtl.h (target_rtl): Add target_specific_initialized,
32270         lang_dependent_initialized.
32271
32272 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
32273             Jakub Jelinek  <jakub@redhat.com>
32274
32275         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
32276
32277 2014-06-25  Tom de Vries  <tom@codesourcery.com>
32278
32279         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
32280
32281 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32282
32283         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
32284         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
32285         Issue a strict overflow warning if appropriate.
32286
32287 2014-06-25  Martin Liska  <mliska@suse.cz>
32288
32289         IPA REF refactoring
32290         * Makefile.in: Removed header file (ipa-ref-inline.h).
32291         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
32292         called.
32293         (cgraph_speculative_call_info): Likewise.
32294         (cgraph_for_node_thunks_and_aliases): Likewise.
32295         (cgraph_for_node_and_aliases): Likewise.
32296         (verify_cgraph_node): Likewise.
32297         * cgraph.h: Batch of IPA REF functions become member functions of
32298         symtab_node: add_reference, maybe_add_reference, clone_references,
32299         clone_referring, clone_reference, find_reference,
32300         remove_stmt_references, remove_all_references,
32301         remove_all_referring, dump_references, dump_referring,
32302         has_alias_p, iterate_reference, iterate_referring.
32303         * cgraphbuild.c (record_reference): New IPA REF function used.
32304         (record_type_list): Likewise.
32305         (record_eh_tables): Likewise.
32306         (mark_address): Likewise.
32307         (mark_load): Likewise.
32308         (mark_store): Likewise.
32309         (pass_build_cgraph_edges): Likewise.
32310         (rebuild_cgraph_edge): Likewise.
32311         (cgraph_rebuild_references): Likewise.
32312         (pass_remove_cgraph_callee_edges): Likewise.
32313         * cgraphclones.c (cgraph_clone_node): Likewise.
32314         (cgraph_create_virtual_clone): Likewise.
32315         (cgraph_materialize_clone): Likewise.
32316         (cgraph_materialize_all_clones): Likewise.
32317         * cgraphunit.c (cgraph_reset_node): Likewise.
32318         (cgraph_reset_node): Likewise.
32319         (analyze_function): Likewise.
32320         (assemble_thunks_and_aliases): Likewise.
32321         (expand_function): Likewise.
32322         * ipa-comdats.c (propagate_comdat_group): Likewise.
32323         (enqueue_references): Likewise.
32324         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
32325         (create_specialized_node): Likewise.
32326         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
32327         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
32328         * ipa-inline.c (reset_edge_caches): Likewise.
32329         (update_caller_keys): Likewise.
32330         (execute): Likewise.
32331         * ipa-prop.c (remove_described_reference): Likewise.
32332         (propagate_controlled_uses): Likewise.
32333         (ipa_edge_duplication_hook): Likewise.
32334         (ipa_modify_call_arguments): Likewise.
32335         * ipa-pure-const.c (propagate_pure_const): Likewise.
32336         * ipa-ref-inline.h: Header file removed, functions moved
32337         to symtab_node class.
32338         * ipa-ref.c (remove_reference): New class member function.
32339         (cannot_lead_to_return): New class member function.
32340         (referring_ref_list): Likewise.
32341         (referred_ref_list): Likewise.
32342         Rest of functions moved to symtab_node class.
32343         * ipa-ref.h: New member functions remove_reference,
32344         cannot_lead_to_return, referring_ref_list, referred_ref_list added
32345         to ipa_ref class.
32346         ipa_ref_list class has new member functions: first_reference,
32347         first_referring, clear, nreferences.
32348         * ipa-reference.c (analyze_function): New IPA REF function used.
32349         (write_node_summary_p): Likewise.
32350         (ipa_reference_write_optimization_summary): Likewise.
32351         * ipa-split.c (split_function): Likewise.
32352         * ipa-utils.c (ipa_reverse_postorder): Likewise.
32353         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
32354         (function_and_variable_visibility): Likewise.
32355         * ipa.c (has_addr_references_p): Likewise.
32356         (process_references): Argument type changed.
32357         (symtab_remove_unreachable_nodes): New IPA REF function used.
32358         (process_references): Likewise.
32359         (set_writeonly_bit): Likewise.
32360         * lto-cgraph.c: Implementation of new symtab_node member functions
32361         that uses new IPA REF functions.
32362         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
32363         function used.
32364         * lto-streamer-out.c (output_symbol_p): Likewise.
32365         * lto-streamer.h (referenced_from_this_partition_p): Argument type
32366         changed.
32367         * symtab.c: Implementation of new IPA REF API.
32368         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
32369         (ipa_tm_create_version): Likewise.
32370         (ipa_tm_execute): Likewise.
32371         * tree-emutls.c (gen_emutls_addr): Likewise.
32372         * tree-inline.c (copy_bb): Likewise.
32373         (delete_unreachable_blocks_update_callgraph): Likewise.
32374         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
32375         (varpool_for_node_and_aliases): Likewise.
32376
32377 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
32378
32379         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
32380
32381 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
32382
32383         PR bootstrap/61598
32384         * fold-const.c (fold_checksum_tree): Use a hash_table of const
32385         tree_node * instead of tree_node *.
32386         (fold): Adjust.
32387         (print_fold_checksum): Likewise.
32388         (fold_check_failed): Likewise.
32389         (debug_fold_checksum): Likewise.
32390         (fold_build1_stat_loc): Likewise.
32391         (fold_build2_stat_loc): Likewise.
32392         (fold_build3_stat_loc): Likewise.
32393         (fold_build_call_array_loc): Likewise.
32394
32395 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
32396
32397         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
32398         implementation with call to...
32399         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
32400         function.
32401         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
32402         Declare.
32403
32404 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
32405
32406         PR tree-optimization/57742
32407         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
32408         after replacing the statement.
32409
32410 2014-06-25  Nick Clifton  <nickc@redhat.com>
32411
32412         * config/v850/v850.c (GHS_default_section_names): Change to const
32413         char * type.
32414         (GHS_current_section_names): Likewise.
32415         (v850_insert_attributes): Do not build strings, just assign the
32416         names directly.  Change the type of 'chosen_section' to const
32417         char*.
32418         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
32419         directly to the array entry.
32420         * config/v850/v850.h (GHS_default_section_names): Change to const
32421         char * type.
32422         (GHS_current_section_names): Likewise.
32423
32424 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
32425
32426         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
32427         (LANG_HOOKS_DECLS): Add it.
32428         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
32429         has correct type.
32430         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
32431         * langhooks.h (struct lang_hooks_for_decls): Add
32432         omp_clause_linear_ctor hook.
32433         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
32434         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
32435         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
32436         combined simd loop use omp_clause_linear_ctor hook.
32437
32438 2014-06-24  Cong Hou  <congh@google.com>
32439
32440         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
32441         pattern recognition.
32442         (type_conversion_p): PROMOTION is true if it's a type promotion
32443         conversion, and false otherwise.  Return true if the given expression
32444         is a type conversion one.
32445         * tree-vectorizer.h: Adjust the number of patterns.
32446         * tree.def: Add SAD_EXPR.
32447         * optabs.def: Add sad_optab.
32448         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
32449         * expr.c (expand_expr_real_2): Likewise.
32450         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
32451         * gimple.c (get_gimple_rhs_num_ops): Likewise.
32452         * optabs.c (optab_for_tree_code): Likewise.
32453         * tree-cfg.c (estimate_operator_cost): Likewise.
32454         * tree-ssa-operands.c (get_expr_operands): Likewise.
32455         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
32456         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
32457         * doc/generic.texi: Add document for SAD_EXPR.
32458         * doc/md.texi: Add document for ssad and usad.
32459
32460 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32461
32462         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
32463         qualification in cast.
32464
32465 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
32466
32467         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
32468         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
32469         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
32470         (tree_function_decl): ... here.
32471         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
32472         streaming of vindex to ...
32473         (write_ts_function_decl_tree_pointers): ... here.
32474         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
32475         Do not stream DECL_VINDEX.
32476         (lto_input_ts_function_decl_tree_pointers): Stream it here.
32477
32478 2014-06-24  Catherine Moore  <clm@codesourcery.com>
32479             Sandra Loosemore  <sandra@codesourcery.com>
32480
32481         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
32482         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
32483         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
32484
32485 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
32486
32487         * doc/invoke.texi (Warning Options): Remove duplicated
32488         -Wmaybe-uninitialized.
32489
32490 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
32491
32492         PR tree-optimization/57742
32493         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
32494         (handle_builtin_malloc, handle_builtin_memset): New functions.
32495         (strlen_optimize_stmt): Call them.
32496         * passes.def: Move strlen after loop+dom but before vrp.
32497
32498 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
32499
32500         PR target/61570
32501         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
32502         model family 6 CPU with has_longmode never use a CPU without
32503         64-bit support.
32504
32505 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
32506
32507         PR target/61570
32508         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
32509         the last change.
32510
32511 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32512
32513         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
32514         * dominance.c (iterate_fix_dominators): Use hash_map instead of
32515         pointer_map.
32516         * hash-map.h: New file.
32517         * ipa-comdats.c: Use hash_map instead of pointer_map.
32518         * ipa.c: Likewise.
32519         * lto-section-out.c: Adjust.
32520         * lto-streamer.h: Replace pointer_map with hash_map.
32521         * symtab.c (verify_symtab): Likewise.
32522         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
32523         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
32524         * tree-streamer.h: Likewise.
32525         * tree-streamer.c: Adjust.
32526         * pointer-set.h: Remove pointer_map.
32527
32528 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32529
32530         * hash-table.h: Add a template arg to choose between storing values
32531         and storing pointers to values, and then provide partial
32532         specializations for both.
32533         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
32534         should store, not the type values should point to.
32535         * tree-into-ssa.c (var_info_hasher): Likewise.
32536         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
32537         * tree-complex.c: Adjust.
32538         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
32539         table instead of int_tree_map *.
32540         * tree-parloops.c: Adjust.
32541         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
32542         type is being stored.
32543         * tree-vectorizer.c: Adjust.
32544
32545 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32546
32547         * hash-table.h: Remove a layer of indirection from hash_table so that
32548         it contains the hash table's data instead of a pointer to the data.
32549         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
32550         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
32551         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
32552         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
32553         fold-const.c, gcse.c, ggc-common.c,
32554         gimple-ssa-strength-reduction.c, gimplify.c,
32555         graphite-clast-to-gimple.c, graphite-dependences.c,
32556         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
32557         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
32558         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
32559         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
32560         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
32561         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
32562         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
32563         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
32564         tree-ssa-live.c, tree-ssa-loop-im.c,
32565         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
32566         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
32567         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
32568         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
32569         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
32570         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
32571         vtable-verify.c, vtable-verify.h: Adjust.
32572
32573 2014-06-24  Richard Biener  <rguenther@suse.de>
32574
32575         PR tree-optimization/61572
32576         * tree-ssa-sink.c (statement_sink_location): Do not sink
32577         loads from hard registers.
32578
32579 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
32580
32581         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
32582         not mentioned in clauses use private clause if the iterator is
32583         declared in #pragma omp for simd, and when adding lastprivate
32584         instead, add it to the outer #pragma omp for too.  Diagnose
32585         if the variable is private in outer context.  For simd collapse > 1
32586         loops, replace all iterators with temporaries.
32587         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
32588         same even in collapse > 1 loops.
32589
32590         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
32591         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
32592         non-NULL.
32593         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
32594         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
32595         non-NULL.
32596         (gimplify_adjust_omp_clauses): Likewise.
32597         * omp-low.c (lower_rec_simd_input_clauses,
32598         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
32599         safelen the same as safelen(1).
32600         * tree-nested.c (convert_nonlocal_omp_clauses,
32601         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
32602         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
32603         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
32604         Fixup handling of GIMPLE_OMP_TARGET.
32605         (convert_tramp_reference_stmt, convert_gimple_call): Handle
32606         GIMPLE_OMP_TARGET.
32607
32608 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
32609
32610         PR tree-optimization/61554
32611         * tree-ssa-propagate.c: Include "bitmap.h".
32612         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
32613         properly update constructor/destructor.
32614         (substitute_and_fold_dom_walker::before_dom_children):
32615         Remove call to gimple_purge_dead_eh_edges, add bb->index to
32616         need_eh_cleaup instead.
32617         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
32618         need_eh_cleanup.
32619
32620 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
32621
32622         * varpool.c (dump_varpool_node): Dump used_by_single_function.
32623         * tree-pass.h (make_pass_ipa_single_use): New pass.
32624         * cgraph.h (used_by_single_function): New flag.
32625         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
32626         Stream it.
32627         * passes.def (pass_ipa_single_use): Scedule.
32628         * ipa.c (BOTTOM): New macro.
32629         (meet): New function
32630         (propagate_single_user): New function.
32631         (ipa_single_use): New function.
32632         (pass_data_ipa_single_use): New pass.
32633         (pass_ipa_single_use): New pass.
32634         (pass_ipa_single_use::gate): New gate.
32635         (make_pass_ipa_single_use): New function.
32636
32637 2014-06-23  Kai Tietz  <ktietz@redhat.com>
32638
32639         PR target/39284
32640         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
32641         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
32642
32643 2014-06-23  Richard Biener  <rguenther@suse.de>
32644
32645         * tree-ssa-loop.c (gate_loop): New function.
32646         (pass_tree_loop::gate): Call it.
32647         (pass_data_tree_no_loop, pass_tree_no_loop,
32648         make_pass_tree_no_loop): New.
32649         * tree-vectorizer.c: Include tree-scalar-evolution.c
32650         (pass_slp_vectorize::execute): Initialize loops and SCEV if
32651         required.
32652         (pass_slp_vectorize::clone): New method.
32653         * timevar.def (TV_TREE_NOLOOP): New.
32654         * tree-pass.h (make_pass_tree_no_loop): Declare.
32655         * passes.def (pass_tree_no_loop): New pass group with
32656         SLP vectorizer.
32657
32658 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
32659
32660         PR target/61570
32661         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
32662         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
32663
32664 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
32665
32666         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
32667         "yes" where needed.
32668
32669 2014-06-23  Alan Modra  <amodra@gmail.com>
32670
32671         PR bootstrap/61583
32672         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
32673         to zero on debug statements.
32674
32675 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
32676
32677         PR target/60825
32678         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
32679         Ignore third operand if present by marking qualifier_internal.
32680
32681         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
32682
32683         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
32684         vector extension.
32685         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
32686         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
32687         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
32688         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
32689         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
32690         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
32691         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
32692         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
32693         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
32694         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
32695         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
32696         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
32697         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
32698         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
32699         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
32700         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
32701         logic in GCC vector extensions
32702
32703         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
32704         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
32705         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
32706         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
32707         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
32708         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
32709         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
32710         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
32711         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
32712         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
32713
32714         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
32715
32716         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
32717         extensions.
32718
32719         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
32720         (vget_low_s64): Use __GET_LOW macro.
32721         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
32722         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
32723         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
32724         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
32725         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
32726
32727         (vcombine_s64): Use GCC vector extensions; remove cast.
32728         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
32729         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
32730         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
32731         Fix type signature; remove cast.
32732
32733 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
32734
32735         PR target/60825
32736         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
32737         V1DFmode.
32738         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
32739         add V1DFmode
32740         (BUILTIN_VD1): New.
32741         (BUILTIN_VD_RE): Remove.
32742         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
32743         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
32744         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
32745         variant but not df.
32746         (vreinterpretv1df*, vreinterpret*v1df): New.
32747         (vreinterpretdf*, vreinterpret*df): Remove.
32748         * config/aarch64/aarch64-simd.md (aarch64_create,
32749         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
32750         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
32751         (VD1): New.
32752         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
32753         (vcreate_f64): Remove cast, use v1df builtin.
32754         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
32755         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
32756         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
32757         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
32758         vmov_n_f64, vst1_f64): Use gcc vector extensions.
32759         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
32760         add range check using __builtin_aarch64_im_lane_boundsi.
32761         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
32762         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
32763         type signature, use gcc vector extensions.
32764         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
32765         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
32766         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
32767         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
32768         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
32769         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
32770         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
32771         vreinterpret_u64_f64): Use v1df builtin not df.
32772
32773 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
32774
32775         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
32776         vector registers.
32777
32778 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
32779
32780         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
32781         priority directly.
32782
32783 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
32784
32785         * loop-invariant.c (pre_check_invariant_p): New function.
32786         (find_invariant_insn): Call pre_check_invariant_p.
32787
32788 2014-06-22  Richard Henderson  <rth@redhat.com>
32789
32790         PR target/61565
32791         * compare-elim.c (struct comparison): Add eh_note.
32792         (find_comparison_dom_walker::before_dom_children): Don't eliminate
32793         a redundant comparison in a different EH region.  Purge EH edges if
32794         necessary.
32795
32796 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32797
32798         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
32799         (var_shift): Use it.
32800         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
32801         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
32802         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
32803         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
32804         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
32805         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
32806         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
32807         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
32808         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
32809         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
32810         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
32811         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
32812         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
32813         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
32814         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
32815         *rotldi3_internal15be): Use the new attribute.  Merge register and
32816         integer alternatives.
32817
32818 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32819
32820         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
32821         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
32822         split, *ashrdi3_internal3 and split): Delete, merge into...
32823         (ashr<mode>3): New expander.
32824         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
32825         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
32826
32827 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32828
32829         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
32830         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
32831         *rotldi3_internal3 and split): Delete, merge into...
32832         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
32833         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
32834         Use "rotlw" extended mnemonic.
32835
32836 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32837
32838         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
32839         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
32840         and split, *ashldi3_internal3 and split): Delete, merge into...
32841         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
32842         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
32843
32844 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32845
32846         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
32847         (lshrsi3, two anonymous define_insns and define_splits,
32848         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
32849         *lshrdi3_internal3 and split): Delete, merge into...
32850         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
32851         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
32852
32853 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32854
32855         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
32856         Remove "O" alternative.
32857
32858 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
32859
32860         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
32861         (mips_move_from_gpr_cost): Likewise.
32862         (mips_register_move_cost): Update accordingly.
32863         (mips_secondary_reload_class): Remove name of in_p.
32864
32865 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
32866
32867         PR target/61503
32868         * config/i386/i386.md (x86_64_shrd, x86_shrd,
32869         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
32870
32871 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
32872
32873         * config/nios2/nios2.c: Include "builtins.h".
32874
32875 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
32876
32877         * cgraph.h (tls_model_names): New variable.
32878         * print-tree.c (print_node): Simplify.
32879         * varpool.c (tls_model_names): New variable.
32880         (dump_varpool_node): Output tls model.
32881
32882 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
32883
32884         * ipa-visibility.c (function_and_variable_visibility): Disable
32885         temporarily local aliases for some targets.
32886
32887 2014-06-20  Marek Polacek  <polacek@redhat.com>
32888
32889         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
32890         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
32891         into SANITIZE_UNDEFINED.
32892         * doc/invoke.texi: Describe -fsanitize=bounds.
32893         * gimplify.c (gimplify_call_expr): Add gimplification of internal
32894         functions created in the FEs.
32895         * internal-fn.c: Move "internal-fn.h" after "tree.h".
32896         (expand_UBSAN_BOUNDS): New function.
32897         * internal-fn.def (UBSAN_BOUNDS): New internal function.
32898         * internal-fn.h: Don't define internal functions here.
32899         * opts.c (common_handle_option): Add -fsanitize=bounds.
32900         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
32901         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
32902         * tree-core.h: Define internal functions here.
32903         (struct tree_base): Add ifn field.
32904         * tree-pretty-print.c: Include "internal-fn.h".
32905         (dump_generic_node): Handle functions without CALL_EXPR_FN.
32906         * tree.c (get_callee_fndecl): Likewise.
32907         (build_call_expr_internal_loc): New function.
32908         * tree.def (CALL_EXPR): Update description.
32909         * tree.h (CALL_EXPR_IFN): Define.
32910         (build_call_expr_internal_loc): Declare.
32911         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
32912         types.
32913         (ubsan_type_descriptor): Change bool parameter to enum
32914         ubsan_print_style.  Adjust the code.  Add handling of
32915         UBSAN_PRINT_ARRAY.
32916         (ubsan_expand_bounds_ifn): New function.
32917         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
32918         (ubsan_build_overflow_builtin): Likewise.
32919         (instrument_bool_enum_load): Likewise.
32920         (ubsan_instrument_float_cast): Likewise.
32921         * ubsan.h (enum ubsan_print_style): New enum.
32922         (ubsan_expand_bounds_ifn): Declare.
32923         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
32924
32925 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
32926
32927         * config/rs6000/rs6000.md: Append `DONE' to preparation
32928         statements of `bswap' pattern splitters.
32929
32930 2014-06-20  Tom de Vries  <tom@codesourcery.com>
32931
32932         * target.def (call_fusage_contains_non_callee_clobbers): Update
32933         definition.
32934         * doc/tm.texi: Regenerate.
32935
32936 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
32937             Max Ostapenko  <m.ostapenko@partner.samsung.com>
32938
32939         PR sanitizer/61547
32940         * asan.c (instrument_strlen_call): Fixed instrumentation of
32941         trailing byte.
32942
32943 2014-06-20  Martin Jambor  <mjambor@suse.cz>
32944
32945         PR ipa/61540
32946         * ipa-prop.c (impossible_devirt_target): New function.
32947         (try_make_edge_direct_virtual_call): Use it, also instead of
32948         asserting.
32949
32950 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
32951             Max Ostapenko  <m.ostapenko@partner.samsung.com>
32952
32953         PR sanitizer/61530
32954         * asan.c (build_check_stmt): Add condition.
32955
32956 2014-06-20  Martin Jambor  <mjambor@suse.cz>
32957
32958         PR ipa/61211
32959         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
32960         expanded clones.
32961
32962 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32963
32964         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
32965         Update comments.
32966         (VCONQ): Make comment more helpful.
32967         (VCON): Delete.
32968         * config/aarch64/aarch64-simd.md
32969         (aarch64_sqdmulh_lane<mode>):
32970         Use VCOND for operands 2.  Update lane checking and flipping logic.
32971         (aarch64_sqrdmulh_lane<mode>): Likewise.
32972         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
32973         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
32974         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
32975         attribute of operand 3 to VCOND.
32976         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
32977         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
32978         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
32979         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
32980         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
32981         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
32982         define_insn.
32983         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
32984         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
32985         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
32986         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
32987         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
32988         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
32989         operand to VCOND.  Update lane flipping and bounds checking logic.
32990         (aarch64_sqdmlal2_lane<mode>): Likewise.
32991         (aarch64_sqdmlsl_lane<mode>): Likewise.
32992         (aarch64_sqdmull_lane<mode>): Likewise.
32993         (aarch64_sqdmull2_lane<mode>): Likewise.
32994         (aarch64_sqdmlal_laneq<mode>):
32995         Replace VCON usage with VCONQ.
32996         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
32997         (aarch64_sqdmlal2_laneq<mode>): Emit
32998         aarch64_sqdmlal2_laneq<mode>_internal insn.
32999         Replace VCON with VCONQ.
33000         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
33001         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
33002         (aarch64_sqdmull_laneq<mode>): Emit
33003         aarch64_sqdmull_laneq<mode>_internal insn.
33004         Replace VCON with VCONQ.
33005         (aarch64_sqdmull2_laneq<mode>): Emit
33006         aarch64_sqdmull2_laneq<mode>_internal insn.
33007         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
33008         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
33009         of 3rd argument to int16x4_t.
33010         (vqdmlalh_lane_s16): Likewise.
33011         (vqdmlslh_lane_s16): Likewise.
33012         (vqdmull_high_lane_s16): Likewise.
33013         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
33014         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
33015         (vqdmlsl_lane_s16): Likewise.
33016         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
33017         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
33018         (vqdmlals_lane_s32): Likewise.
33019         (vqdmlsls_lane_s32): Likewise.
33020         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
33021         (vqdmulls_lane_s32): Likewise.
33022         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
33023         (vqdmlsl_lane_s32): Likewise.
33024         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
33025         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
33026         (vqrdmulhh_lane_s16): Likewise.
33027         (vqdmlsl_high_lane_s16): Likewise.
33028         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
33029         (vqdmlsl_high_lane_s32): Likewise.
33030         (vqrdmulhs_lane_s32): Likewise.
33031
33032 2014-06-20  Tom de Vries  <tom@codesourcery.com>
33033
33034         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
33035         get_call_reg_set_usage.
33036
33037 2014-06-20  Tom de Vries  <tom@codesourcery.com>
33038
33039         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
33040         it contains all call_used_regs.
33041
33042 2014-06-20  Tom de Vries  <tom@codesourcery.com>
33043
33044         * final.c (collect_fn_hard_reg_usage): Add and use variable
33045         function_used_regs.
33046
33047 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
33048
33049         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
33050         (set_init_priority, get_init_priority, set_fini_priority,
33051         get_fini_priority): New methods.
33052         * tree.c (init_priority_for_decl): Remove.
33053         (init_ttree): Do not initialize init priority.
33054         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
33055         (decl_priority_info): Remove.
33056         (decl_init_priority_insert): Rewrite.
33057         (decl_fini_priority_insert): Rewrite.
33058         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
33059         tree_priority_map_marked_p): Remove.
33060         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
33061         * lto-streamer-out.c (hash_tree): Do not hash priorities.
33062         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
33063         not output priorities.
33064         (pack_ts_function_decl_value_fields): Likewise.
33065         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
33066         not input priorities.
33067         (unpack_ts_function_decl_value_fields): Likewise.
33068         * symtab.c (symbol_priority_map): Declare.
33069         (init_priority_hash): Declare.
33070         (symtab_unregister_node): Unregister from priority hash, too.
33071         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
33072         New methods.
33073         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
33074         (symbol_priority_info): New function.
33075         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
33076         New methods.
33077         * tree-core.h (tree_priority_map): Remove.
33078
33079 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
33080
33081         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
33082         0xff to uint64_t before shifting it up.
33083
33084 2014-06-20  Julian Brown  <julian@codesourcery.com>
33085             Chung-Lin Tang  <cltang@codesourcery.com>
33086
33087         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
33088         TARGET_THUMB1_ONLY. Add comments.
33089
33090 2014-06-19  Tom de Vries  <tom@codesourcery.com>
33091
33092         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
33093         return type to void.
33094         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
33095
33096 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
33097
33098         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
33099         as "move", from depends_on.
33100
33101 2014-06-19  Terry Guo  <terry.guo@arm.com>
33102
33103         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
33104         stage.
33105
33106 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
33107
33108         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
33109         Remove cr5.
33110         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
33111
33112 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
33113
33114         PR target/61550
33115         * config/sh/sh.c (prepare_move_operands): Don't process TLS
33116         addresses here if reload in progress or completed.
33117
33118 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
33119
33120         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
33121         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
33122         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
33123         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
33124         (mips_register_priority): New function that implements the target
33125         hook TARGET_REGISTER_PRIORITY.
33126         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
33127         (mips_lra_p): Likewise for TARGET_LRA_P.
33128         (TARGET_REGISTER_PRIORITY): Define macro.
33129         (TARGET_SPILL_CLASS): Likewise.
33130         (TARGET_LRA_P): Likewise.
33131         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
33132         classes.
33133         (REG_CLASS_NAMES): Likewise.
33134         (REG_CLASS_CONTENTS): Likewise.
33135         (BASE_REG_CLASS): Use M16_SP_REGS.
33136         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
33137         New set attribute to enable alternatives depending on the register
33138         allocator used.
33139         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
33140         (*lea64): Disable pattern for MIPS16.
33141         * config/mips/mips.opt (mlra): New option.
33142
33143 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
33144
33145         * lra-constraints.c (base_to_reg): New function.
33146         (process_address): Use new function.
33147
33148 2014-06-18  Tom de Vries  <tom@codesourcery.com>
33149
33150         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
33151         * config/aarch64/aarch64.c
33152         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
33153         (aarch64_emit_call_insn): New function.
33154         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
33155         of emit_call_insn.
33156         * config/aarch64/aarch64.md (define_expand "call_internal")
33157         (define_expand "call_value_internal", define_expand "sibcall_internal")
33158         (define_expand "sibcall_value_internal"): New.
33159         (define_expand "call", define_expand "call_value")
33160         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
33161         expand variant and aarch64_emit_call_insn.
33162
33163 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
33164             Tom de Vries  <tom@codesourcery.com>
33165
33166         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
33167         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
33168         Redefine to true.
33169         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
33170         clobbers to CALL_INSN_FUNCTION_USAGE.
33171         (define_expand "sibcall_internal")
33172         (define_expand "sibcall_value_internal"): New.
33173         (define_expand "call", define_expand "call_value"): Add argument to
33174         arm_emit_call_insn.
33175         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
33176         (define_expand "sibcall_value"): Use sibcall_value_internal and
33177         arm_emit_call_insn.
33178
33179 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33180
33181         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
33182
33183 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33184
33185         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
33186         __udivmoddi4.
33187
33188 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33189
33190         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
33191         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
33192         annotations. Fix DWARF information.
33193
33194 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33195
33196         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
33197         __udivmoddi4, and fixups for negative operands.
33198
33199 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33200
33201         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
33202
33203 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33204
33205         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
33206         to __udivmoddi4.
33207
33208 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33209
33210         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
33211         manipulation.
33212
33213 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33214
33215         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
33216         describing register usage on function entry and exit.
33217
33218 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33219
33220         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
33221         (__aeabi_ldivmod): Fix whitespace.
33222
33223 2014-06-18  Andreas Schwab  <schwab@suse.de>
33224
33225         * doc/md.texi (Standard Names): Use @itemx for grouped items.
33226         Remove blank line after @item.
33227
33228 2014-06-18  Richard Henderson  <rth@redhat.com>
33229
33230         PR target/61545
33231         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
33232
33233 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33234
33235         * config/arm/arm.c (neon_vector_mem_operand): Allow register
33236         POST_MODIFY for neon loads and stores.
33237         (arm_print_operand): Output post-index register for neon loads and
33238         stores.
33239
33240 2014-06-18  Richard Biener  <rguenther@suse.de>
33241
33242         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
33243
33244 2014-06-18  Richard Biener  <rguenther@suse.de>
33245
33246         * tree-pass.h (make_pass_dce_loop): Remove.
33247         * passes.def: Replace pass_dce_loop with pass_dce.
33248         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
33249         changed free niter estimates and reset the scev cache.
33250         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
33251         make_pass_dce_loop): Remove.
33252         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
33253         (fini_copy_prop): Return whether something changed.  Always
33254         let substitute_and_fold perform DCE and free niter estimates
33255         and reset the scev cache if so.
33256         (execute_copy_prop): If sth changed schedule cleanup-cfg.
33257         (pass_data_copy_prop): Do not unconditionally schedule
33258         cleanup-cfg or update-ssa.
33259
33260 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
33261
33262         PR tree-optimization/61518
33263         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
33264         reduction var is used in reduction stmt or phi-function only.
33265
33266 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33267
33268         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
33269
33270 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33271
33272         PR tree-optimization/61517
33273         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
33274         whose rhs's first tree is the source expression instead of the
33275         expression itself.
33276         (find_bswap_or_nop): Likewise.
33277         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
33278         gimple stmt whose rhs's first tree is the source. In the memory source
33279         case, move the stmt to be replaced close to one of the original load to
33280         avoid the problem of a store between the load and the stmt's original
33281         location.
33282         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
33283         signature.
33284
33285 2014-06-18  Andreas Schwab  <schwab@suse.de>
33286
33287         PR rtl-optimization/54555
33288         * postreload.c (move2add_use_add2_insn): Substitute
33289         STRICT_LOW_PART only if it is cheaper.
33290
33291 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
33292
33293         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
33294         Do not use unspec as call operand.  Use memory_operand instead of
33295         memory_nox32_operand and add "m" operand constraint.  Disable
33296         pattern for TARGET_X32.
33297         (*sibcall_pop_memory): Ditto.
33298         (*sibcall_value_memory): Ditto.
33299         (*sibcall_value_pop_memory): Ditto.
33300         (sibcall peepholes): Merge SImode and DImode patterns using
33301         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
33302         Disable pattern for TARGET_X32.  Check if eliminated register is
33303         really dead after call insn.  Generate call RTX without unspec operand.
33304         (sibcall_value peepholes): Ditto.
33305         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
33306         instead of memory_nox32_operand.  Check if eliminated register is
33307         really dead after call insn. Generate call RTX without unspec operand.
33308         (sibcall_value_pop peepholes): Ditto.
33309         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
33310
33311 2014-06-18  Terry Guo  <terry.guo@arm.com>
33312
33313         PR target/61544
33314         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
33315         reach the head.
33316
33317 2014-06-18  Olivier Hainque  <hainque@adacore.com>
33318
33319         * tree-core.h (tree_block): Add an "end_locus" field, allowing
33320         memorization of the end of block source location.
33321         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
33322         * gimplify.c (gimplify_bind_expr): Propagate the block start and
33323         end source location info we have on the block entry/exit code we
33324         generate.
33325
33326 2014-06-18  Richard Biener  <rguenther@suse.de>
33327
33328         * common.opt (fssa-phiopt): New option.
33329         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
33330         but not with -Og.
33331         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
33332         * doc/invoke.texi (-fssa-phiopt): Document.
33333
33334 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33335
33336         * genattrtab.c (n_bypassed): New variable.
33337         (process_bypasses): Initialise n_bypassed.
33338         Count number of bypassed reservations.
33339         (make_automaton_attrs): Allocate space for bypassed reservations
33340         rather than number of bypasses.
33341
33342 2014-06-18  Richard Biener  <rguenther@suse.de>
33343
33344         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
33345         we propagated anything.
33346         (substitute_and_fold_dom_walker::before_dom_children): Something
33347         changed if we propagated into PHI arguments.
33348         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
33349         we removed a stmt.
33350
33351 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
33352
33353         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
33354         vector case.
33355         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
33356         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
33357         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
33358         Introduces alternative way of loads group permutaions.
33359         (vect_transform_grouped_load): Try alternative way of permutations.
33360
33361 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
33362
33363         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
33364         changed in ORT_TARGET region, don't jump to do_outer.
33365         (struct gimplify_adjust_omp_clauses_data): New type.
33366         (gimplify_adjust_omp_clauses_1): Adjust for data being
33367         a struct gimplify_adjust_omp_clauses_data pointer instead
33368         of tree *.  Pass pre_p as a new argument to
33369         lang_hooks.decls.omp_finish_clause hook.
33370         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
33371         splay_tree_foreach to pass both list_p and pre_p.
33372         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
33373         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
33374         gimplify_adjust_omp_clauses callers.
33375         * langhooks.c (lhd_omp_finish_clause): New function.
33376         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
33377         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
33378         * langhooks.h (struct lang_hooks_for_decls): Add a new
33379         gimple_seq * argument to omp_finish_clause hook.
33380         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
33381         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
33382         (scan_omp_parallel, lower_omp_for): When adding
33383         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
33384         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
33385         * tree-nested.c (convert_nonlocal_omp_clauses,
33386         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
33387         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
33388
33389 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
33390
33391         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
33392         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
33393
33394 2014-06-17  Xinliang David Li  <davidxl@google.com>
33395
33396         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
33397         * passes.c (pass_init_dump_file): Do not set initialize
33398         flag to false unconditionally.
33399
33400 2014-06-17  Richard Biener  <rguenther@suse.de>
33401
33402         * genopinit.c (main): Use vec<>::qsort method.
33403         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
33404         Likewise.
33405         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
33406
33407 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
33408
33409         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
33410         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
33411         (mips_move_to_gpr_cost): Remove ST_REGS case.
33412         (mips_move_from_gpr_cost): Likewise.
33413         (mips_register_move_cost): Likewise.
33414         (mips_secondary_reload_class): Likewise.
33415
33416 2014-06-17  Richard Biener  <rguenther@suse.de>
33417
33418         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
33419         (pass_all_optimizations): Move 3rd copy-prop pass from after
33420         fre to before ifcombine/phiopt.
33421
33422 2014-06-17  Richard Biener  <rguenther@suse.de>
33423
33424         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
33425         and allow all blocks to be forwarders.
33426
33427 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
33428
33429         PR target/61483
33430         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
33431         variable 'size'; calculate 'size' right in the front; use
33432         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
33433         pcum->aapcs_stack_words.
33434
33435 2014-06-17  Nick Clifton  <nickc@redhat.com>
33436
33437         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
33438         (umulhi3, mulsidi3, umulsidi3): Likewise.
33439
33440 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
33441
33442         PR middle-end/61508
33443         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
33444         check for section name.
33445
33446 2014-06-17  Richard Biener  <rguenther@suse.de>
33447
33448         * tree-ssa-propagate.c: Include domwalk.h.
33449         (substitute_and_fold): Outline main worker into a domwalker ...
33450         (substitute_and_fold_dom_walker::before_dom_children): ... here.
33451         Schedule stmts we can fully propagate for removal.  Remove
33452         poor-mans DCE.
33453         (substitute_and_fold): Apply a dominator walk to perform
33454         substitution.  Process stmts scheduled for removal here.
33455
33456 2014-06-17  Richard Biener  <rguenther@suse.de>
33457
33458         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
33459         of PHI node moving.
33460
33461 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
33462
33463         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
33464         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
33465         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
33466         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
33467         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
33468         TARGET_HARD_FLOAT.
33469         (get_fpscr) : Likewise.
33470
33471 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
33472
33473         PR rtl-optimization/61325
33474         * lra-constraints.c (valid_address_p): Add forward declaration.
33475         (simplify_operand_subreg): Check address validity before and after
33476         alter_reg of memory subreg.
33477
33478 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
33479
33480         * config/i386/i386.c (decide_alg): Correctly handle
33481         maximum size of stringop algorithm.
33482
33483 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
33484
33485         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
33486
33487 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
33488
33489         PR rtl-optimization/61522
33490         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
33491
33492 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
33493
33494         Revert:
33495         * symtab.c (symtab_node::reset_section): New method.
33496         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
33497         for localization.
33498         * cgraph.h (reset_section): Declare.
33499         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
33500         do not consider comdat locals.
33501         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
33502         for new symbol.
33503         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
33504         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
33505         reset sections of symbols dragged out of the comdats.
33506         (function_and_variable_visibility): Reset sections of
33507         localized symbols.
33508
33509 2014-06-16  Richard Biener  <rguenther@suse.de>
33510
33511         PR tree-optimization/61482
33512         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
33513         [-INF(OVF), +INF(OVF)] range.
33514
33515 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
33516
33517         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
33518         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
33519         handling 32-bit multiplication.
33520
33521 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
33522
33523         PR middle-end/61430
33524         * lra-lives.c (process_bb_lives): Skip creating copy during
33525         insn scan when src/dest has constrained to same regno.
33526
33527 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
33528
33529         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
33530         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
33531
33532 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
33533
33534         * asan.c (check_func): New function.
33535         (maybe_create_ssa_name): Likewise.
33536         (build_check_stmt_with_calls): Likewise.
33537         (use_calls_p): Likewise.
33538         (report_error_func): Change interface.
33539         (build_check_stmt): Allow non-integer lengths; add support
33540         for new parameter.
33541         (asan_instrument): Likewise.
33542         (instrument_mem_region_access): Moved code to build_check_stmt.
33543         (instrument_derefs): Likewise.
33544         (instrument_strlen_call): Likewise.
33545         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
33546         * doc/invoke.texi: Describe new parameter.
33547         * params.def: Define new parameter.
33548         * params.h: Likewise.
33549         * sanitizer.def: Describe new builtins.
33550
33551 2014-06-16  Richard Biener  <rguenther@suse.de>
33552
33553         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
33554         Make all defs available at the end.
33555         (eliminate): If we remove a PHI node schedule cfg-cleanup.
33556
33557 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
33558
33559         PR plugins/45078
33560         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
33561
33562 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
33563
33564         PR bootstrap/61516
33565         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
33566         initialization.  Replace remaining use of uid.
33567
33568 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
33569
33570         * c-family/c-common.c (handle_tls_model_attribute): Use
33571         set_decl_tls_model.
33572         * c-family/c-common.c (handle_tls_model_attribute): Use
33573         set_decl_tls_model.
33574         * cgraph.h (struct varpool_node): Add tls_model.
33575         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
33576         * tree.h (DECL_TLS_MODEL): Update.
33577         (DECL_THREAD_LOCAL_P): Check that variable is static.
33578         (decl_tls_model): Declare.
33579         (set_decl_tls_model): Declare.
33580         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
33581         set symbol prorperties.
33582         (get_emutls_init_templ_addr): Cleanup.
33583         (new_emutls_decl): Update.
33584         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
33585         (lto_input_varpool_node): Likewise.
33586         * lto-streamer-out.c (hash_tree): Likewise.
33587         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
33588         not stream DECL_TLS_MODEL.
33589         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
33590         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
33591
33592 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33593
33594         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
33595
33596 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33597
33598         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
33599         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
33600         lists.
33601         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
33602         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
33603         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
33604         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
33605         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
33606         (df_get_artificial_defs, df_get_artificial_uses)
33607         (df_single_def, df_single_use): Update accordingly.
33608         (df_refs_chain_dump): Take the first element in a linked list as
33609         parameter, rather than a pointer to an array of pointers.
33610         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
33611         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
33612         (df_chain_create_bb_process_use): Likewise.
33613         (df_md_bb_local_compute_process_def): Likewise.
33614         * fwprop.c (process_defs, process_uses): Likewise.
33615         (register_active_defs, update_uses): Likewise.
33616         (forward_propagate_asm): Update for new df_ref linking.
33617         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
33618         (df_null_ref_rec, df_null_mw_rec): Likewise.
33619         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
33620         explicitly.
33621         (df_scan_free_bb_info): Remove check for null artificial_defs.
33622         (df_install_ref_incremental): Adjust for new df_ref linking.
33623         Use a single-element insertion rather than a full sort.
33624         (df_ref_chain_delete_du_chain): Take the first element
33625         in a linked list as parameter, rather than a pointer to an array of
33626         pointers.
33627         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
33628         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
33629         (df_insn_info_delete): Remove check for null defs and call to
33630         df_scan_free_mws_vec.
33631         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
33632         null rather than df_null_*_rec.
33633         (df_insn_rescan_debug_internal): Likewise, and update null
33634         checks in the same way.  Remove check for null defs.
33635         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
33636         Move a single element rather doing a full sort.
33637         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
33638         linking.
33639         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
33640         Initialize df_ref and df_mw_hardreg lists to null rather than
33641         df_null_*_rec.
33642         (df_ref_compare): Take df_refs as parameter, transferring the
33643         old interface to...
33644         (df_ref_ptr_compare): ...this new function.
33645         (df_sort_and_compress_refs): Update accordingly.
33646         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
33647         old interface to...
33648         (df_mw_ptr_compare): ...this new function.
33649         (df_sort_and_compress_mws): Update accordingly.
33650         (df_install_refs, df_install_mws): Return a linked list rather than
33651         an array of pointers.
33652         (df_refs_add_to_chains): Assert that old lists are empty rather
33653         than freeing them.
33654         (df_insn_refs_verify): Don't handle null defs speciailly.
33655         * web.c (union_match_dups): Update for new df_ref linking.
33656
33657 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33658
33659         * df.h (df_ref_create, df_ref_remove): Delete.
33660         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
33661         (df_ref_remove): Likewise.
33662
33663 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33664
33665         * df.h (df_single_def, df_single_use): New functions.
33666         * ira.c (find_moveable_pseudos): Use them.
33667
33668 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33669
33670         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
33671         * df-problems.c (df_note_bb_compute): Use it.
33672         * regstat.c (regstat_bb_compute_ri): Likewise.
33673
33674 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33675
33676         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
33677         * cse.c (cse_extended_basic_block): Use them.
33678         * dce.c (mark_artificial_use): Likewise.
33679         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
33680         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
33681         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
33682         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
33683         (df_simulate_initialize_backwards): Likewise.
33684         (df_simulate_finalize_backwards): Likewise.
33685         (df_simulate_initialize_forwards): Likewise.
33686         (df_md_simulate_artificial_defs_at_top): Likewise.
33687         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
33688         * regrename.c (init_rename_info): Likewise.
33689         * regstat.c (regstat_bb_compute_ri): Likewise.
33690         (regstat_bb_compute_calls_crossed): Likewise.
33691
33692 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33693
33694         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
33695         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
33696         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
33697         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
33698         * combine.c (create_log_links): Likewise.
33699         * compare-elim.c (find_flags_uses_in_insn): Likewise.
33700         (try_eliminate_compare): Likewise.
33701         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
33702         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
33703         (remove_reg_equal_equiv_notes_for_defs): Likewise.
33704         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
33705         (word_dce_process_block, dce_process_block): Likewise.
33706         * ddg.c (def_has_ccmode_p): Likewise.
33707         * df-core.c (df_bb_regno_first_def_find): Likewise.
33708         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
33709         * df-problems.c (df_rd_simulate_one_insn): Likewise.
33710         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
33711         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
33712         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
33713         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
33714         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
33715         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
33716         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
33717         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
33718         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
33719         * fwprop.c (local_ref_killed_between_p): Likewise.
33720         (all_uses_available_at, free_load_extend): Likewise.
33721         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
33722         * hw-doloop.c (scan_loop): Likewise.
33723         * ifcvt.c (dead_or_predicable): Likewise.
33724         * init-regs.c (initialize_uninitialized_regs): Likewise.
33725         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
33726         (process_bb_node_lives): Likewise.
33727         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
33728         (find_moveable_pseudos): Likewise.
33729         * loop-invariant.c (check_dependencies, record_uses): Likewise.
33730         * recog.c (peep2_find_free_register): Likewise.
33731         * ree.c (get_defs): Likewise.
33732         * regstat.c (regstat_bb_compute_ri): Likewise.
33733         (regstat_bb_compute_calls_crossed): Likewise.
33734         * sched-deps.c (find_inc, find_mem): Likewise.
33735         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
33736         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
33737         * shrink-wrap.c (requires_stack_frame_p): Likewise.
33738         (prepare_shrink_wrap): Likewise.
33739         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
33740         * web.c (union_defs, pass_web::execute): Likewise.
33741         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
33742         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
33743
33744 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
33745
33746         * lra-assign.c (assign_by_spills): Add code to assign vector regs
33747         to inheritance pseudos.
33748         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
33749
33750 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
33751
33752         PR target/61415
33753         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
33754         (BU_MISC_2): Rename to ...
33755         (BU_LDBL128_2): ... this.
33756         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
33757         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
33758         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
33759         RS6000_BTM_LDBL128.
33760         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
33761         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
33762         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
33763         (unpacktf_1): Likewise.
33764         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
33765         (__builtin_longdouble_dw1): Likewise.
33766         * doc/sourcebuild.texi (longdouble128): Document.
33767
33768 2014-06-13  Jeff Law  <law@redhat.com>
33769
33770         PR rtl-optimization/61094
33771         PR rtl-optimization/61446
33772         * ree.c (combine_reaching_defs): Get the mode for the copy from
33773         the extension insn rather than the defining insn.
33774
33775 2014-06-13  Dehao Chen  <dehao@google.com>
33776
33777         * dwarf2out.c (add_linkage_name): Emit more linkage name.
33778
33779 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
33780
33781         * doc/install.texi (--enable-linker-plugin-configure-flags)
33782         (--enable-linker-plugin-flags): Document new flags.
33783
33784 2014-06-13  Martin Jambor  <mjambor@suse.cz>
33785
33786         PR ipa/61186
33787         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
33788         cache_token if returning early.
33789
33790 2014-06-13  Nick Clifton  <nickc@redhat.com>
33791
33792         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
33793         requested alignment is active.
33794         (LABEL_ALIGN): Likewise.
33795         (LOOP_ALIGN): Likewise.
33796
33797 2014-06-13  Richard Biener  <rguenther@suse.de>
33798
33799         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
33800         Rewrite to propagate the VN result into all uses where
33801         possible and to remove stmts becoming dead because of that.
33802         (eliminate): Generalize stmt removal handling, remove in
33803         reverse dominator order to support proper debug stmt
33804         generation.  Update stmts before removing stmts.
33805         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
33806
33807 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33808
33809         PR tree-optimization/61375
33810         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
33811         symbolic number cannot be represented in an uint64_t.
33812         (find_bswap_or_nop_1): Likewise.
33813
33814 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
33815
33816         * symtab.c (symtab_node::reset_section): New method.
33817         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
33818         for localization.
33819         * cgraph.h (reset_section): Declare.
33820         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
33821         do not consider comdat locals.
33822         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
33823         for new symbol.
33824         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
33825         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
33826         reset sections of symbols dragged out of the comdats.
33827         (function_and_variable_visibility): Reset sections of
33828         localized symbols.
33829
33830 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
33831
33832         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
33833         to use symtab and decl_binds_to_current_def_p
33834         * tree-vectorizer.c (increase_alignment): Increase alignment
33835         of alias target, too.
33836
33837 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
33838
33839         PR middle-end/61486
33840         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
33841         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
33842         if outer combined construct is distribute.
33843         (gimplify_omp_for): For OMP_DISTRIBUTE set
33844         gimplify_omp_ctxp->distribute.
33845         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
33846         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
33847         mapping into decl map.
33848
33849 2014-06-12  Jason Merrill  <jason@redhat.com>
33850
33851         * common.opt (fabi-version): Change default to 0.
33852
33853 2014-06-12  Jason Merrill  <jason@redhat.com>
33854
33855         * toplev.c (process_options): Reject -fabi-version=1.
33856
33857 2014-06-12  Jeff Law  <law@redhat.com>
33858
33859         PR tree-optimization/61009
33860         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
33861         value when we stop processing a block due to problematic PHIs.
33862
33863 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
33864
33865         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
33866         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
33867         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
33868         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
33869         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
33870         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
33871         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
33872         are not in the spec.
33873
33874 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
33875
33876         PR target/59843
33877         * config/aarch64/aarch64-modes.def: Add V1DFmode.
33878         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
33879         Support V1DFmode.
33880
33881 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
33882
33883         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
33884
33885 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
33886
33887         PR target/61443
33888         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
33889         loading from address spaces.
33890
33891 2014-06-12  Martin Liska  <mliska@suse.cz>
33892
33893         PR ipa/61462
33894         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
33895         statement is reachable.
33896
33897 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
33898
33899         * symtab.c (section_hash): New hash.
33900         (symtab_unregister_node): Clear section before freeing.
33901         (hash_section_hash_entry): New haser.
33902         (eq_sections): New function.
33903         (symtab_node::set_section_for_node): New method.
33904         (set_section_1): Update.
33905         (symtab_node::set_section): Take string instead of tree as parameter.
33906         (symtab_resolve_alias): Update.
33907         * cgraph.h (section_hash_entry_d): New structure.
33908         (section_hash_entry): New typedef.
33909         (cgraph_node): Change comdat_group_ to x_comdat_group,
33910         change section_ to x_section and turn into section_hash_entry;
33911         update accestors; put set_section_for_node offline.
33912         * tree.c (decl_section_name): Turn into string.
33913         (set_decl_section_name): Change parameter to be string.
33914         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
33915         * sdbout.c (sdbout_one_type): Update.
33916         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
33917         * varasm.c (IN_NAMED_SECTION, get_named_section,
33918         resolve_unique_section, hot_function_section, get_named_text_section,
33919         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
33920         make_decl_rtl, default_unique_section): Update.
33921         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
33922         (c6x_elf_unique_section): Update.
33923         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
33924         * config/pa/pa.c (pa_function_section): Update.
33925         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
33926         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
33927         * config/arc/arc.c (arc_in_small_data_p): Update.
33928         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
33929         * config/mcore/mcore.c (mcore_unique_section): Update.
33930         * config/mips/mips.c (mips16_build_function_stub): Update.
33931         (mips16_build_call_stub): Update.
33932         (mips_function_rodata_section): Update.
33933         (mips_in_small_data_p): Update.
33934         * config/score/score.c (score_in_small_data_p): Update.
33935         * config/rx/rx.c (rx_in_small_data): Update.
33936         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
33937         (rs6000_xcoff_asm_named_section): Update.
33938         (rs6000_xcoff_unique_section): Update.
33939         * config/frv/frv.c (frv_string_begins_with): Update.
33940         (frv_in_small_data_p): Update.
33941         * config/v850/v850.c (v850_encode_data_area): Update.
33942         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
33943         (bfin_handle_l1_data_attribute): Update.
33944         (bfin_handle_l2_attribute): Update.
33945         * config/mep/mep.c (mep_unique_section): Update.
33946         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
33947         Update.
33948         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
33949         (h8300_handle_tiny_data_attribute): Update.
33950         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
33951         (m32r_in_small_data_p): Update.
33952         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
33953         * config/i386/i386.c (ix86_in_large_data_p): Update.
33954         * config/i386/winnt.c (i386_pe_unique_section): Update.
33955         * config/darwin.c (darwin_function_section): Update.
33956         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
33957         * tree-emutls.c (get_emutls_init_templ_addr): Update.
33958         (new_emutls_decl): Update.
33959         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
33960         input_varpool_node): Update.
33961         (ead_string_cst): Turn to ...
33962         (read_string): ... this one.
33963         * dwarf2out.c (secname_for_decl): Update.
33964         * asan.c (asan_protect_global): Update.
33965
33966 2014-06-11  DJ Delorie  <dj@redhat.com>
33967
33968         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
33969         cache lines.
33970         * config/rx/rx.c (rx_option_override): Likewise.
33971         (rx_align_for_label): Likewise.
33972
33973         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
33974
33975 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
33976
33977         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
33978         prototype.
33979
33980 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33981
33982         * common.md: New file.
33983         * doc/md.texi: Update description of generic, machine-independent
33984         constraints.
33985         * config/s390/constraints.md (e): Delete.
33986         * Makefile.in (md_file): Include common.md.
33987         * config/m32c/t-m32c (md_file): Likewise.
33988         * genpreds.c (general_mem): New array.
33989         (generic_constraint_letters): Remove constraints now defined by
33990         common.md.
33991         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
33992         Allow the first character to be '<' or '>' as well.
33993         * genoutput.c (general_mem): New array.
33994         (indep_constraints): Remove constraints now defined by common.md.
33995         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
33996         Remove special handling of 'm'.
33997         * ira-costs.c (record_reg_classes): Remove special handling of
33998         constraints now defined by common.md.
33999         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
34000         * ira-lives.c (single_reg_class): Likewise.
34001         (ira_implicitly_set_insn_hard_regs): Likewise.
34002         * lra-constraints.c (reg_class_from_constraints): Likewise.
34003         (process_alt_operands, process_address, curr_insn_transform): Likewise.
34004         * postreload.c (reload_cse_simplify_operands): Likewise.
34005         * reload.c (push_secondary_reload, scratch_reload_class)
34006         (find_reloads, alternative_allows_const_pool_ref): Likewise.
34007         * reload1.c (maybe_fix_stack_asms): Likewise.
34008         * targhooks.c (default_secondary_reload): Likewise.
34009         * stmt.c (parse_output_constraint): Likewise.
34010         * recog.c (preprocess_constraints): Likewise.
34011         (constrain_operands, peep2_find_free_register): Likewise.
34012         (asm_operand_ok): Likewise, but add a comment saying why 'o'
34013         must be handled specially.
34014
34015 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34016
34017         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
34018         * genpreds.c (have_const_dbl_constraints): Delete.
34019         (add_constraint): Don't set it.
34020         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
34021         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
34022         constraints using the lookup_constraint logic.
34023         * ira-lives.c (single_reg_class): Likewise.
34024         * ira.c (ira_setup_alts): Likewise.
34025         * lra-constraints.c (process_alt_operands): Likewise.
34026         * recog.c (asm_operand_ok, constrain_operands): Likewise.
34027         * reload.c (find_reloads): Likewise.
34028
34029 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34030
34031         * genpreds.c (const_int_start, const_int_end): New variables.
34032         (choose_enum_order): Output CONST_INT constraints before memory
34033         constraints.
34034         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
34035         Add CT_CONST_INT.
34036         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
34037         * ira.c (ira_setup_alts): Likewise.
34038         * lra-constraints.c (process_alt_operands): Likewise.
34039         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
34040         * reload.c (find_reloads): Likewise.
34041
34042 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34043
34044         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
34045         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
34046         * recog.c (preprocess_constraints): Update accordingly.
34047
34048 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34049
34050         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
34051         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
34052         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
34053         * genpreds.c (print_type_tree): New function.
34054         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
34055         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
34056         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
34057         Write out enum constraint_type and get_constraint_type.
34058         * lra-constraints.c (satisfies_memory_constraint_p): Take a
34059         constraint_num rather than a constraint string.
34060         (satisfies_address_constraint_p): Likewise.
34061         (reg_class_from_constraints): Avoid old constraint macros.
34062         (process_alt_operands, process_address_1): Likewise.
34063         (curr_insn_transform): Likewise.
34064         * ira-costs.c (record_reg_classes): Likewise.
34065         (record_operand_costs): Likewise.
34066         * ira-lives.c (single_reg_class): Likewise.
34067         (ira_implicitly_set_insn_hard_regs): Likewise.
34068         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
34069         * postreload.c (reload_cse_simplify_operands): Likewise.
34070         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
34071         (constrain_operands, peep2_find_free_register): Likewise.
34072         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
34073         (find_reloads, alternative_allows_const_pool_ref): Likewise.
34074         * reload1.c (maybe_fix_stack_asms): Likewise.
34075         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
34076         * targhooks.c (default_secondary_reload): Likewise.
34077         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
34078         to EXTRA_CONSTRAINT_STR.
34079         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
34080
34081 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34082
34083         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
34084         (write_constraint_satisfied_p_array): ...this new function.
34085         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
34086         an array.
34087         (write_insn_preds_c): Update accordingly.
34088
34089 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34090
34091         * genpreds.c (write_lookup_constraint): Rename to...
34092         (write_lookup_constraint_1): ...this.
34093         (write_lookup_constraint_array): New function.
34094         (write_tm_preds_h): Define lookup_constraint as an inline function
34095         that uses write_lookup_constraint_array where possible.
34096         (write_insn_preds_c): Update for the changes above.
34097
34098 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34099
34100         * doc/md.texi (regclass_for_constraint): Rename to...
34101         (reg_class_for_constraint): ...this.
34102         * genpreds.c (num_constraints, enum_order, register_start)
34103         (register_end, satisfied_start, memory_start, memory_end)
34104         (address_start, address_end): New variables.
34105         (add_constraint): Count the number of constraints.
34106         (choose_enum_order): New function.
34107         (write_enum_constraint_num): Iterate over enum_order.
34108         (write_regclass_for_constraint): Rename to...
34109         (write_reg_class_for_constraint_1): ...this and update output
34110         accordingly.
34111         (write_constraint_satisfied_p): Rename to...
34112         (write_constraint_satisfied_p_1): ...this and update output
34113         accordingly.  Do nothing if all extra constraints are register
34114         constraints.
34115         (write_insn_extra_memory_constraint): Delete.
34116         (write_insn_extra_address_constraint): Delete.
34117         (write_range_function): New function.
34118         (write_tm_preds_h): Define constraint_satisfied_p and
34119         reg_class_for_constraint as inline functions that do a range check
34120         before calling the out-of-line function.  Use write_range_function
34121         to implement insn_extra_{register,memory,address}_constraint,
34122         the first of which is new.
34123         (write_insn_preds_c): Update after above changes to write_* functions.
34124         (main): Call choose_enum_order.
34125
34126 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34127
34128         PR tree-optimization/61306
34129         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
34130         expression instead of its size.
34131         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
34132         false to prevent optimization when the result is unpredictable due to
34133         arithmetic right shift of signed type with highest byte is set.
34134         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
34135         (init_symbolic_number): Likewise.
34136         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
34137         when the result is unpredictable due to sign extension.
34138
34139 2014-06-11  Terry Guo  <terry.guo@arm.com>
34140
34141         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
34142         (*thumb1_addsi3): Ditto.
34143         (*thumb_subdi3): Ditto.
34144         (thumb1_subsi3_insn): Ditto.
34145         (*thumb_mulsi3): Ditto.
34146         (*thumb_mulsi3_v6): Ditto.
34147         (*thumb1_andsi3_insn): Ditto.
34148         (thumb1_bicsi3): Ditto.
34149         (*thumb1_iorsi3_insn): Ditto.
34150         (*thumb1_xorsi3_insn): Ditto.
34151         (*thumb1_ashlsi3): Ditto.
34152         (*thumb1_ashrsi3): Ditto.
34153         (*thumb1_lshrsi3): Ditto.
34154         (*thumb1_rotrsi3): Ditto.
34155         (*thumb1_negdi2): Ditto.
34156         (*thumb1_negsi2): Ditto.
34157         (*thumb1_abssi2): Ditto.
34158         (*thumb1_neg_abssi2): Ditto.
34159         (*thumb1_one_cmplsi2): Ditto.
34160         (*thumb1_zero_extendhisi2): Ditto.
34161         (*thumb1_zero_extendqisi2): Ditto.
34162         (*thumb1_zero_extendqisi2_v6): Ditto.
34163         (thumb1_extendhisi2): Ditto.
34164         (thumb1_extendqisi2): Ditto.
34165         (*thumb1_movdi_insn): Ditto.
34166         (*thumb1_movsi_insn): Ditto.
34167         (*thumb1_movhi_insn): Ditto.
34168         (thumb_movhi_clobber): Ditto.
34169         (*thumb1_movqi_insn): Ditto.
34170         (*thumb1_movhf): Ditto.
34171         (*thumb1_movsf_insn): Ditto.
34172         (*thumb_movdf_insn): Ditto.
34173         (movmem12b): Ditto.
34174         (movmem8b): Ditto.
34175         (cbranchqi4): Ditto.
34176         (cbranchsi4_insn): Ditto.
34177         (cbranchsi4_scratch): Ditto.
34178         (*negated_cbranchsi4): Ditto.
34179         (*tbit_cbranch): Ditto.
34180         (*tlobits_cbranch): Ditto.
34181         (*tstsi3_cbranch): Ditto.
34182         (*cbranchne_decr1): Ditto.
34183         (*addsi3_cbranch): Ditto.
34184         (*addsi3_cbranch_scratch): Ditto.
34185         (*thumb_cmpdi_zero): Ditto.
34186         (cstoresi_eq0_thumb1): Ditto.
34187         (cstoresi_ne0_thumb1): Ditto.
34188         (*cstoresi_eq0_thumb1_insn): Ditto.
34189         (*cstoresi_ne0_thumb1_insn): Ditto.
34190         (cstoresi_nltu_thumb1): Ditto.
34191         (cstoresi_ltu_thumb1): Ditto.
34192         (thumb1_addsi3_addgeu): Ditto.
34193         (*thumb_jump): Ditto.
34194         (*call_reg_thumb1_v5): Ditto.
34195         (*call_reg_thumb1): Ditto.
34196         (*call_value_reg_thumb1_v5): Ditto.
34197         (*call_value_reg_thumb1): Ditto.
34198         (*call_insn): Ditto.
34199         (*call_value_insn): Ditto.
34200         (thumb1_casesi_internal_pic): Ditto.
34201         (thumb1_casesi_dispatch): Ditto.
34202         (*thumb1_indirect_jump): Ditto.
34203         (prologue_thumb1_interwork): Ditto.
34204         (*epilogue_insns): Ditto.
34205         (consttable_1): Ditto.
34206         (consttable_2): Ditto.
34207         (tablejump): Ditto.
34208         (*thumb1_tablejump): Ditto.
34209         (thumb_eh_return): Ditto.
34210         (define_peephole2): Two of them are thumb1 only and got moved into
34211         new file thumb1.md.
34212         (define_split): Six of them are thumb1 only and got moved into new
34213         file thumb1.md.
34214         * config/arm/thumb1.md: New file comprised of above thumb1 only
34215         patterns.
34216
34217 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34218
34219         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
34220         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
34221         dependencies.
34222         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
34223         (aarch64_crc_builtin_datum): New struct.
34224         (aarch64_crc_builtin_data): New.
34225         (aarch64_init_crc32_builtins): New function.
34226         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
34227         (aarch64_crc32_expand_builtin): New.
34228         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
34229         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
34230         __ARM_FEATURE_CRC32 when appropriate.
34231         (TARGET_CRC32): Define.
34232         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
34233         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
34234         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
34235         (aarch64_<crc_variant>): New pattern.
34236         * config/aarch64/arm_acle.h: New file.
34237         * config/aarch64/iterators.md (CRC): New int iterator.
34238         (crc_variant, crc_mode): New int attributes.
34239         * doc/aarch64-acle-intrinsics.texi: New file.
34240         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
34241         Include aarch64-acle-intrinsics.texi.
34242
34243 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
34244
34245         * tree-vect-data-refs.c (vect_grouped_store_supported): New
34246         check for stores group of length 3.
34247         (vect_permute_store_chain): New permutations for stores group of
34248         length 3.
34249         * tree-vect-stmts.c (vect_model_store_cost): Change cost
34250         of vec_perm_shuffle for the new permutations.
34251
34252 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
34253
34254         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
34255         table rewriting temporarily on targets not supporting ONE_ONLY.
34256
34257 2014-06-11  Richard Biener  <rguenther@suse.de>
34258
34259         PR middle-end/61437
34260         Revert
34261         2014-06-04  Richard Biener  <rguenther@suse.de>
34262
34263         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
34264         TREE_PUBLIC and DECL_EXTERNAL decls.
34265
34266 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
34267
34268         * varasm.c (set_implicit_section): New function.
34269         (resolve_unique_section): Use it to set implicit section
34270         for aliases, too.
34271         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
34272         (default_function_section): Likewise.
34273         (decl_binds_to_current_def_p): Constify argument.
34274         * varasm.h (decl_binds_to_current_def_p): Update prototype.
34275         * asan.c (asan_protect_global): Use
34276         symtab_get_node (decl)->implicit_section.
34277         * symtab.c (dump_symtab_base): Dump implicit sections.
34278         (verify_symtab_base): Verify sanity of sectoins and comdats.
34279         (symtab_resolve_alias): Alias share the section of its target.
34280         (set_section_1): New function.
34281         (symtab_node::set_section): Move here, recurse to aliases.
34282         (verify_symtab): Check for duplicated symtab lists.
34283         * tree-core.h (implicit_section_name_p): Remove.
34284         * tree-vect-data-refs.c: Include varasm.h.
34285         (vect_can_force_dr_alignment_p): Fix conditional on when
34286         decl bints to current definition; use
34287         symtab_get_node (decl)->implicit_section.
34288         * cgraph.c (cgraph_make_node_local_1): Fix section set.
34289         * cgraph.h (struct symtab_node): Add implicit_section.
34290         (set_section): Rename to ...
34291         (set_section_for_node): ... this one.
34292         (set_section): Declare.
34293         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
34294         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
34295         input_overwrite_node, input_varpool_node): Stream implicit_section.
34296         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
34297         removal; it will fail in LTO.
34298
34299 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34300
34301         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
34302         Change second alternative type to f_mcr.
34303         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
34304         and 12th alternatives' types to f_mcr and f_mrc.
34305         (*movdi_aarch64): Same for 12th and 13th alternatives.
34306         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
34307         (aarch64_movtilow_tilow): Change type to fmov.
34308
34309 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
34310
34311         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
34312         (aarch64_save_or_restore_callee_save_registers): Fix layout.
34313
34314 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34315
34316         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
34317         New expander.
34318         (aarch64_sqrdmulh_lane<mode>): Likewise.
34319         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
34320         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
34321         (aarch64_sqdmulh_laneq<mode>): New expander.
34322         (aarch64_sqrdmulh_laneq<mode>): Likewise.
34323         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
34324         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
34325         (aarch64_sqdmulh_lane<mode>): New expander.
34326         (aarch64_sqrdmulh_lane<mode>): Likewise.
34327         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
34328         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
34329         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
34330         (aarch64_sqdmlal_laneq<mode>): Likewise.
34331         (aarch64_sqdmlsl_lane<mode>): Likewise.
34332         (aarch64_sqdmlsl_laneq<mode>): Likewise.
34333         (aarch64_sqdmlal2_lane<mode>): Likewise.
34334         (aarch64_sqdmlal2_laneq<mode>): Likewise.
34335         (aarch64_sqdmlsl2_lane<mode>): Likewise.
34336         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
34337         (aarch64_sqdmull_lane<mode>): Likewise.
34338         (aarch64_sqdmull_laneq<mode>): Likewise.
34339         (aarch64_sqdmull2_lane<mode>): Likewise.
34340         (aarch64_sqdmull2_laneq<mode>): Likewise.
34341
34342 2014-06-10  Richard Biener  <rguenther@suse.de>
34343
34344         PR tree-optimization/61438
34345         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
34346         (eliminate_dom_walker::before_dom_children): Only try to inhibit
34347         insertion of IVs if running PRE.
34348         (eliminate): Adjust.
34349         (pass_pre::execute): Likewise.
34350         (pass_fre::execute): Likewise.
34351
34352 2014-06-10  Richard Biener  <rguenther@suse.de>
34353
34354         PR middle-end/61456
34355         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
34356         Do not use the main variant for the type comparison.
34357         (ncr_compar): Likewise.
34358         (nonoverlapping_component_refs_p): Likewise.
34359
34360 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34361
34362         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
34363         REG_CFA_RESTORE mode.
34364
34365 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
34366
34367         * config/i386/i386.c (expand_vec_perm_pblendv): New.
34368         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
34369         expand_vec_perm_pblendv.
34370
34371 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34372
34373         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
34374         available.
34375         Simplify description of __crc32d and __crc32cd intrinsics.
34376         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
34377         availability.
34378
34379 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
34380
34381         PR lto/61334
34382         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
34383         * config.in: Regenerate.
34384         * configure: Likewise.
34385
34386 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
34387
34388         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
34389         and public vars.
34390         (intersect_static_var_sets): Remove.
34391         (propagate): Do not prune local statics.
34392
34393 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
34394
34395         PR fortran/60928
34396         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
34397         Set lastprivate_firstprivate even if omp_private_outer_ref
34398         langhook returns true.
34399         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
34400         langhook, call unshare_expr on new_var and call
34401         build_outer_var_ref to get the last argument.
34402
34403 2014-06-10  Marek Polacek  <polacek@redhat.com>
34404
34405         PR c/60988
34406         * doc/extend.texi: Add cindex for transparent_union.
34407
34408 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34409
34410         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
34411         init_symbolic_number ().
34412
34413 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
34414
34415         PR middle-end/61141
34416         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
34417         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
34418         (verify_rtl_sharing): Likewise.
34419
34420 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
34421
34422         PR c++/54442
34423         * tree.c (build_qualified_type): Use a canonical type for
34424         TYPE_CANONICAL.
34425
34426 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34427
34428         * config/arm/arm-modes.def: Remove XFmode.
34429
34430 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
34431
34432         PR target/61062
34433         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
34434         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
34435         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
34436         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
34437         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
34438         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
34439         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
34440         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
34441         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
34442
34443 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
34444
34445         * tree-core.h (tree_decl_with_vis): Remove section_name.
34446
34447 2014-06-09  Kito Cheng  <kito@0xlab.org>
34448
34449         * ira.c (ira): Don't call init_caller_save if LRA enabled
34450         since LRA use its own infrastructure to handle that.
34451
34452 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34453
34454         * symtab.c (dump_symtab_base): Update dumping.
34455         (symtab_make_decl_local): Clear only DECL_COMDAT.
34456         * tree-vect-data-refs.c (Check that variable is static before
34457         tampering with sections.
34458         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
34459         (cgraph_create_virtual_clone): Likewise.
34460         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
34461         (decl_section_name, set_decl_section_name): New accessors.
34462         (find_decls_types_r): Do not walk section name
34463         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
34464         (decl_comdat_group, decl_comdat_group_id): Constify.
34465         (decl_section_name, set_decl_section_name): Update.
34466         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
34467         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
34468         (cgraph_make_node_local_1): Clear section and comdat group.
34469         * cgraph.h (set_comdat_group): Sanity check.
34470         (get_section, set_section): New.
34471         * ipa-comdats.c (ipa_comdats): Use get_section.
34472         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
34473         * lto-streamer-out.c: Do not follow section names.
34474         * c-family/c-common.c (handle_section_attribute): Update.
34475         * lto-cgraph.c (lto_output_node): Output section.
34476         (lto_output_varpool_node): Likewise.
34477         (read_comdat_group): Rename to ...
34478         (read_identifier): ... this one.
34479         (read_string_cst): New function.
34480         (input_node, input_varpool_node): Input section names.
34481         * tree-emutls.c (get_emutls_init_templ_addr): Update.
34482         (new_emutls_decl): Update.
34483         (secname_for_decl): Check section names only of static vars.
34484         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
34485         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
34486         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
34487         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
34488         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
34489         * config/mcore/mcore.c (mcore_unique_section): Likewise.
34490         * config/mips/mips.c (mips16_build_function_stub): Likewise.
34491         * config/v850/v850.c (v850_insert_attributes): Likewise.
34492         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
34493         Likewise.
34494         (h8300_handle_tiny_data_attribute): Likewise.
34495         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
34496         (bfin_handle_l2_attribute): Likewise.
34497
34498 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34499
34500         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
34501         remove static initializer.
34502
34503 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34504
34505         * varasm.c (use_blocks_for_decl_p): Check symbol table
34506         instead of alias attribute.
34507         (place_block_symbol): Recurse on aliases.
34508
34509 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34510
34511         * ipa-visibility.c: Include varasm.h
34512         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
34513
34514 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34515
34516         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
34517         outputting aliases.
34518
34519 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
34520
34521         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
34522         from test_insn into GGC space escape via SET_SRC.
34523
34524 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
34525
34526         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
34527         call statement, if any.
34528         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
34529         statements, if any.  Tidy up.
34530
34531 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
34532
34533         PR target/61431
34534         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
34535         iterators, VSX_D that handles 64-bit types, and VSX_LE that
34536         handles swapping the two 64-bit double words on little endian
34537         systems.  Include V1TImode and optionally TImode in VSX_LE so that
34538         these types are properly swapped.  Change all of the insns and
34539         splits that do the 64-bit swaps to use VSX_LE.
34540         (vsx_le_perm_load_<mode>): Likewise.
34541         (vsx_le_perm_store_<mode>): Likewise.
34542         (splitters for little endian memory operations): Likewise.
34543         (vsx_xxpermdi2_le_<mode>): Likewise.
34544         (vsx_lxvd2x2_le_<mode>): Likewise.
34545         (vsx_stxvd2x2_le_<mode>): Likewise.
34546
34547 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
34548
34549         PR target/61423
34550         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
34551         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
34552         and corresponding splitters.  Zero extend general register
34553         or memory input operand to XMM temporary.  Enable for
34554         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
34555         (floatunssi<mode>2): Update expander predicate.
34556
34557 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
34558
34559         PR rtl-optimization/61325
34560         * lra-constraints.c (process_address_1): Check scale equal to one
34561         to prevent transformation: base + scale * index => base + new_reg.
34562
34563 2014-06-06  Richard Biener  <rguenther@suse.de>
34564
34565         PR tree-optimization/59299
34566         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
34567         a def operand.
34568         (nearest_common_dominator_of_uses): Likewise.
34569         (statement_sink_location): Adjust.  Support sinking loads.
34570
34571 2014-06-06  Martin Jambor  <mjambor@suse.cz>
34572
34573         * ipa-prop.c (get_place_in_agg_contents_list): New function.
34574         (build_agg_jump_func_from_list): Likewise.
34575         (determine_known_aggregate_parts): Renamed to
34576         determine_locally_known_aggregate_parts.  Moved some functionality
34577         to the two functions above, removed bound checks.
34578
34579 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
34580
34581         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
34582         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
34583         (aarch64_progress_pointer): Likewise.
34584         (aarch64_copy_one_part_and_move_pointers): Likewise.
34585         (aarch64_expand_movmen): Likewise.
34586         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
34587         * config/aarch64/aarch64.md (movmem<mode>): New.
34588
34589 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
34590
34591         * targhooks.c (default_add_stmt_cost): Call target specific
34592         hook instead of default one.
34593
34594 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34595
34596         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
34597         endianness instead of host endianness.
34598         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
34599         comments.
34600
34601 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
34602
34603         PR debug/53927
34604         * function.c (instantiate_decls): Process the saved static chain.
34605         (expand_function_start): If not optimizing, save the static chain
34606         onto the stack.
34607         * tree-nested.c (convert_all_function_calls): Always create the static
34608         chain for nested functions if not optimizing.
34609
34610 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
34611
34612         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
34613
34614 2014-06-06  Richard Biener  <rguenther@suse.de>
34615
34616         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
34617         (construct_init_block): Likewise.
34618         (construct_exit_block): Likewise.
34619         (pass_expand::execute): Likewise.
34620         * graphite.c (graphite_transforms): Replace check for current_loops
34621         with a check for > 1 loops.
34622         (pass_graphite_transforms::execute): Adjust.
34623         * ipa-split.c (split_function): Remove check for current_loops.
34624         * omp-low.c (expand_parallel_call): Likewise.
34625         (expand_omp_for_init_counts): Likewise.
34626         (extract_omp_for_update_vars): Likewise.
34627         (expand_omp_for_generic): Likewise.
34628         (expand_omp_sections): Likewise.
34629         (expand_omp_target): Likewise.
34630         * tracer.c (tail_duplicate): Likewise.
34631         (pass_tracer::execute): Likewise.
34632         * trans-mem.c (expand_transaction): Likewise.
34633         * tree-complex.c (expand_complex_div_wide): Likewise.
34634         * tree-eh.c (lower_resx): Likewise.
34635         (cleanup_empty_eh_merge_phis): Likewise.
34636         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
34637         current_loops with a check for > 1 loops.
34638         (pass_predcom::execute): Adjust.
34639         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
34640         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
34641         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
34642         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
34643         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
34644         * tree-switch-conversion.c (process_switch): Likewise.
34645         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
34646         * tree-vrp.c (vrp_visit_phi_node): Likewise.
34647         (execute_vrp): Likewise.
34648         * ubsan.c (ubsan_expand_null_ifn): Likewise.
34649
34650 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
34651
34652         * rtl.h (insn_location): Declare.
34653         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
34654         with UNKNOWN_LOCATION.
34655         * emit-rtl.c (insn_location): New function.
34656         * final.c (notice_source_line): Check that the instruction has a
34657         location before retrieving it and use insn_location.
34658         * modulo-sched.c (loop_single_full_bb_p): Likewise.
34659         * print-rtl.c (print_rtx): Likewise.
34660
34661 2014-06-06  Richard Biener  <rguenther@suse.de>
34662
34663         * passes.def: Move 2nd VRP pass before phi-only-cprop.
34664
34665 2014-06-06  Christian Bruel  <christian.bruel@st.com>
34666
34667         PR tree-optimization/43934
34668         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
34669         cost.
34670
34671 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
34672
34673         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
34674         return NO_REGS for extra address and memory constraints.  Handle
34675         operands that match (or are equivalent to something that matches)
34676         extra constant constraints.  Ignore other non-register operands.
34677
34678 2014-06-06  Alan Modra  <amodra@gmail.com>
34679
34680         PR target/61300
34681         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
34682         * doc/tm.texi: Regenerate.
34683         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
34684         Use throughout in place of REG_PARM_STACK_SPACE.
34685         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
34686         "incoming" param.  Pass to rs6000_function_parms_need_stack.
34687         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
34688         prototype_p when incoming.  Use function decl when incoming
34689         to handle K&R style functions.
34690         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
34691         (INCOMING_REG_PARM_STACK_SPACE): Define.
34692
34693 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
34694
34695         PR target/52472
34696         * cfgexpand.c (expand_debug_expr): Use address space of nested
34697         TREE_TYPE for ADDR_EXPR and MEM_REF.
34698
34699 2014-06-05  Jeff Law  <law@redhat.com>
34700
34701         PR tree-optimization/61289
34702         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
34703         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
34704         looking for those which match LHS.  All callers changed.
34705         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
34706         parameters and code which manipulated them.  All callers changed.
34707         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
34708         and DST_MAP parameters.  Simplify invalidation code by just calling
34709         invalidate_equivalences.  All callers changed.
34710         (thread_across_edge): Simplify now that we don't need to maintain
34711         the map of equivalences to invalidate.
34712
34713 2014-06-05  Kai Tietz  <ktietz@redhat.com>
34714             Richard Henderson  <rth@redhat.com>
34715
34716         PR target/46219
34717         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
34718         checking for !TARGET_X32.
34719         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
34720         (sibcall_intern): New define_insn, plus required peepholes.
34721         (sibcall_pop_intern): Likewise.
34722         (sibcall_value_intern): Likewise.
34723         (sibcall_value_pop_intern): Likewise.
34724
34725 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
34726
34727         * tree-inline.c (tree_function_versioning): Check DF info existence
34728         before accessing it.
34729
34730 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34731
34732         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
34733         frame_size.
34734         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
34735         aarch64_frame hard_fp_offset and frame_size.
34736         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
34737         frame_size; remove original_frame_size.
34738         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
34739         (aarch64_initial_elimination_offset): Remove frame_size and
34740         offset.  Use aarch64_frame frame_size.
34741
34742 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34743             Jiong Wang  <jiong.wang@arm.com>
34744             Renlin  <renlin.li@arm.com>
34745
34746         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
34747         initialization of R30 offset.  Update offset.  Iterate core
34748         regisers upto X30.  Remove X29, X30 specific code.
34749
34750 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34751             Jiong Wang  <jiong.wang@arm.com>
34752
34753         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
34754         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
34755         (aarch64_register_saved_on_entry): Adjust test.
34756
34757 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34758
34759         * config/aarch64/aarch64.h (machine_function): Move
34760         saved_varargs_size from here...
34761         (aarch64_frame): ... to here.
34762
34763         * config/aarch64/aarch64.c (aarch64_expand_prologue)
34764         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
34765         (aarch64_initial_elimination_offset)
34766         (aarch64_setup_incoming_varargs): Adjust location of
34767         saved_varargs_size.
34768
34769 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34770
34771         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
34772         layout comment.
34773
34774 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
34775             Prachi Godbole  <Prachi.Godbole@imgtec.com>
34776
34777         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
34778         mips32r5 entry to use PROCESSOR_P5600.
34779         * config/mips/mips-tables.opt: Regenerate.
34780         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
34781         * config/mips/mips.c (mips_fmadd_bypass): New function.
34782         (mips_rtx_cost_data): Add costs for p5600.
34783         (mips_issue_rate): Add support for p5600.
34784         (mips_multipass_dfa_lookahead): Likewise.
34785         * config/mips/mips.h (TUNE_P5600): New define.
34786         (TUNE_MACC_CHAINS): Add TUNE_P5600.
34787         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
34788         * config/mips/mips.md: Include p5600.md.
34789         (processor): Add p5600.
34790         * config/mips/p5600.md: New file.
34791
34792 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
34793
34794         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
34795         * config/i386/predicates.md (palignr_operand): New.
34796         Indicates if permutation is suitable for palignr instruction.
34797
34798 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
34799
34800         PR tree-optimization/61319
34801         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
34802         stmt belongs to loop.
34803
34804 2014-06-05  Richard Biener  <rguenther@suse.de>
34805
34806         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
34807         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
34808         (lookup_tmp_var): Adjust.
34809         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
34810
34811 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34812
34813         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
34814
34815 2014-06-05  Marek Polacek  <polacek@redhat.com>
34816
34817         PR c/49706
34818         * doc/invoke.texi: Document -Wlogical-not-parentheses.
34819
34820 2014-06-04  Tom de Vries  <tom@codesourcery.com>
34821
34822         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
34823         CONST_INT.
34824
34825 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
34826
34827         PR tree-optimization/61385
34828         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
34829
34830 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
34831
34832         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
34833         changed to use fatal_error.
34834         (main): Ensure lto_wrapper_cleanup is run atexit.
34835
34836 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34837
34838         * lra-constraints.c (valid_address_p): Move earlier in file.
34839         (address_eliminator): New structure.
34840         (satisfies_memory_constraint_p): New function.
34841         (satisfies_address_constraint_p): Likewise.
34842         (process_alt_operands, process_address, curr_insn_transform): Use them.
34843
34844 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34845
34846         * lra-int.h (lra_static_insn_data): Make operand_alternative a
34847         const pointer.
34848         (target_lra_int, default_target_lra_int, this_target_lra_int)
34849         (op_alt_data): Delete.
34850         * lra.h (lra_init): Delete.
34851         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
34852         (init_insn_code_data_once): Remove op_alt_data handling.
34853         (finish_insn_code_data_once): Likewise.
34854         (init_op_alt_data): Delete.
34855         (get_static_insn_data): Initialize operand_alternative to null.
34856         (free_insn_recog_data): Cast operand_alternative before freeing it.
34857         (setup_operand_alternative): Take the operand_alternative as
34858         parameter and assume it isn't already cached in the static
34859         insn data.
34860         (lra_set_insn_recog_data): Update accordingly.
34861         (lra_init): Delete.
34862         * ira.c (ira_init): Don't call lra_init.
34863         * target-globals.h (this_target_lra_int): Declare.
34864         (target_globals): Remove lra_int.
34865         (restore_target_globals): Update accordingly.
34866         * target-globals.c: Don't include lra-int.h.
34867         (default_target_globals, save_target_globals): Remove lra_int.
34868
34869 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34870
34871         * recog.h (operand_alternative): Convert reg_class, reject,
34872         matched and matches into bitfields.
34873         (preprocess_constraints): New overload.
34874         (preprocess_insn_constraints): New function.
34875         (preprocess_constraints): Take the insn as parameter.
34876         (recog_op_alt): Change into a pointer.
34877         (target_recog): Add x_op_alt.
34878         * recog.c (asm_op_alt): New variable.
34879         (recog_op_alt): Change into a pointer.
34880         (preprocess_constraints): New overload, replacing the old function
34881         definition with one that doesn't use global state.
34882         (preprocess_insn_constraints): New function.
34883         (preprocess_constraints): Use them.  Take the insn as parameter.
34884         Use asm_op_alt for asms.
34885         (recog_init): Free existing x_op_alt entries.
34886         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
34887         pointer const.
34888         (make_early_clobber_and_input_conflicts): Likewise.
34889         (process_bb_node_lives): Pass the insn to process_constraints.
34890         * reg-stack.c (check_asm_stack_operands): Likewise.
34891         (subst_asm_stack_regs): Likewise.
34892         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
34893         * regrename.c (build_def_use): Likewise.
34894         * sched-deps.c (sched_analyze_insn): Likewise.
34895         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
34896         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
34897         (note_invalid_constants): Likewise.
34898         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34899         (ix86_legitimate_combined_insn): Make operand_alternative pointer
34900         const.
34901
34902 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34903
34904         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
34905         * ira-lives.c (check_and_make_def_conflict): Check for disabled
34906         alternatives.
34907         (make_early_clobber_and_input_conflicts): Likewise.
34908         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34909
34910 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34911
34912         * recog.h (alternative_class): New function.
34913         (which_op_alt): Return a const recog_op_alt.
34914         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
34915         (subst_asm_stack_regs): Likewise.
34916         * config/arm/arm.c (note_invalid_constants): Likewise.
34917         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
34918         the operand_alternative; use alternative class instead.
34919         * sel-sched.c (get_reg_class): Likewise.
34920         * regrename.c (build_def_use): Likewise.
34921         (hide_operands, restore_operands, record_out_operands): Update type
34922         accordingly.
34923
34924 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34925
34926         * recog.h (recog_op_alt): Convert to a flat array.
34927         (which_op_alt): New function.
34928         * recog.c (recog_op_alt): Convert to a flat array.
34929         (preprocess_constraints): Update accordingly, grouping all
34930         operands of the same alternative together, rather than the
34931         other way around.
34932         * ira-lives.c (check_and_make_def_conflict): Likewise.
34933         (make_early_clobber_and_input_conflicts): Likewise.
34934         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34935         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
34936         (subst_asm_stack_regs): Likewise.
34937         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
34938         * regrename.c (hide_operands, record_out_operands): Likewise.
34939         (build_def_use): Likewise.
34940         * sel-sched.c (get_reg_class): Likewise.
34941         * config/arm/arm.c (note_invalid_constants): Likewise.
34942
34943 2014-06-04  Jason Merrill  <jason@redhat.com>
34944
34945         PR c++/51253
34946         PR c++/61382
34947         * gimplify.c (gimplify_arg): Non-static.
34948         * gimplify.h: Declare it.
34949
34950 2014-06-04  Richard Biener  <rguenther@suse.de>
34951
34952         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
34953         TREE_PUBLIC and DECL_EXTERNAL decls.
34954
34955 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
34956
34957         * regcprop.c (copyprop_hardreg_forward_1): Account for
34958         HARD_REGNO_CALL_PART_CLOBBERED.
34959
34960 2014-06-04  Richard Biener  <rguenther@suse.de>
34961
34962         * configure.ac: Check whether the underlying type of int64_t
34963         is long or long long.
34964         * configure: Regenerate.
34965         * config.in: Likewise.
34966         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
34967         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
34968
34969 2014-06-04  Richard Biener  <rguenther@suse.de>
34970
34971         PR tree-optimization/60098
34972         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
34973         we hit a kill.
34974         (dse_optimize_stmt): Simplify, now that we found a kill
34975         earlier.
34976
34977 2014-06-04  Richard Biener  <rguenther@suse.de>
34978
34979         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
34980         of accesses with non-invariant address.
34981
34982 2014-06-04  Martin Liska  <mliska@suse.cz>
34983
34984         * cgraph.h (cgraph_make_wrapper): New function introduced.
34985         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
34986         * ipa-inline.h (inline_analyze_function): The function is global.
34987         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
34988
34989 2014-06-04  Martin Liska  <mliska@suse.cz>
34990
34991         * tree.h (private_lookup_attribute_starting): New function.
34992         (lookup_attribute_starting): Likewise.
34993         * tree.c (private_lookup_attribute_starting): Likewise.
34994
34995 2014-06-04  Martin Liska  <mliska@suse.cz>
34996
34997         * cgraph.h (expand_thunk): New argument added.
34998         (address_taken_from_non_vtable_p): New global function.
34999         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
35000         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
35001         * cgraphunit.c (analyze_function): Likewise.
35002         (assemble_thunks_and_aliases): Argument added to call.
35003         (expand_thunk): New argument forces to produce GIMPLE thunk.
35004
35005 2014-06-04  Martin Liska  <mliska@suse.cz>
35006
35007         * coverage.h (coverage_compute_cfg_checksum): Argument added.
35008         * coverage.c (coverage_compute_cfg_checksum): Likewise.
35009         * profile.c (branch_prob): Likewise.
35010
35011 2014-06-04  Martin Jambor  <mjambor@suse.cz>
35012
35013         PR ipa/61340
35014         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
35015         handler for switch on an ipa_ref_use enum.
35016         * ipa-reference.c (analyze_function): Likewise.
35017
35018 2014-06-04  Kai Tietz  <ktietz@redhat.com>
35019
35020         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
35021         from old call-instruction.
35022
35023 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
35024
35025         * config/aarch64/aarch64.c (aarch64_classify_address)
35026         (aarch64_legitimize_reload_address): Support full addressing modes
35027         for vector modes.
35028         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
35029         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
35030
35031 2014-06-03  Andrew Pinski  <apinski@cavium.com>
35032
35033         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
35034         for OP0.
35035
35036 2014-06-03  Andrew Pinski  <apinski@cavium.com>
35037
35038         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
35039         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
35040
35041 2014-06-03  Kai Tietz  <ktietz@redhat.com>
35042
35043         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
35044         for 64-bit ms-abi.
35045
35046 2014-06-03  Dehao Chen  <dehao@google.com>
35047
35048         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
35049         the same loop.
35050
35051 2014-06-03  Marek Polacek  <polacek@redhat.com>
35052
35053         PR c/60439
35054         * doc/invoke.texi: Document -Wswitch-bool.
35055         * function.c (stack_protect_epilogue): Cast controlling expression of
35056         the switch to int.
35057         * gengtype.c (walk_type): Generate switch expression with its
35058         controlling expression cast to int.
35059
35060 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
35061
35062         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
35063         and attiny841.
35064         * config/avr/avr-tables.opt: Regenerate.
35065         * config/avr/t-multilib: Regenerate.
35066         * doc/avr-mmcu.texi: Regenerate.
35067
35068 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
35069             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
35070
35071         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
35072         (ata6617c, ata664251): Add new avr35 devices.
35073         (ata6612c): Add new avr4 device.
35074         (ata6613c, ata6614q): Add new avr5 devices.
35075         * config/avr/avr-tables.opt: Regenerate.
35076         * config/avr/t-multilib: Regenerate.
35077         * doc/avr-mmcu.texi: Regenerate.
35078
35079 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35080
35081         * gcc/config/aarch64/aarch64-builtins.c
35082         (aarch64_types_binop_ssu_qualifiers): New static data.
35083         (TYPES_BINOP_SSU): Define.
35084         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
35085         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
35086         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
35087         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
35088         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
35089         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
35090         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
35091         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
35092         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
35093         suffix to builtin function name, remove cast.
35094         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
35095         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
35096         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
35097
35098 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35099
35100         * gcc/config/aarch64/aarch64-builtins.c
35101         (aarch64_types_binop_uus_qualifiers,
35102         aarch64_types_shift_to_unsigned_qualifiers,
35103         aarch64_types_unsigned_shiftacc_qualifiers): Define.
35104         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
35105         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
35106         sqshlu_n, uqshl_n): Update qualifiers.
35107         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
35108         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
35109         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
35110         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
35111         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
35112         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
35113         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
35114         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
35115         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
35116         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
35117         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
35118         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
35119         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
35120         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
35121         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
35122         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
35123         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
35124         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
35125         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
35126         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
35127         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
35128         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
35129         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
35130         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
35131         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
35132         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
35133         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
35134
35135 2014-06-03  Teresa Johnson  <tejohnson@google.com>
35136
35137         * tree-sra.c (modify_function): Record caller nodes after rebuild.
35138
35139 2014-06-02  Jason Merrill  <jason@redhat.com>
35140
35141         PR c++/61020
35142         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
35143
35144 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35145
35146         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
35147         location == 0.
35148
35149 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35150
35151         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
35152         New pattern.
35153         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
35154         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
35155         * config/aarch64/iterators.md (REVERSE): New iterator.
35156         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
35157         (rev_op): New int_attribute.
35158         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
35159         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
35160         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
35161         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
35162         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
35163         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
35164         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
35165         Replace temporary __asm__ with __builtin_shuffle.
35166
35167 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
35168
35169         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
35170         mips64r5.
35171         * config/mips/mips-tables.opt: Regenerate.
35172         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
35173         to use mips_isa_rev rather than ISA_MIPS32R2.
35174         * config/mips/mips.h (ISA_MIPS32R3): New define.
35175         (ISA_MIPS32R5): New define.
35176         (ISA_MIPS64R3): New define.
35177         (ISA_MIPS64R5): New define.
35178         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
35179         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
35180         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
35181         and mips64r5.
35182         (MIPS_ISA_SYNCI_SPEC): Likewise.
35183         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
35184         (LINK_SPEC): Added mips32r3 and mips32r5.
35185         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
35186         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
35187         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
35188         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
35189         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
35190         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
35191         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
35192
35193 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
35194
35195         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
35196         options.
35197         * config/mips/mips.opt (mxpa): New option.
35198         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
35199         assembler.
35200
35201 2014-06-03  Martin Jambor  <mjambor@suse.cz>
35202
35203         PR ipa/61160
35204         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
35205         thunks.
35206
35207 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35208
35209         PR tree-optimization/61328
35210         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
35211         initialization from find_bswap_or_nop_1.
35212         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
35213         in source_expr2 before using the size value the function sets. Also
35214         make use of init_symbolic_number () in both the old place and
35215         find_bswap_or_nop_load () to avoid reading uninitialized memory when
35216         doing recursion in the GIMPLE_BINARY_RHS case.
35217
35218 2014-06-03  Richard Biener  <rguenther@suse.de>
35219
35220         PR tree-optimization/61383
35221         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
35222         stmts can't trap.
35223
35224 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
35225
35226         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
35227         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
35228         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
35229         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
35230         in this file.
35231         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
35232         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
35233         * system.h: ...here and make it unconditional.
35234         * target.def (conditional_register_usage): Mention
35235         define_register_constraint instead of old-style constraint macros.
35236         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
35237         * doc/tm.texi: Regenerate.
35238         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
35239         protected by !USE_MD_CONSTRAINTS.
35240         * config/frv/frv.md: Remove quote from old version of documentation.
35241         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
35242         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
35243         CONST_DOUBLE_OK_FOR_LETTER.
35244         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
35245
35246 2014-06-02  Andrew Pinski  <apinski@cavium.com>
35247
35248         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
35249         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
35250         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
35251         file whose name depends on -mabi= and -mbig-endian.
35252         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
35253         Handle LP64 better and handle ilp32 too.
35254         (MULTILIB_OPTIONS): Delete.
35255         (MULTILIB_DIRNAMES): Delete.
35256
35257 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
35258
35259         * expr.h: Remove prototypes of functions defined in builtins.c.
35260         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
35261         Remove prototypes of functions defined in builtins.c.
35262         * builtins.h: Update prototype list to include all exported functions.
35263         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
35264         no_c99_libc_has_function): Move to targhooks.c
35265         (build_string_literal, build_call_expr_loc_array,
35266         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
35267         to tree.c.
35268         (expand_builtin_object_size, fold_builtin_object_size): Make static.
35269         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
35270         no_c99_libc_has_function): Relocate from builtins.c.
35271         * tree.c: Include builtins.h.
35272         (build_call_expr_loc_array, build_call_expr_loc_vec,
35273         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
35274         from builtins.c.
35275         * fold-const.h (fold_fma): Move prototype to builtins.h.
35276         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
35277         * asan.c: Include builtins.h.
35278         * cfgexpand.c: Likewise.
35279         * convert.c: Likewise.
35280         * emit-rtl.c: Likewise.
35281         * except.c: Likewise.
35282         * expr.c: Likewise.
35283         * fold-const.c: Likewise.
35284         * gimple-fold.c: Likewise.
35285         * gimple-ssa-strength-reduction.c: Likewise.
35286         * gimplify.c: Likewise.
35287         * ipa-inline.c: Likewise.
35288         * ipa-prop.c: Likewise.
35289         * lto-streamer-out.c: Likewise.
35290         * stmt.c: Likewise.
35291         * tree-inline.c: Likewise.
35292         * tree-object-size.c: Likewise.
35293         * tree-sra.c: Likewise.
35294         * tree-ssa-ccp.c: Likewise.
35295         * tree-ssa-forwprop.c: Likewise.
35296         * tree-ssa-loop-ivcanon.c: Likewise.
35297         * tree-ssa-loop-ivopts.c: Likewise.
35298         * tree-ssa-math-opts.c: Likewise.
35299         * tree-ssa-reassoc.c: Likewise.
35300         * tree-ssa-threadedge.c: Likewise.
35301         * tree-streamer-in.c: Likewise.
35302         * tree-vect-data-refs.c: Likewise.
35303         * tree-vect-patterns.c: Likewise.
35304         * tree-vect-stmts.c: Likewise.
35305         * config/aarch64/aarch64.c: Likewise.
35306         * config/alpha/alpha.c: Likewise.
35307         * config/arc/arc.c: Likewise.
35308         * config/arm/arm.c: Likewise.
35309         * config/avr/avr.c: Likewise.
35310         * config/bfin/bfin.c: Likewise.
35311         * config/c6x/c6x.c: Likewise.
35312         * config/cr16/cr16.c: Likewise.
35313         * config/cris/cris.c: Likewise.
35314         * config/epiphany/epiphany.c: Likewise.
35315         * config/fr30/fr30.c: Likewise.
35316         * config/frv/frv.c: Likewise.
35317         * config/h8300/h8300.c: Likewise.
35318         * config/i386/i386.c: Likewise.
35319         * config/i386/winnt.c: Likewise.
35320         * config/ia64/ia64.c: Likewise.
35321         * config/iq2000/iq2000.c: Likewise.
35322         * config/lm32/lm32.c: Likewise.
35323         * config/m32c/m32c.c: Likewise.
35324         * config/m32r/m32r.c: Likewise.
35325         * config/m68k/m68k.c: Likewise.
35326         * config/mcore/mcore.c: Likewise.
35327         * config/mep/mep.c: Likewise.
35328         * config/microblaze/microblaze.c: Likewise.
35329         * config/mips/mips.c: Likewise.
35330         * config/mmix/mmix.c: Likewise.
35331         * config/mn10300/mn10300.c: Likewise.
35332         * config/moxie/moxie.c: Likewise.
35333         * config/msp430/msp430.c: Likewise.
35334         * config/nds32/nds32.c: Likewise.
35335         * config/pa/pa.c: Likewise.
35336         * config/pdp11/pdp11.c: Likewise.
35337         * config/picochip/picochip.c: Likewise.
35338         * config/rl78/rl78.c: Likewise.
35339         * config/rs6000/rs6000.c: Likewise.
35340         * config/rx/rx.c: Likewise.
35341         * config/s390/s390.c: Likewise.
35342         * config/score/score.c: Likewise.
35343         * config/sh/sh.c: Likewise.
35344         * config/sparc/sparc.c: Likewise.
35345         * config/spu/spu.c: Likewise.
35346         * config/stormy16/stormy16.c: Likewise.
35347         * config/tilegx/tilegx.c: Likewise.
35348         * config/tilepro/tilepro.c: Likewise.
35349         * config/v850/v850.c: Likewise.
35350         * config/vax/vax.c: Likewise.
35351         * config/xtensa/xtensa.c: Likewise.
35352
35353 2014-06-02  Jeff Law  <law@redhat.com>
35354
35355         PR rtl-optimization/61094
35356         * ree.c (combine_reaching_defs): Do not reextend an insn if it
35357         was marked as do_no_reextend.  If a copy is needed to eliminate
35358         an extension, then mark it as do_not_reextend.
35359
35360 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35361
35362         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
35363
35364 2014-06-02  Richard Henderson  <rth@redhat.com>
35365
35366         PR target/61336
35367         * config/alpha/alpha.c (print_operand_address): Allow symbolic
35368         addresses inside asms.  Use output_operand_lossage instead of
35369         gcc_unreachable.
35370
35371 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
35372
35373         PR target/61239
35374         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
35375         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
35376
35377 2014-06-02  Tom de Vries  <tom@codesourcery.com>
35378
35379         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
35380         case that x has VOIDmode.
35381
35382 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
35383
35384         * varasm.c (copy_constant): Delete function.
35385         (build_constant_desc): Don't call it.
35386
35387 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35388
35389         PR target/61154
35390         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
35391         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
35392         with immediate_operand.
35393
35394 2014-06-02  Andreas Schwab  <schwab@suse.de>
35395
35396         * config/ia64/ia64.c
35397         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
35398         pending_data_specs first.
35399
35400 2014-06-02  Richard Biener  <rguenther@suse.de>
35401
35402         PR tree-optimization/61378
35403         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
35404         valueized_anything.
35405
35406 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
35407
35408         * config/i386/constraints.md (Bw): Rename from 'w'.
35409         (Bz): Rename from 'z'.
35410         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
35411
35412 2014-06-01  Kai Tietz  <ktietz@redhat.com>
35413
35414         PR target/61377
35415         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
35416         * config/i386/i386.md (sibcall_insn_operand): Use Bs
35417         instead of m constraint.
35418
35419 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
35420
35421         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
35422         a separate alternative where the scratch operand 2 is marked as
35423         early clobber.
35424
35425 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
35426
35427         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
35428         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
35429         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
35430         and __builtins_arm_get_fpscr.
35431         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
35432         __builtins_arm_get_fpscr.
35433         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
35434         __builtins_arm_ldfpscr.
35435         (arm_atomic_assign_expand_fenv): New function.
35436         * config/arm/vfp.md (set_fpscr): New pattern.
35437         (get_fpscr) : Likewise.
35438         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
35439         VUNSPEC_SET_FPSCR.
35440         * doc/extend.texi (AARCH64 Built-in Functions) : Document
35441         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
35442
35443 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
35444
35445         * asan.c (report_error_func): Add SLOW_P argument, use
35446         BUILT_IN_ASAN_*_N if set.
35447         (build_check_stmt): Likewise.
35448         (instrument_derefs): If T has insufficient alignment,
35449         force same handling as for odd sizes.
35450
35451         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
35452         BUILT_IN_ASAN_REPORT_STORE_N): New.
35453         * asan.c (struct asan_mem_ref): Change access_size type to
35454         HOST_WIDE_INT.
35455         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
35456         update_mem_ref_hash_table): Likewise.
35457         (asan_mem_ref_hasher::hash): Hash in a HWI.
35458         (report_error_func): Change size_in_bytes argument to HWI.
35459         Use *_N builtins if size_in_bytes is larger than 16 or not power of
35460         two.
35461         (build_shadow_mem_access): New function.
35462         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
35463         Handle size_in_bytes not power of two or larger than 16.
35464         (instrument_derefs): Don't give up if size_in_bytes is not
35465         power of two or is larger than 16.
35466
35467 2014-05-30  Kai Tietz  <ktietz@redhat.com>
35468
35469         PR target/60104
35470         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
35471         for sibling-tail-calls.
35472         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
35473         to its use.
35474         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
35475         (sibcall_insn_operand): Add check for sibcall_memory_operand.
35476
35477 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
35478
35479         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
35480         * config/avr/avr-tables.opt: Regenerate.
35481         * config/avr/t-multilib: Regenerate.
35482         * doc/avr-mmcu.texi: Regenerate.
35483
35484 2014-05-30  Ian Lance Taylor  <iant@google.com>
35485
35486         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
35487         target("sse").
35488
35489 2014-05-30  Tom de Vries  <tom@codesourcery.com>
35490
35491         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
35492         Redefine as true.
35493
35494 2014-05-30  Tom de Vries  <tom@codesourcery.com>
35495
35496         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35497         * lra.c (initialize_lra_reg_info_element): Add init of
35498         actual_call_used_reg_set field.
35499         (lra): Call lra_create_live_ranges before lra_inheritance for
35500         -fuse-caller-save.
35501         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35502         -fuse-caller-save.
35503         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
35504         instead of call_used_reg_set for -fuse-caller-save.
35505         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35506
35507 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35508
35509         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
35510         to mov_imm.
35511         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
35512
35513 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
35514
35515         * ira.c (ira_get_dup_out_num): Check for output operands at
35516         the start of the loop.  Handle cases where an included alternative
35517         follows an excluded one.
35518
35519 2014-05-29  Mike Stump  <mikestump@comcast.net>
35520
35521         PR debug/61352
35522         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
35523         post ld passes when lto is used.
35524
35525 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
35526
35527         PR rtl-optimization/61325
35528         * lra-constraints.c (process_address): Rename to process_address_1.
35529         (process_address): New function.
35530
35531 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
35532
35533         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
35534         TYPES_BINOPV): New static data.
35535         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
35536         New builtin.
35537         * config/aarch64/aarch64-simd.md (aarch64_ext,
35538         aarch64_im_lane_boundsi): New patterns.
35539         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
35540         patterns for EXT.
35541         (aarch64_evpc_ext): New function.
35542
35543         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
35544
35545         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
35546         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
35547         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
35548         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
35549         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
35550
35551 2014-05-29  Tom de Vries  <tom@codesourcery.com>
35552
35553         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
35554
35555 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
35556             Richard Sandiford  <rdsandiford@googlemail.com>
35557
35558         * arm/iterators.md (shiftable_ops): New code iterator.
35559         (t2_binop0, arith_shift_insn): New code attributes.
35560         * arm/predicates.md (shift_nomul_operator): New predicate.
35561         * arm/arm.md (insn_enabled): Delete.
35562         (enabled): Remove insn_enabled test.
35563         (*arith_shiftsi): Delete.  Replace with ...
35564         (*<arith_shift_insn>_multsi): ... new pattern.
35565         (*<arith_shift_insn>_shiftsi): ... new pattern.
35566         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
35567
35568 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
35569             Tom de Vries  <tom@codesourcery.com>
35570
35571         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
35572         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
35573         clobber.
35574         (mips_split_call): Use POST_CALL_TMP_REG.
35575         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
35576
35577 2014-05-29  Tom de Vries  <tom@codesourcery.com>
35578
35579         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
35580         with #ifdef STACK_REGS.
35581
35582 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
35583
35584         * varasm.c (get_variable_section): Walk aliases.
35585         (place_block_symbol): Walk aliases.
35586
35587 2014-05-28  Tom de Vries  <tom@codesourcery.com>
35588
35589         Revert:
35590         2014-05-28  Tom de Vries  <tom@codesourcery.com>
35591
35592         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35593         * lra.c (initialize_lra_reg_info_element): Add init of
35594         actual_call_used_reg_set field.
35595         (lra): Call lra_create_live_ranges before lra_inheritance for
35596         -fuse-caller-save.
35597         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35598         -fuse-caller-save.
35599         * lra-constraints.c (need_for_call_save_p): Use
35600         actual_call_used_reg_set instead of call_used_reg_set for
35601         -fuse-caller-save.
35602         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35603
35604 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
35605
35606         * doc/md.texi: Document that the % constraint character must
35607         be at the beginning of the string.
35608         * genoutput.c (validate_insn_alternatives): Check that '=',
35609         '+' and '%' only appear at the beginning of a constraint.
35610         * ira.c (commutative_constraint_p): Delete.
35611         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
35612         at the start of the string.
35613         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
35614         duplicate '='s.
35615         * config/arm/neon.md (bicdi3_neon): Likewise.
35616         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
35617         (slt_si, sltu_si): Likewise.
35618         * config/vax/vax.md (sbcdi3): Likewise.
35619         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
35620         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
35621         (mul64): Move '%' to beginning of constraint.
35622         * config/arm/arm.md (*xordi3_insn): Likewise.
35623         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
35624         (xorsi3): Likewise.
35625
35626 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
35627
35628         * doc/md.texi: Document the restrictions on the "enabled" attribute.
35629
35630 2014-05-28  Jason Merrill  <jason@redhat.com>
35631
35632         PR c++/47202
35633         * cgraph.h (symtab_node::get_comdat_group_id): New.
35634         * cgraphunit.c (analyze_functions): Call it.
35635         * symtab.c (dump_symtab_node): Likewise.
35636         * tree.c (decl_comdat_group_id): New.
35637         * tree.h: Declare it.
35638         * lto-streamer-out.c (write_symbol): Use it.
35639         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
35640
35641 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
35642
35643         PR bootstrap/PR61146
35644         * wide-int.cc: Do not include longlong.h when compiling with clang.
35645
35646 2014-05-28  Richard Biener  <rguenther@suse.de>
35647
35648         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
35649         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
35650         (vrp_visit_assignment_or_call): Print less vertical space.
35651         (vrp_visit_stmt): Likewise.
35652         (vrp_visit_phi_node): Likewise.  For a PHI argument with
35653         VR_VARYING range consider recording it as copy.
35654
35655 2014-05-28  Richard Biener  <rguenther@suse.de>
35656
35657         Revert
35658         2014-05-28  Richard Biener  <rguenther@suse.de>
35659
35660         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
35661
35662 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
35663
35664         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
35665         sufficiently aligned and an offset is used at the same time.
35666         (expand_expr_real_1): Likewise.
35667
35668 2014-05-28  Richard Biener  <rguenther@suse.de>
35669
35670         PR middle-end/61045
35671         * fold-const.c (fold_comparison): When folding
35672         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
35673         the sign of the remaining constant operand stays the same.
35674
35675 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
35676
35677         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
35678         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
35679         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
35680         to the assembler.
35681         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
35682         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
35683         (m32bit-doubles) Likewise.
35684         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
35685         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
35686         option for RL78.
35687
35688 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35689
35690         * configure.ac ($gcc_cv_ld_clearcap): New test.
35691         * configure: Regenerate.
35692         * config.in: Regenerate.
35693         * config/sol2.opt (mclear-hwcap): New option.
35694         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
35695         * config/sol2-clearcap.map: Moved here from
35696         testsuite/gcc.target/i386/clearcap.map.
35697         * config/sol2-clearcapv2.map: Move here from
35698         gcc.target/i386/clearcapv2.map.
35699         * config/t-sol2 (install): Depend on install-clearcap-map.
35700         (install-clearcap-map): New target.
35701         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
35702         -mclear-hwcap.
35703
35704 2014-05-28  Richard Biener  <rguenther@suse.de>
35705
35706         * hwint.h (*_HALF_WIDE_INT*): Move to ...
35707         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
35708         ... here and remove the rest.
35709         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
35710
35711 2014-05-28  Richard Biener  <rguenther@suse.de>
35712
35713         PR tree-optimization/61335
35714         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
35715         new range fails, drop to varying.
35716
35717 2014-05-28  Olivier Hainque  <hainque@adacore.com>
35718
35719         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
35720         (CPP_SPEC): Add entry for -mcpu=8548.
35721         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
35722         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
35723
35724 2014-05-28  Tom de Vries  <tom@codesourcery.com>
35725
35726         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35727         * lra.c (initialize_lra_reg_info_element): Add init of
35728         actual_call_used_reg_set field.
35729         (lra): Call lra_create_live_ranges before lra_inheritance for
35730         -fuse-caller-save.
35731         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35732         -fuse-caller-save.
35733         * lra-constraints.c (need_for_call_save_p): Use
35734         actual_call_used_reg_set instead of call_used_reg_set for
35735         -fuse-caller-save.
35736         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35737
35738 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
35739             Tom de Vries  <tom@codesourcery.com>
35740
35741         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
35742         to gccoptlist.
35743         (@item -fuse-caller-save): New item.
35744
35745 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
35746             Tom de Vries  <tom@codesourcery.com>
35747
35748         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
35749         OPT_fuse_caller_save.
35750
35751 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
35752             Tom de Vries  <tom@codesourcery.com>
35753
35754         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
35755         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
35756         get_call_reg_set_usage.
35757         * resource.c (mark_set_resources, mark_target_live_regs): Use
35758         get_call_reg_set_usage.
35759         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
35760         field.
35761         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
35762         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
35763         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35764         * ira-build.c (ira_create_allocno): Init
35765         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35766         (create_cap_allocno, propagate_allocno_info)
35767         (propagate_some_info_from_allocno)
35768         (copy_info_to_removed_store_destinations): Handle
35769         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35770         * ira-costs.c (ira_tune_allocno_costs): Use
35771         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
35772
35773 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
35774             Tom de Vries  <tom@codesourcery.com>
35775
35776         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
35777         and function_used_regs_valid fields.
35778         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
35779         find_all_hard_reg_sets.
35780         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
35781         (get_call_reg_set_usage): New function.
35782         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
35783         * regs.h (get_call_reg_set_usage): Declare.
35784
35785 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
35786
35787         PR libgcc/61152
35788         * config/dbx.h (License): Add Runtime Library Exception.
35789         * config/newlib-stdint.h (License): Same.
35790         * config/rtems.h (License): Same
35791         * config/initfini-array.h (License): Same
35792         * config/v850/v850.h (License): Same.
35793         * config/v850/v850-opts.h (License): Same
35794         * config/v850/rtems.h (License): Same.
35795
35796 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
35797
35798         PR target/61044
35799         * doc/extend.texi (Local Labels): Note that label differences are
35800         not supported for AVR.
35801
35802 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
35803             Olivier Hainque  <hainque@adacore.com>
35804
35805         * rtl.h (set_for_reg_notes): Declare.
35806         * emit-rtl.c (set_for_reg_notes): New function.
35807         (set_unique_reg_note): Use it.
35808         * optabs.c (add_equal_note): Likewise
35809
35810 2014-05-27  Andrew Pinski  <apinski@cavium.com>
35811
35812         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
35813         Use <w> for the register in assembly template.
35814         (stack_protect_test): Use the mode of operands[0] for the result.
35815         (stack_protect_test_<mode>): Use <w> for the register
35816         in assembly template.
35817
35818 2014-05-27  DJ Delorie  <dj@redhat.com>
35819
35820         * config/rx/rx.c (add_vector_labels): New.
35821         (rx_output_function_prologue): Call it.
35822         (rx_handle_func_attribute): Don't require empty arguments.
35823         (rx_handle_vector_attribute): New.
35824         (rx_attribute_table): Add "vector" attribute.
35825         * doc/extend.texi (interrupt, vector): Document new/changed
35826         RX-specific attributes.
35827
35828         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
35829
35830 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
35831
35832         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
35833         predicate to detect a negative quotient.
35834
35835 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
35836
35837         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
35838         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
35839         Add X - Y CMP 0 to X CMP Y transformation.
35840         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
35841
35842 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
35843
35844         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
35845         before printing.
35846
35847 2014-05-27  Steve Ellcey  <sellcey@mips.com>
35848
35849         * config/mips/mips.c: Add include of cgraph.h.
35850
35851 2014-05-27  Richard Biener  <rguenther@suse.de>
35852
35853         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
35854
35855 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
35856
35857         PR libgcc/61152
35858         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
35859         * config/arm/arm-cores.def (License): Same.
35860         * config/arm/arm-opts.h (License): Same.
35861         * config/arm/aout.h (License): Same.
35862         * config/arm/bpabi.h (License): Same.
35863         * config/arm/elf.h (License): Same.
35864         * config/arm/linux-elf.h (License): Same.
35865         * config/arm/linux-gas.h (License): Same.
35866         * config/arm/netbsd-elf.h (License): Same.
35867         * config/arm/uclinux-eabi.h (License): Same.
35868         * config/arm/uclinux-elf.h (License): Same.
35869         * config/arm/vxworks.h (License): Same.
35870
35871 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35872
35873         * config/arm/neon.md (neon_bswap<mode>): New pattern.
35874         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
35875         (arm_init_neon_builtins): Handle NEON_BSWAP.
35876         Define required type nodes.
35877         (arm_expand_neon_builtin): Handle NEON_BSWAP.
35878         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
35879         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
35880         * config/arm/iterators.md (VDQHSD): New mode iterator.
35881
35882 2014-05-27  Richard Biener  <rguenther@suse.de>
35883
35884         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
35885         Try using literal operands when comparing value-ranges failed.
35886
35887 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
35888
35889         * ira.c (commutative_operand): Adjust for change to recog_data.
35890         [Missing from previous commit.]
35891
35892 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
35893
35894         * system.h (TEST_BIT): New macro.
35895         * recog.h (alternative_mask): New type.
35896         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
35897         (recog_data_d): Replace alternative_enabled_p array with
35898         enabled_alternatives.
35899         (target_recog): New structure.
35900         (default_target_recog, this_target_recog): Declare.
35901         (get_enabled_alternatives, recog_init): Likewise.
35902         * recog.c (default_target_recog, this_target_recog): New variables.
35903         (get_enabled_alternatives): New function.
35904         (extract_insn): Use it.
35905         (recog_init): New function.
35906         (preprocess_constraints, constrain_operands): Adjust for change to
35907         recog_data.
35908         * postreload.c (reload_cse_simplify_operands): Likewise.
35909         * reload.c (find_reloads): Likewise.
35910         * ira-costs.c (record_reg_classes): Likewise.
35911         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
35912         all alternatives after a disabled one would be skipped.
35913         (ira_implicitly_set_insn_hard_regs): Likewise.
35914         * ira.c (ira_setup_alts): Adjust for change to recog_data.
35915         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
35916         with enabled_alternatives.
35917         * lra.c (free_insn_recog_data): Update accordingly.
35918         (lra_update_insn_recog_data): Likewise.
35919         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
35920         * lra-constraints.c (process_alt_operands): Likewise.  Handle
35921         only_alternative as part of the enabled mask.
35922         * target-globals.h (this_target_recog): Declare.
35923         (target_globals): Add a recog field.
35924         (restore_target_globals): Restore this_target_recog.
35925         * target-globals.c: Include recog.h.
35926         (default_target_globals): Initialize recog field.
35927         (save_target_globals): Likewise.
35928         * reginfo.c (reinit_regs): Call recog_init.
35929         * toplev.c (backend_init_target): Likewise.
35930
35931 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
35932
35933         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
35934         rather than any named insn's code.
35935
35936 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
35937
35938         PR libgcc/61152
35939         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
35940         * config/arm/arm-cores.def (License): Same.
35941
35942 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
35943
35944         * tree.h (decl_comdat_group): Declare.
35945         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
35946         * tree.c (decl_comdat_group): Here.
35947
35948 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
35949
35950         PR rtl-optimization/61222
35951         * combine.c (simplify_shift_const_1): When moving a PLUS outside
35952         the shift, truncate the PLUS operand to the result mode.
35953
35954 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
35955
35956         PR target/61271
35957         * config/i386/i386.c (ix86_rtx_costs)
35958         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
35959         Fix condition.
35960
35961 2014-05-26  Martin Jambor  <mjambor@suse.cz>
35962
35963         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
35964         subreg uses.
35965
35966 2014-05-26  Richard Biener  <rguenther@suse.de>
35967
35968         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
35969         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
35970         Provide specializations.
35971         (wi::int_traits <HOST_WIDE_INT>,
35972         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
35973
35974 2014-05-26  Alan Modra  <amodra@gmail.com>
35975
35976         PR target/61098
35977         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
35978         params and return a bool.  Remove dead code.  Update comment.
35979         Assert we have a const_int source.  Remove bogus code from
35980         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
35981         handling of constants > 2G and reg_equal note, from..
35982         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
35983         return value.  Update comment.  If we can, use a new pseudo
35984         for intermediate calculations.
35985         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
35986         prototype.
35987         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
35988         call to rs6000_emit_set_const in splitter.
35989         (movdi_internal64+2, +3): Likewise.
35990
35991 2014-05-26  Richard Biener  <rguenther@suse.de>
35992
35993         * system.h: Define __STDC_FORMAT_MACROS before
35994         including inttypes.h.
35995         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
35996         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
35997         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
35998         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
35999         HOST_WIDEST_INT_C): Remove.
36000         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
36001         if C99 inttypes.h is not available.
36002         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
36003         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
36004         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
36005         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
36006         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
36007         (struct output_info): Likewise.
36008         (print_statistics): Adjust.
36009         (dump_bitmap_statistics): Likewise.
36010         * bt-load.c (migrate_btr_defs): Print with PRId64.
36011         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
36012         (MAX_SAFE_MULTIPLIER): Adjust.
36013         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
36014         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
36015         dump_cgraph_node): Likewise.
36016         * final.c (dump_basic_block_info): Likewise.
36017         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
36018         * gcov.c (format_gcov): Likewise.
36019         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
36020         for calculation.
36021         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
36022         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
36023         (inline_small_functions, dump_overall_stats, dump_inline_stats):
36024         Use PRId64 for dumping.
36025         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
36026         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
36027         (add_allocno_hard_regs): Adjust.
36028         * loop-doloop.c (doloop_modify): Print using PRId64.
36029         * loop-iv.c (inverse): Compute in uint64_t.
36030         (determine_max_iter, iv_number_of_iterations): Likewise.
36031         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
36032         Print using PRId64.
36033         * lto-streamer-out.c (write_symbol): Use uint64_t.
36034         * mcf.c (CAP_INFINITY): Use int64_t maximum.
36035         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
36036         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
36037         * modulo-sched.c (const_iteration_count): Use int64_t.
36038         (sms_schedule): Dump using PRId64.
36039         * predict.c (dump_prediction): Likewise.
36040         * pretty-print.h (pp_widest_integer): Remove.
36041         * profile.c (get_working_sets, is_edge_inconsistent,
36042         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
36043         * tree-pretty-print.c (pp_double_int): Remove case handling
36044         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
36045         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
36046         and adjust users.
36047         (pass_optimize_bswap::execute): Remove restriction on hosts.
36048         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
36049         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
36050         * tree.c (widest_int_cst_value): Remove.
36051         * tree.h (widest_int_cst_value): Likewise.
36052         * value-prof.c (dump_histogram_value): Print using PRId64.
36053         * gengtype.c (main): Also inject int64_t.
36054         * ggc-page.c (struct max_alignment): Use int64_t.
36055         * alloc-pool.c (struct allocation_object_def): Likewise.
36056         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
36057         for computation.
36058         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
36059         * doc/tm.texi: Regenerated.
36060         * gengtype-lex.l (IWORD): Handle [u]int64_t.
36061         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
36062         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
36063         mmix_output_register_setting): Use [u]int64_t in prototypes.
36064         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
36065         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
36066         mmix_output_octa, mmix_output_shifted_value): Adjust.
36067         (mmix_intval): Adjust.  Remove unreachable case.
36068         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
36069
36070 2014-05-26  Richard Biener  <rguenther@suse.de>
36071
36072         * configure.ac: Drop __int64 type check.  Insist that we
36073         found uint64_t and int64_t.
36074         * hwint.h (HOST_BITS_PER___INT64): Remove.
36075         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
36076         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
36077         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
36078         (HOST_WIDEST_FAST_INT): Remove __int64 case.
36079         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
36080         for dst_q_src_df_rms_cdt.
36081         * configure: Regenerate.
36082         * config.in: Likewise.
36083
36084 2014-05-26  Michael Tautschnig  <mt@debian.org>
36085
36086         PR target/61249
36087         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
36088         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
36089
36090 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
36091
36092         PR rtl-optimization/61278
36093         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
36094
36095 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
36096
36097         PR rtl-optimization/61220
36098         Part of PR rtl-optimization/61225
36099         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
36100         insn; skip split_edge for a block with only one successor.
36101
36102 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36103
36104         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
36105         for variables.
36106
36107 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36108
36109         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
36110         (update_vtable_references): New function.
36111         (function_and_variable_visibility): Rewrite also vtable initializers.
36112         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
36113
36114 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36115
36116         * ggc.h (ggc_grow): New function.
36117         * ggc-none.c (ggc_grow): New function.
36118         * ggc-page.c (ggc_grow): Likewise.
36119
36120 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36121
36122         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
36123         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
36124         comdat_can_be_unshared_p, cgraph_externally_visible_p,
36125         varpool_externally_visible_p, can_replace_by_local_alias,
36126         update_visibility_by_resolution_info, function_and_variable_visibility,
36127         pass_data_ipa_function_and_variable_visibility,
36128         make_pass_ipa_function_and_variable_visibility,
36129         whole_program_function_and_variable_visibility,
36130         pass_data_ipa_whole_program_visibility,
36131         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
36132         * cgraph.h (cgraph_local_node_p): Declare.
36133         * ipa-visibility.c: New file.
36134         * Makefile.in (OBJS): Add ipa-visiblity.o
36135
36136 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36137
36138         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
36139         that var decl is available.
36140
36141 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36142
36143         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
36144         symtab_node pointer.
36145         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
36146         (find_decls_types_r): Do not walk COMDAT_GROUP.
36147         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
36148         * varasm.c (make_decl_one_only): Use set_comdat_group;
36149         create node if needed.
36150         * ipa-inline-transform.c (save_inline_function_body): Update
36151         way we decl->symtab mapping.
36152         * symtab.c (symtab_hash, hash_node, eq_node
36153         symtab_insert_node_to_hashtable): Remove.
36154         (symtab_register_node): Update.
36155         (symtab_unregister_node): Update.
36156         (symtab_get_node): Reimplement as inline function.
36157         (symtab_add_to_same_comdat_group): Update.
36158         (symtab_dissolve_same_comdat_group_list): Update.
36159         (dump_symtab_base): Update.
36160         (verify_symtab_base): Update.
36161         (symtab_make_decl_local): Update.
36162         (fixup_same_cpp_alias_visibility): Update.
36163         (symtab_nonoverwritable_alias): Update.
36164         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
36165         * ipa.c (update_visibility_by_resolution_info): UPdate.
36166         * bb-reorder.c: Include cgraph.h
36167         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
36168         with comdat groups.
36169         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
36170         * cgraph.c (cgraph_get_create_node): Update.
36171         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
36172         and comdat_group_.
36173         (symtab_get_node): Make inline.
36174         (symtab_insert_node_to_hashtable): Remove.
36175         (symtab_can_be_discarded): Update.
36176         (decl_comdat_group): New function.
36177         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
36178         Update.
36179         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
36180         comdat group name.
36181         (read_comdat_group): New function.
36182         (input_node, input_varpool_node): Use it.
36183         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
36184         comdat groups.
36185         * mips.c (mips_start_unique_function): Likewise.
36186         (ix86_code_end): Likewise.
36187         (rs6000_code_end): Likweise.
36188         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
36189
36190 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36191
36192         * gengtype-state.c (fatal_reading_state): Bring offline.
36193         * optabs.c (widening_optab_handler): Bring offline.
36194         * optabs.h (widening_optab_handler): Likewise.
36195         * final.c (get_attr_length_1): Likewise.
36196
36197 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36198
36199         * sched-int.h (sd_iterator_cond): Manually tail recurse.
36200
36201 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36202
36203         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
36204         (ppc440-compare): Include shift with dot.
36205         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
36206         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
36207         without dot.
36208         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
36209         without dot.
36210         (e6500_sfx2): Include it.
36211         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
36212         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
36213         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
36214         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
36215         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
36216         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
36217         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
36218         *lshiftrt_internal1le, *lshiftrt_internal1be,
36219         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
36220         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
36221         *rotldi3_internal10le, *rotldi3_internal10be,
36222         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
36223         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
36224         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
36225         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
36226         define_insns): Use type "shift" in the appropriate alternatives.
36227
36228 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36229
36230         * config/rs6000/rs6000.md (type): Add "logical".  Delete
36231         "fast_compare".
36232         (dot): Adjust comment.
36233         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
36234         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
36235         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
36236         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
36237         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
36238         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
36239         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
36240         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
36241
36242         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36243         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
36244         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36245         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36246         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36247         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36248         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36249         * config/rs6000/8540.md (ppc8540_su): Adjust.
36250         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36251         cell-cmp-microcoded): Adjust.
36252         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
36253         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36254         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
36255         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
36256         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
36257         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36258         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
36259         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
36260         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
36261         Adjust.
36262         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
36263         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
36264         Adjust.  Adjust comment.
36265         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36266         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
36267
36268 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36269
36270         * config/rs6000/rs6000.md (type): Add "add".
36271         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
36272         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
36273         define_insns): Use it.
36274         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
36275
36276         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36277         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
36278         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36279         * config/rs6000/601.md (ppc601-integer): Adjust.
36280         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36281         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36282         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36283         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36284         * config/rs6000/8540.md (ppc8540_su): Adjust.
36285         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36286         cell-cmp-microcoded): Adjust.
36287         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
36288         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36289         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
36290         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
36291         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
36292         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36293         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
36294         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
36295         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
36296         Adjust.
36297         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
36298         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
36299         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36300         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
36301
36302 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36303
36304         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
36305         "delayed_compare", "var_delayed_compare".
36306         (var_shift): New attribute.
36307         (cell_micro): Adjust.
36308         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
36309         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
36310         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
36311         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
36312         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
36313         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
36314         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
36315         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
36316         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
36317         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
36318         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
36319         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
36320         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
36321         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
36322         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
36323         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
36324         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
36325         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
36326         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
36327         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
36328         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
36329         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
36330         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
36331         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36332         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36333
36334         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36335         * config/rs6000/440.md (ppc440-integer): Adjust.
36336         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36337         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
36338         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36339         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36340         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36341         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36342         * config/rs6000/8540.md (ppc8540_su): Adjust.
36343         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36344         cell-cmp-microcoded): Adjust.
36345         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
36346         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36347         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
36348         e500mc64_delayed): Adjust.
36349         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
36350         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
36351         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36352         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
36353         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
36354         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
36355         power6-delayed-compare, power6-var-delayed-compare): Adjust.
36356         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
36357         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
36358         Adjust comment.
36359         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36360         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
36361
36362 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36363
36364         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
36365         (bits): New mode_attr.
36366         (idiv_ldiv): Delete mode_attr.
36367         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
36368         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36369         rs6000_adjust_priority, is_nonpipeline_insn,
36370         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36371
36372         * config/rs6000/40x.md (ppc403-idiv): Adjust.
36373         * config/rs6000/440.md (ppc440-idiv): Adjust.
36374         * config/rs6000/476.md (ppc476-idiv): Adjust.
36375         * config/rs6000/601.md (ppc601-idiv): Adjust.
36376         * config/rs6000/603.md (ppc603-idiv): Adjust.
36377         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
36378         ppc620-ldiv): Adjust.
36379         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
36380         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
36381         * config/rs6000/8540.md (ppc8540_divide): Adjust.
36382         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
36383         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
36384         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
36385         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
36386         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
36387         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
36388         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
36389         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
36390         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
36391         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
36392         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
36393         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
36394         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
36395         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
36396         * config/rs6000/titan.md (titan_fxu_div): Adjust.
36397
36398 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36399
36400         * config/rs6000/rs6000.md (type): Delete "insert_word",
36401         "insert_dword".  Add "insert".
36402         (size): Update comment.
36403         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36404         insn_must_be_first_in_group): Adjust.
36405         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
36406         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
36407         *insvsi_internal6, insvdi_internal): Adjust.
36408
36409         * config/rs6000/40x.md (ppc403-integer): Adjust.
36410         * config/rs6000/440.md (ppc440-integer): Adjust.
36411         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
36412         * config/rs6000/601.md (ppc601-integer): Adjust.
36413         * config/rs6000/603.md (ppc603-integer): Adjust.
36414         * config/rs6000/6xx.md (ppc604-integer): Adjust.
36415         * config/rs6000/7450.md (ppc7450-integer): Adjust.
36416         * config/rs6000/7xx.md (ppc750-integer): Adjust.
36417         * config/rs6000/8540.md (ppc8540_su): Adjust.
36418         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
36419         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
36420         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36421         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
36422         * config/rs6000/e5500.md (e5500_sfx): Adjust.
36423         * config/rs6000/e6500.md (e6500_sfx): Adjust.
36424         * config/rs6000/mpc.md (mpccore-integer): Adjust.
36425         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
36426         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
36427         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
36428         * config/rs6000/power7.md (power7-integer): Adjust.
36429         * config/rs6000/power8.md (power8-1cyc): Adjust.
36430         * config/rs6000/rs64.md (rs64a-integer): Adjust.
36431         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
36432
36433 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36434
36435         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
36436         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
36437         (size): New attribute.
36438         (dot): New attribute.
36439         (cell_micro): Adjust.
36440         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
36441         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
36442         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
36443         umuldi3_highpart): Adjust.
36444         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36445         rs6000_adjust_priority, is_nonpipeline_insn,
36446         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36447
36448         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
36449         ppc405-imul3): Adjust.
36450         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
36451         * config/rs6000/476.md (ppc476-imul): Adjust.
36452         * config/rs6000/601.md (ppc601-imul): Adjust.
36453         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
36454         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
36455         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
36456         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
36457         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
36458         Adjust.
36459         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
36460         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
36461         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
36462         cell-imul): Adjust.
36463         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
36464         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
36465         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
36466         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
36467         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
36468         * config/rs6000/mpc.md (mpccore-imul): Adjust.
36469         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
36470         power4-lmul, power4-imul, power4-imul3): Adjust.
36471         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
36472         power5-lmul, power5-imul, power5-imul3): Adjust.
36473         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
36474         power6-lmul, power6-imul, power6-imul3): Adjust.
36475         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
36476         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
36477
36478         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
36479         rs64a-lmul): Adjust.
36480         * config/rs6000/titan.md (titan_imul): Adjust.
36481
36482 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36483
36484         * config/rs6000/rs6000.md (type): Add new value "halfmul".
36485         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
36486         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
36487         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
36488         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
36489         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
36490         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
36491         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
36492         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
36493         * config/rs6000/titan.md: Delete nonsensical comment.
36494         (titan_imul): Add type imul3.
36495         (titan_mulhw): Remove type imul3; add type halfmul.
36496
36497 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36498
36499         * config/rs6000/rs6000.md (type): Reorder, reformat.
36500
36501 2014-05-23  Martin Jambor  <mjambor@suse.cz>
36502
36503         PR tree-optimization/53787
36504         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
36505         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
36506         analysis_done, update all uses.
36507         * ipa-prop.c: Include domwalk.h
36508         (param_analysis_info): Removed.
36509         (param_aa_status): New type.
36510         (ipa_bb_info): Likewise.
36511         (func_body_info): Likewise.
36512         (ipa_get_bb_info): New function.
36513         (aa_overwalked): Likewise.
36514         (find_dominating_aa_status): Likewise.
36515         (parm_bb_aa_status_for_bb): Likewise.
36516         (parm_preserved_before_stmt_p): Changed to use new param AA info.
36517         (load_from_unmodified_param): Accept func_body_info as a parameter
36518         instead of parms_ainfo.
36519         (parm_ref_data_preserved_p): Changed to use new param AA info.
36520         (parm_ref_data_pass_through_p): Likewise.
36521         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
36522         (compute_complex_assign_jump_func): Changed to use new param AA info.
36523         (compute_complex_ancestor_jump_func): Likewise.
36524         (ipa_compute_jump_functions_for_edge): Likewise.
36525         (ipa_compute_jump_functions): Removed.
36526         (ipa_compute_jump_functions_for_bb): New function.
36527         (ipa_analyze_indirect_call_uses): Likewise, moved variable
36528         declarations down.
36529         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
36530         and info, moved variable declarations down.
36531         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
36532         node and info.
36533         (ipa_analyze_stmt_uses): Likewise.
36534         (ipa_analyze_params_uses): Removed.
36535         (ipa_analyze_params_uses_in_bb): New function.
36536         (ipa_analyze_controlled_uses): Likewise.
36537         (free_ipa_bb_info): Likewise.
36538         (analysis_dom_walker): New class.
36539         (ipa_analyze_node): Handle node-specific forbidden analysis,
36540         initialize and free func_body_info, use dominator walker.
36541         (ipcp_modif_dom_walker): New class.
36542         (ipcp_transform_function): Create and free func_body_info, use
36543         ipcp_modif_dom_walker, moved a lot of functionality there.
36544
36545 2014-05-23  Marek Polacek  <polacek@redhat.com>
36546             Jakub Jelinek  <jakub@redhat.com>
36547
36548         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
36549         * gcc.c (sanitize_spec_function): Likewise.
36550         * convert.c (convert_to_integer): Include "ubsan.h".  Add
36551         floating-point to integer instrumentation.
36552         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
36553         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
36554         SANITIZE_NONDEFAULT.
36555         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
36556         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
36557         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
36558         * ubsan.c: Include "realmpfr.h" and "dfp.h".
36559         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
36560         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
36561         float/double/long double.
36562         (ubsan_instrument_float_cast): New function.
36563         * ubsan.h (ubsan_instrument_float_cast): Declare.
36564
36565 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
36566
36567         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
36568         predicate.
36569         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
36570         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
36571         Adjust for tailcalling through registers.
36572         * config/aarch64/aarch64.h (enum reg_class): New caller save
36573         register class.
36574         (REG_CLASS_NAMES): Likewise.
36575         (REG_CLASS_CONTENTS): Likewise.
36576         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
36577         Allow tailcalling without decls.
36578
36579 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
36580
36581         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
36582         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
36583
36584         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
36585         gsi, and variables v_* to v*.
36586
36587 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
36588
36589         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
36590
36591 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
36592
36593         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
36594         * omp-low.c: Update accordingly.
36595
36596         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
36597         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
36598         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
36599         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
36600         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
36601         GF_OMP_TARGET_KIND_UPDATE.
36602
36603         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
36604         Explicitly enumerate the expected region types.
36605
36606 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
36607
36608         PR other/56955
36609         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
36610         documentation; the old documentation didn't clearly state the
36611         constraints on the contents of the pointed-to storage.
36612
36613 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36614
36615         Fix bootstrap error on ia64
36616         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
36617         Return default value.
36618
36619 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
36620
36621         PR tree-optimization/54733
36622         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
36623         (CMPNOP): Define.
36624         (find_bswap_or_nop_load): New.
36625         (find_bswap_1): Renamed to ...
36626         (find_bswap_or_nop_1): This. Also add support for memory source.
36627         (find_bswap): Renamed to ...
36628         (find_bswap_or_nop): This. Also add support for memory source and
36629         detection of bitwise operations equivalent to load in target
36630         endianness.
36631         (execute_optimize_bswap): Likewise. Also move its leading comment back
36632         in place and split statement transformation into ...
36633         (bswap_replace): This.
36634
36635 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
36636
36637         PR rtl-optimization/61215
36638         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
36639         simplify_gen_subreg until final substitution.
36640
36641 2014-05-23  Alan Modra  <amodra@gmail.com>
36642
36643         PR target/61231
36644         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
36645         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
36646         Use "Y" constraint rather than "m".
36647
36648 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
36649
36650         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
36651         define.
36652         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
36653         New function declaration.
36654         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
36655         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
36656         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
36657         (aarch64_init_builtins) : Initialize builtins
36658         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
36659         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
36660         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
36661         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
36662         and __builtins_aarch64_set_fpsr.
36663         (aarch64_atomic_assign_expand_fenv): New function.
36664         * config/aarch64/aarch64.md (set_fpcr): New pattern.
36665         (get_fpcr) : Likewise.
36666         (set_fpsr) : Likewise.
36667         (get_fpsr) : Likewise.
36668         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
36669         and UNSPECV_SET_FPSR.
36670         * doc/extend.texi (AARCH64 Built-in Functions) : Document
36671         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
36672         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
36673
36674 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
36675
36676         PR rtl-optimization/60969
36677         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
36678         constraints.  Set up mem cost for NO_REGS case.
36679
36680 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
36681
36682         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
36683
36684 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
36685
36686         * config/darwin.c: Include "lto-section-names.h".
36687         (LTO_SEGMENT_NAME): Don't define.
36688         * config/i386/winnt.c: Include "lto-section-names.h".
36689         * lto-streamer.c: Include "lto-section-names.h".
36690         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
36691         * lto-wrapper.c: Include "lto-section-names.h".
36692         (LTO_SECTION_NAME_PREFIX): Don't define.
36693         * lto-section-names.h: New file.
36694         * cgraphunit.c: Include "lto-section-names.h".
36695
36696 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
36697
36698         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
36699
36700 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
36701
36702         PR target/61208
36703         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
36704
36705 2014-05-22  Nick Clifton  <nickc@redhat.com>
36706
36707         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
36708
36709 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
36710
36711         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
36712         -> (T)A transformation to integer types.
36713
36714 2014-05-22  Teresa Johnson  <tejohnson@google.com>
36715
36716         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
36717         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
36718         (gcov_rewrite): Use gcov_nonruntime_assert.
36719         (gcov_open): Ditto.
36720         (gcov_write_words): Ditto.
36721         (gcov_write_length): Ditto.
36722         (gcov_read_words): Use gcov_nonruntime_assert, and remove
36723         gcc_assert from IN_LIBGCOV code.
36724         (gcov_read_summary): Use gcov_error to flag profile corruption.
36725         (gcov_sync): Use gcov_nonruntime_assert.
36726         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
36727         (gcov_histo_index): Use gcov_nonruntime_assert.
36728         (static void gcov_histogram_merge): Ditto.
36729         (compute_working_sets): Ditto.
36730         * gcov-io.h (gcov_nonruntime_assert): Define.
36731         (gcov_error): Define for !IN_LIBGCOV
36732
36733 2014-05-22  Richard Biener  <rguenther@suse.de>
36734
36735         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
36736         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
36737         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
36738         and deallocation site.
36739         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
36740         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
36741         passing through the incoming points-to set.
36742         (handle_lhs_call): Use flags argument instead of recomputing it.
36743         (find_func_aliases_for_call): Call handle_lhs_call with proper
36744         call return flags.
36745
36746 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
36747
36748         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
36749         all padding bits in REAL_VALUE_TYPE are cleared.
36750
36751 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36752
36753         Cleanup and improve multipass_dfa_lookahead_guard
36754         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
36755         (core2i7_first_cycle_multipass_begin,)
36756         (core2i7_first_cycle_multipass_issue,)
36757         (core2i7_first_cycle_multipass_backtrack): Update signature.
36758         * config/ia64/ia64.c
36759         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
36760         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
36761         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
36762         hook definition.
36763         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
36764         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
36765         values.
36766         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
36767         return values.
36768         * doc/tm.texi: Regenerate.
36769         * doc/tm.texi.in
36770         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
36771         * haifa-sched.c (ready_try): Make signed to allow negative values.
36772         (rebug_ready_list_1): Update.
36773         (choose_ready): Simplify.
36774         (sched_extend_ready_list): Update.
36775
36776 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36777
36778         Remove IA64 speculation tweaking flags
36779         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
36780         speculation tuning flags.
36781         (msched-prefer-non-data-spec-insns,)
36782         (msched-prefer-non-control-spec-insns): Obsolete options.
36783         * haifa-sched.c (choose_ready): Remove handling of
36784         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
36785         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
36786         and PREFER_NON_DATA_SPEC.
36787         * sel-sched.c (process_spec_exprs): Remove handling of
36788         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
36789
36790 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36791
36792         Improve scheduling debug output
36793         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
36794         (advance_one_cycle): Update.
36795         (schedule_insn, queue_to_ready): Add debug printouts.
36796         (debug_ready_list_1): New static function.
36797         (debug_ready_list): Update.
36798         (max_issue): Add debug printouts.
36799         (dump_insn_stream): New static function.
36800         (schedule_block): Use it.  Also better indent printouts.
36801
36802 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36803
36804         Fix sched_insn debug counter
36805         * haifa-sched.c (schedule_insn): Update.
36806         (struct haifa_saved_data): Add nonscheduled_insns_begin.
36807         (save_backtrack_point, restore_backtrack_point): Update.
36808         (first_nonscheduled_insn): New static function.
36809         (queue_to_ready, choose_ready): Use it.
36810         (schedule_block): Init nonscheduled_insns_begin.
36811         (sched_emit_insn): Update.
36812
36813
36814 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
36815
36816         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
36817         to GENERAL_REGS.
36818         (aarch64_secondary_reload) : LikeWise.
36819         (aarch64_class_max_nregs) : Remove CORE_REGS.
36820         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
36821         (REG_CLASS_NAMES) : Likewise.
36822         (REG_CLASS_CONTENTS) : LikeWise.
36823         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
36824
36825 2014-05-21  Guozhi Wei  <carrot@google.com>
36826
36827         PR target/61202
36828         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
36829         constraint.
36830         (vqdmulhq_n_s16): Likewise.
36831
36832 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
36833
36834         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
36835
36836 2014-05-21  Marek Polacek  <polacek@redhat.com>
36837
36838         PR sanitizer/61272
36839         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
36840
36841 2014-05-21  Martin Jambor  <mjambor@suse.cz>
36842
36843         * doc/invoke.texi (Optimize Options): Document parameters
36844         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
36845         ipa-cp-array-index-hint-bonus.
36846
36847 2014-05-21  Mark Wielaard  <mjw@redhat.com>
36848
36849         PR debug/16063
36850         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
36851         version >= 3 or not strict DWARF.
36852         * langhooks.h (struct lang_hooks_for_types): Add
36853         enum_underlying_base_type.
36854         * langhooks.c (lhd_enum_underlying_base_type): New function.
36855         * gcc/langhooks.h (struct lang_hooks_for_types): Add
36856         enum_underlying_base_type.
36857         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
36858         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
36859         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
36860
36861 2014-05-21  Richard Biener  <rguenther@suse.de>
36862
36863         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
36864
36865 2014-05-21  John Marino  <gnugcc@marino.st>
36866
36867         * config.gcc (*-*-dragonfly*): New target.
36868         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
36869         * configure: Regenerate.
36870         * config/dragonfly-stdint.h: New.
36871         * config/dragonfly.h: New.
36872         * config/dragonfly.opt: New.
36873         * config/i386/dragonfly.h: New.
36874         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
36875
36876 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
36877
36878         * tree.def (VOID_CST): New.
36879         * tree-core.h (TI_VOID): New.
36880         * tree.h (void_node): New.
36881         * tree.c (tree_node_structure_for_code, tree_code_size)
36882         (iterative_hash_expr): Handle VOID_CST.
36883         (build_common_tree_nodes): Initialize void_node.
36884
36885 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
36886
36887         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
36888         functions.
36889         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
36890
36891         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
36892         more places.
36893
36894         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
36895         flag_reorder_blocks_and_partition.
36896         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
36897
36898 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
36899
36900         PR target/54236
36901         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
36902         constraints.
36903         (*addc_r_t): Add new insn_and_split.
36904
36905 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
36906
36907         PR middle-end/61252
36908         * omp-low.c (handle_simd_reference): New function.
36909         (lower_rec_input_clauses): Use it.  Defer adding reference
36910         initialization even for reduction without placeholder if in simd,
36911         handle it properly later on.
36912
36913 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
36914
36915         PR tree-optimization/60899
36916         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
36917         assume all static symbols will have definition wile parsing and
36918         check the do have definition later in compilation; check that
36919         variable referring symbol will be output before concluding that
36920         reference is safe; be conservative for referring local statics;
36921         be more precise about when comdat is output in other partition.
36922
36923 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
36924
36925         PR bootstrap/60984
36926         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
36927         parameter.
36928         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
36929         (ipa_inline): Loop inline_to_all_callers until no more aliases
36930         are removed.
36931
36932 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
36933
36934         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
36935         set writeonly flag only for vars actually written to.
36936
36937 2014-05-20  Dehao Chen  <dehao@google.com>
36938
36939         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
36940         and callee count to get clone count.
36941         * tree-inline.c (expand_call_inline): Use callee count instead of bb
36942         count in copy_body.
36943
36944 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
36945
36946         PR rtl-optimization/61243
36947         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
36948
36949 2014-05-20  Xinliang David Li  <davidxl@google.com>
36950
36951         * cgraphunit.c (walk_polymorphic_call_targets): Add
36952         dbgcnt and fopt-info support.
36953         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
36954         * ipa-devirt.c (ipa_devirt): Ditto.
36955         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
36956         * ipa.c (walk_polymorphic_call_targets): Ditto.
36957         * gimple-fold.c (fold_gimple_assign): Ditto.
36958         (gimple_fold_call): Ditto.
36959         * dbgcnt.def: New counter.
36960
36961 2014-05-20  DJ Delorie  <dj@redhat.com>
36962
36963         * config/msp430/msp430.md (split): Don't allow subregs when
36964         splitting SImode adds.
36965         (andneghi): Fix subtraction logic.
36966         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
36967
36968 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
36969
36970         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
36971         symbols.
36972         * except.c (switch_to_exception_section, resolve_unique_section,
36973         get_named_text_section, default_function_rodata_section,
36974         align_variable, get_block_for_decl, default_section_type_flags):
36975         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
36976         * symtab.c (symtab_add_to_same_comdat_group,
36977         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
36978         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
36979         Likewise.
36980         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
36981         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
36982         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
36983         (c6x_function_in_section_p): Likewise.
36984         * config/darwin.c (machopic_select_section): Likewise.
36985         * config/arm/arm.c (arm_function_in_section_p): Likewise.
36986         * config/mips/mips.c (mips_function_rodata_section): Likewise.
36987         * config/mep/mep.c (mep_select_section): LIkewise.
36988         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
36989
36990 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
36991
36992         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
36993         EH region of calls to pure functions that can throw an exception.
36994         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
36995         (copy_reference_ops_from_call): Also copy the EH region of the call if
36996         it can throw an exception.
36997
36998 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36999
37000         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
37001         nested VEC_SELECTs that are inverses of each other.
37002
37003 2014-05-20  Richard Biener  <rguenther@suse.de>
37004
37005         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
37006         (extract_and_process_scc_for_name): not here.
37007         (cond_dom_walker::before_dom_children): Only process
37008         stmts that end the BB in interesting ways.
37009         (run_scc_vn): Mark param uses as visited.
37010
37011 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37012
37013         * config/arm/arm.md (arith_shiftsi): Do not predicate for
37014         arm_restrict_it.
37015
37016 2014-05-20  Nick Clifton  <nickc@redhat.com>
37017
37018         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
37019         (msp430_gimplify_va_arg_expr): New function.
37020         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
37021
37022         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
37023         operand 0 in order to prevent confusion about the number of
37024         registers involved.
37025
37026 2014-05-20  Richard Biener  <rguenther@suse.de>
37027
37028         PR tree-optimization/61221
37029         * tree-ssa-pre.c (el_to_update): Remove.
37030         (eliminate_dom_walker::before_dom_children): Handle released
37031         VDEFs by value-numbering them to the associated VUSE.  Update
37032         stmt immediately for substituted call address.
37033         (eliminate): Remove delayed stmt updating code.
37034         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
37035         possibly late re-numbered vuses.
37036         (vn_reference_lookup_2): Adjust.
37037         (vn_reference_lookup_pieces): Likewise.
37038         (vn_reference_lookup): Likewise.
37039
37040 2014-05-20  Richard Biener  <rguenther@suse.de>
37041
37042         * config.gcc: Remove need_64bit_hwint.
37043         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
37044         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
37045         it to be true.
37046         * config.in: Regenerate.
37047         * configure: Likewise.
37048
37049 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
37050
37051         * doc/extend.texi: Create Label Attributes section,
37052         move all label attributes into it and reference it.
37053
37054 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
37055
37056         * arm.c (thumb1_reorg): When scanning backwards skip anything
37057         that's not a proper insn.
37058
37059 2014-05-19  Richard Biener  <rguenther@suse.de>
37060
37061         PR tree-optimization/61221
37062         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
37063         Do nothing for unreachable blocks.
37064         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
37065         Improve unreachability detection.
37066
37067 2014-05-19  Richard Biener  <rguenther@suse.de>
37068
37069         PR tree-optimization/61209
37070         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
37071
37072 2014-05-19  Nick Clifton  <nickc@redhat.com>
37073
37074         * except.c (init_eh): Fix computation of builtin setjmp buffer
37075         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
37076
37077 2014-05-19  Richard Biener  <rguenther@suse.de>
37078
37079         PR tree-optimization/61184
37080         * tree-vrp.c (is_negative_overflow_infinity): Use
37081         TREE_OVERFLOW_P and do that check first.
37082         (is_positive_overflow_infinity): Likewise.
37083         (is_overflow_infinity): Likewise.
37084         (vrp_operand_equal_p): Properly treat operands with
37085         differing overflow as not equal.
37086
37087 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
37088
37089         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
37090         shift simplification where it was intended.
37091
37092 2014-05-19  Christian Bruel  <christian.bruel@st.com>
37093
37094         PR target/61195
37095         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
37096
37097 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
37098
37099         PR target/61084
37100         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
37101         than wide_int.
37102
37103 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
37104
37105         * reg-notes.def (CROSSING_JUMP): Likewise.
37106         * rtl.h (rtx_def): Update comment for jump flag.
37107         (CROSSING_JUMP_P): Define.
37108         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
37109         of a REG_CROSSING_JUMP note.
37110         * cfghooks.c (tidy_fallthru_edges): Likewise.
37111         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
37112         * emit-rtl.c (try_split): Likewise.
37113         * haifa-sched.c (sched_create_recovery_edges): Likewise.
37114         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
37115         * jump.c (redirect_jump_2): Likewise.
37116         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
37117         (relax_delay_slots): Likewise.
37118         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
37119         (bbit_di): Likewise.
37120         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
37121         * config/sh/sh.md (jump_compact): Likewise.
37122         * bb-reorder.c (rotate_loop): Likewise.
37123         (pass_duplicate_computed_gotos::execute): Likewise.
37124         (add_reg_crossing_jump_notes): Rename to...
37125         (update_crossing_jump_flags): ...this.
37126         (pass_partition_blocks::execute): Update accordingly.
37127
37128 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
37129
37130         * tree.h: Remove extraneous template <>.
37131
37132 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37133
37134         * ipa.c (symtab_remove_unreachable_nodes): Remove
37135         symbol from comdat group if its body was eliminated.
37136         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
37137         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
37138         (symtab_unregister_node): ... this one.
37139         (verify_symtab_base): More strict checking of comdats.
37140         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
37141
37142 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37143
37144         * tree-pass.h (make_pass_ipa_comdats): New pass.
37145         * timevar.def (TV_IPA_COMDATS): New timevar.
37146         * passes.def (pass_ipa_comdats): Add.
37147         * Makefile.in (OBJS): Add ipa-comdats.o
37148         * ipa-comdats.c: New file.
37149
37150 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37151
37152         * ipa.c (update_visibility_by_resolution_info): New function.
37153         (function_and_variable_visibility): Use it.
37154
37155 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37156
37157         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
37158         New functions.
37159         (FOR_EACH_DEFINED_SYMBOL): New macro.
37160         (varpool_first_static_initializer, varpool_next_static_initializer,
37161         varpool_first_defined_variable, varpool_next_defined_variable):
37162         Fix comments.
37163         (symtab_in_same_comdat_p): Correctly deal with inline functions.
37164
37165 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37166
37167         * ggc-page.c (ggc_handle_finalizers): Add comment.
37168
37169 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37170
37171         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
37172         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
37173         (ggc_internal_cleared_alloc): Likewise.
37174         * ggc-page.c (finalizer): New class.
37175         (vec_finalizer): Likewise.
37176         (globals::finalizers): New member.
37177         (globals::vec_finalizers): Likewise.
37178         (ggc_internal_alloc): Record the finalizer if any for the block being
37179         allocated.
37180         (ggc_handle_finalizers): New function.
37181         (ggc_collect): Call ggc_handle_finalizers.
37182         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
37183         finalizer.
37184         (ggc_internal_cleared_alloc): Likewise.
37185         (finalize): New function.
37186         (need_finalization_p): Likewise.
37187         (ggc_alloc): Install the type's destructor as the finalizer if it
37188         might do something.
37189         (ggc_cleared_alloc): Likewise.
37190         (ggc_vec_alloc): Likewise.
37191         (ggc_cleared_vec_alloc): Likewise.
37192
37193 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37194
37195         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
37196
37197 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37198
37199         * alias.c (record_alias_subset): Adjust.
37200         * bitmap.c (bitmap_element_allocate): Likewise.
37201         (bitmap_gc_alloc_stat): Likewise.
37202         * cfg.c (init_flow): Likewise.
37203         (alloc_block): Likewise.
37204         (unchecked_make_edge): Likewise.
37205         * cfgloop.c (alloc_loop): Likewise.
37206         (flow_loops_find): Likewise.
37207         (rescan_loop_exit): Likewise.
37208         * cfgrtl.c (init_rtl_bb_info): Likewise.
37209         * cgraph.c (insert_new_cgraph_node_version): Likewise.
37210         (cgraph_allocate_node): Likewise.
37211         (cgraph_create_edge_1): Likewise.
37212         (cgraph_allocate_init_indirect_info): Likewise.
37213         * cgraphclones.c (cgraph_clone_edge): Likewise.
37214         * cgraphunit.c (add_asm_node): Likewise.
37215         (init_lowered_empty_function): Likewise.
37216         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
37217         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
37218         (alpha_use_linkage): Likewise.
37219         * config/arc/arc.c (arc_init_machine_status): Likewise.
37220         * config/arm/arm.c (arm_init_machine_status): Likewise.
37221         * config/avr/avr.c (avr_init_machine_status): Likewise.
37222         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
37223         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
37224         * config/cris/cris.c (cris_init_machine_status): Likewise.
37225         * config/darwin.c (machopic_indirection_name): Likewise.
37226         (darwin_build_constant_cfstring): Likewise.
37227         (darwin_enter_string_into_cfstring_table): Likewise.
37228         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
37229         * config/frv/frv.c (frv_init_machine_status): Likewise.
37230         * config/i386/i386.c (get_dllimport_decl): Likewise.
37231         (ix86_init_machine_status): Likewise.
37232         (assign_386_stack_local): Likewise.
37233         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
37234         (i386_pe_maybe_record_exported_symbol): Likewise.
37235         (i386_pe_record_stub): Likewise.
37236         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
37237         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
37238         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
37239         (m32c_note_pragma_address): Likewise.
37240         * config/mep/mep.c (mep_init_machine_status): Likewise.
37241         (mep_note_pragma_flag): Likewise.
37242         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
37243         (mips16_local_alias): Likewise.
37244         (mips_init_machine_status): Likewise.
37245         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
37246         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
37247         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
37248         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
37249         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
37250         * config/pa/pa.c (pa_init_machine_status): Likewise.
37251         (pa_get_deferred_plabel): Likewise.
37252         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
37253         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
37254         (rs6000_init_machine_status): Likewise.
37255         (output_toc): Likewise.
37256         * config/s390/s390.c (s390_init_machine_status): Likewise.
37257         * config/score/score.c (score_output_external): Likewise.
37258         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
37259         * config/spu/spu.c (spu_init_machine_status): Likewise.
37260         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
37261         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
37262         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
37263         * coverage.c (coverage_end_function): Likewise.
37264         * dbxout.c (dbxout_init): Likewise.
37265         * doc/gty.texi: Don't mention variable_size attribute.
37266         * dwarf2cfi.c (new_cfi): Adjust.
37267         (new_cfi_row): Likewise.
37268         (copy_cfi_row): Likewise.
37269         (create_cie_data): Likewise.
37270         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
37271         (new_loc_descr): Likewise.
37272         (find_AT_string_in_table): Likewise.
37273         (add_addr_table_entry): Likewise.
37274         (new_die): Likewise.
37275         (add_var_loc_to_decl): Likewise.
37276         (clone_die): Likewise.
37277         (clone_as_declaration): Likewise.
37278         (break_out_comdat_types): Likewise.
37279         (new_loc_list): Likewise.
37280         (add_loc_descr_to_each): Likewise.
37281         (add_location_or_const_value_attribute): Likewise.
37282         (add_linkage_name): Likewise.
37283         (lookup_filename): Likewise.
37284         (dwarf2out_var_location): Likewise.
37285         (new_line_info_table): Likewise.
37286         (dwarf2out_init): Likewise.
37287         (mem_loc_descriptor): Likewise.
37288         (loc_descriptor): Likewise.
37289         (add_const_value_attribute): Likewise.
37290         (tree_add_const_value_attribute): Likewise.
37291         (comp_dir_string): Likewise.
37292         (dwarf2out_vms_debug_main_pointer): Likewise.
37293         (string_cst_pool_decl): Likewise.
37294         * emit-rtl.c (set_mem_attrs): Likewise.
37295         (get_reg_attrs): Likewise.
37296         (start_sequence): Likewise.
37297         (init_emit): Likewise.
37298         (init_emit_regs): Likewise.
37299         * except.c (init_eh_for_function): Likewise.
37300         (gen_eh_region): Likewise.
37301         (gen_eh_region_catch): Likewise.
37302         (gen_eh_landing_pad): Likewise.
37303         (add_call_site): Likewise.
37304         * function.c (add_frame_space): Likewise.
37305         (insert_temp_slot_address): Likewise.
37306         (assign_stack_temp_for_type): Likewise.
37307         (get_hard_reg_initial_val): Likewise.
37308         (allocate_struct_function): Likewise.
37309         (prepare_function_start): Likewise.
37310         (types_used_by_var_decl_insert): Likewise.
37311         * gengtype.c (variable_size_p): Remove function.
37312         (enum alloc_quantity): Remove enum.
37313         (write_typed_alloc_def): Remove function.
37314         (write_typed_struct_alloc_def): Likewise.
37315         (write_typed_typedef_alloc_def): Likewise.
37316         (write_typed_alloc_defns): Likewise.
37317         (main): Adjust.
37318         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
37319         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
37320         * ggc.h (ggc_alloc): new function.
37321         (ggc_cleared_alloc): Likewise.
37322         (ggc_vec_alloc): Template on type of vector element, and remove
37323         element size argument.
37324         (ggc_cleared_vec_alloc): Likewise.
37325         * gimple.c (gimple_build_omp_for): Adjust.
37326         (gimple_copy): Likewise.
37327         * ipa-cp.c (get_replacement_map): Likewise.
37328         (find_aggregate_values_for_callers_subset): Likewise.
37329         (known_aggs_to_agg_replacement_list): Likewise.
37330         * ipa-devirt.c (get_odr_type): Likewise.
37331         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
37332         (read_agg_replacement_chain): Likewise.
37333         * loop-iv.c (get_simple_loop_desc): Likewise.
37334         * lto-cgraph.c (input_node_opt_summary): Likewise.
37335         * lto-section-in.c (lto_new_in_decl_state): Likewise.
37336         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
37337         (input_eh_region): Likewise.
37338         (input_eh_lp): Likewise.
37339         (input_cfg): Likewise.
37340         * optabs.c (set_optab_libfunc): Likewise.
37341         (init_tree_optimization_optabs): Likewise.
37342         (set_conv_libfunc): Likewise.
37343         * passes.c (do_per_function_toporder): Likewise.
37344         * rtl.h: Don't use variable_size gty attribute.
37345         * sese.c (if_region_set_false_region): Adjust.
37346         * stringpool.c (gt_pch_save_stringpool): Likewise.
37347         * target-globals.c (save_target_globals): Likewise.
37348         * toplev.c (general_init): Likewise.
37349         * trans-mem.c (record_tm_replacement): Likewise.
37350         (split_bb_make_tm_edge): Likewise.
37351         * tree-cfg.c (move_sese_region_to_fn): Likewise.
37352         * tree-data-ref.h (lambda_vector_new): Likewise.
37353         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
37354         * tree-iterator.c (tsi_link_before): Likewise.
37355         (tsi_link_after): Likewise.
37356         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
37357         * tree-ssa-loop-niter.c (record_estimate): Likewise.
37358         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
37359         * tree-ssa-operands.h: Don't use variable_size gty attribute.
37360         * tree-ssa.c (init_tree_ssa): Adjust.
37361         * tree-ssanames.c (set_range_info): Likewise.
37362         (get_ptr_info): Likewise.
37363         (duplicate_ssa_name_ptr_info): Likewise.
37364         (duplicate_ssa_name_range_info): Likewise.
37365         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
37366         (unpack_ts_fixed_cst_value_fields): Likewise.
37367         * tree.c (build_fixed): Likewise.
37368         (build_real): Likewise.
37369         (build_string): Likewise.
37370         (decl_priority_info): Likewise.
37371         (decl_debug_expr_insert): Likewise.
37372         (decl_value_expr_insert): Likewise.
37373         (decl_debug_args_insert): Likewise.
37374         (type_hash_add): Likewise.
37375         (build_omp_clause): Likewise.
37376         * ubsan.c (decl_for_type_insert): Likewise.
37377         * varasm.c (get_unnamed_section): Likewise.
37378         (get_noswitch_section): Likewise.
37379         (get_section): Likewise.
37380         (get_block_for_section): Likewise.
37381         (create_block_symbol): Likewise.
37382         (build_constant_desc): Likewise.
37383         (create_constant_pool): Likewise.
37384         (force_const_mem): Likewise.
37385         (record_tm_clone_pair): Likewise.
37386         * varpool.c (varpool_create_empty_node): Likewise.
37387
37388 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37389
37390         * dwarf2out.c (tree_add_const_value_attribute): Call
37391         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
37392         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
37393         instead of ggc_internal_<x>alloc_stat.
37394         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
37395         (ggc_realloc): Likewise.
37396         * ggc-none.c (ggc_internal_alloc): Likewise.
37397         (ggc_internal_cleared_alloc): Likewise.
37398         * ggc-page.c: Likewise.
37399         * ggc.h (ggc_internal_alloc_stat): Likewise.
37400         (ggc_internal_alloc): Remove macro.
37401         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
37402         (ggc_internal_cleared_alloc): Remove macro.
37403         (GGC_RESIZEVEC): Adjust.
37404         (ggc_resizevar): Remove macro.
37405         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
37406         (ggc_internal_cleared_vec_alloc_stat): Likewise.
37407         (ggc_internal_vec_cleared_alloc): Remove macro.
37408         (ggc_alloc_atomic_stat): Drop _stat suffix.
37409         (ggc_alloc_atomic): Remove macro.
37410         (ggc_alloc_cleared_atomic): Remove macro.
37411         (ggc_alloc_string_stat): Drop _stat suffix.
37412         (ggc_alloc_string): Remove macro.
37413         (ggc_alloc_rtx_def_stat): Adjust.
37414         (ggc_alloc_tree_node_stat): Likewise.
37415         (ggc_alloc_cleared_tree_node_stat): Likewise.
37416         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
37417         (ggc_alloc_cleared_simd_clone_stat): Likewise.
37418         * gimple.c (gimple_build_omp_for): Likewise.
37419         (gimple_copy): Likewise.
37420         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
37421         * toplev.c (realloc_for_line_map): Adjust.
37422         * tree-data-ref.h (lambda_vector_new): Likewise.
37423         * tree-phinodes.c (allocate_phi_node): Likewise.
37424         * tree.c (grow_tree_vec_stat): Likewise.
37425         * vec.h (va_gc::reserve): Adjust.
37426
37427 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
37428
37429         * config/microblaze/microblaze.c (break_handler): New Declaration.
37430         (microblaze_break_function_p,microblaze_is_break_handler): New.
37431         (compute_frame_size): Use microblaze_break_function_p.
37432         Add the test of break_handler.
37433         (microblaze_function_prologue) : Add the test of variable
37434         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
37435         (microblaze_function_epilogue) : Add the test of break_handler.
37436         (microblaze_globalize_label) : Add the test of break_handler.
37437         Check the name by BREAK_HANDLER_NAME.
37438
37439         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
37440
37441         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
37442         microblaze_is_break_handler test.
37443         (call_internal1,call_value_intern): Use microblaze_break_function_p.
37444         Use SYMBOL_REF_DECL.
37445
37446         * config/microblaze/microblaze-protos.h
37447         (microblaze_break_function_p,microblaze_is_break_handler):
37448         New Declaration.
37449
37450         * doc/extend.texi (MicroBlaze break_handler Functions): Document
37451         new MicroBlaze break_handler functions.
37452
37453 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
37454
37455         * doc/extend.texi (Size of an asm): Move node text according
37456         to its @menu entry position.
37457
37458 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
37459
37460         PR tree-optimization/61140
37461         PR tree-optimization/61150
37462         PR tree-optimization/61197
37463         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
37464
37465 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
37466
37467         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
37468
37469 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
37470
37471         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
37472         __SIZEOF_INT128__ is defined.
37473
37474 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
37475
37476         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
37477         (rs6000_delegitimize_address): Use it.
37478
37479 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
37480
37481         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
37482         inplace argument.  Store the new address in the original MEM when true.
37483         * emit-rtl.c (change_address_1): Likewise.
37484         (adjust_address_1, adjust_automodify_address_1, offset_address):
37485         Update accordingly.
37486         * rtl.h (plus_constant): Add an inplace argument.
37487         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
37488         when true.  Avoid generating (plus X (const_int 0)).
37489         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
37490         in-place.  Pass true to plus_constant.
37491         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
37492
37493 2014-05-16  Dehao Chen  <dehao@google.com>
37494
37495         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
37496
37497 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
37498
37499         PR target/54089
37500         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
37501         patterns.
37502         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
37503
37504 2014-05-16  Dehao Chen  <dehao@google.com>
37505
37506         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
37507         optimize_function_for_size_p.
37508         * regs.h (REG_FREQ_FROM_BB): Likewise.
37509
37510 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
37511
37512         PR target/51244
37513         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
37514         negt_reg_operand cases.
37515         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
37516         predicate.
37517         * config/sh/predicates.md (cbranch_treg_value): Simplify.
37518
37519 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
37520
37521         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
37522         target variants.
37523
37524 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
37525
37526         Revert:
37527         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
37528
37529         * tree-cfg.c (dump_function_to_file): Dump the return type of
37530         functions, in a line to itself before the function body, mimicking
37531         the layout of a C function.
37532
37533 2014-05-16  Dehao Chen  <dehao@google.com>
37534
37535         * cfghooks.c (make_forwarder_block): Use direct computation to
37536         get fall-through edge's count and frequency.
37537
37538 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
37539
37540         * config/arc/arc.c (arc_init): Fix typo in error message.
37541         * config/i386/i386.c (ix86_expand_builtin): Likewise.
37542         (split_stack_prologue_scratch_regno): Likewise.
37543         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
37544         word from error message.
37545
37546 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
37547
37548         * ira-costs.c: Fix typo in comment.
37549
37550 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
37551
37552         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
37553
37554 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
37555
37556         * varpool.c (dump_varpool_node): Dump write-only flag.
37557         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
37558         write-only flag.
37559         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
37560         write-only variables.
37561         * ipa.c (process_references): New function.
37562         (set_readonly_bit): New function.
37563         (set_writeonly_bit): New function.
37564         (clear_addressable_bit): New function.
37565         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
37566         fix handling of aliases.
37567         * cgraph.h (struct varpool_node): Add writeonly flag.
37568
37569 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
37570
37571         PR rtl-optimization/60969
37572         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
37573         Calculate costs for this case.
37574
37575 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
37576
37577         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
37578         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
37579
37580 2014-05-16  Richard Biener  <rguenther@suse.de>
37581
37582         PR tree-optimization/61194
37583         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
37584         bool patterns ending in a COND_EXPR.
37585
37586 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37587
37588         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
37589
37590 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37591
37592         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
37593         where we were unable to cost an RTX.
37594
37595 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37596
37597         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
37598         HIGH, LO_SUM.
37599
37600 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37601             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37602
37603         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
37604
37605 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37606             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37607
37608         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
37609         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
37610
37611 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37612             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37613
37614         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
37615         operators.
37616
37617 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37618             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37619
37620         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
37621         DIV/MOD.
37622
37623 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37624             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37625
37626         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
37627         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
37628
37629 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37630             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37631
37632         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
37633         rotates and shifts.
37634
37635 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37636             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37637
37638         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
37639         ZERO_EXTEND and SIGN_EXTEND better.
37640
37641 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37642             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37643
37644         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
37645         logical operations.
37646
37647 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37648             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37649
37650         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
37651         costs when costing loads and stores to memory.
37652
37653 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37654             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
37655
37656         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
37657         for SET RTX.
37658
37659 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37660
37661         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
37662
37663 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37664             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37665
37666         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
37667         to...
37668         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
37669         well formed.
37670         (aarch64_rtx_mult_cost): New.
37671         (aarch64_rtx_costs): Use it, refactor as appropriate.
37672
37673 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37674             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37675
37676         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
37677         emit instructions, return number of instructions which would
37678         be emitted.
37679         (aarch64_add_constant): Update call to aarch64_build_constant.
37680         (aarch64_output_mi_thunk): Likewise.
37681         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
37682         a CONST_DOUBLE.
37683
37684 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37685
37686         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
37687         (TARGET_RTX_COSTS): Call it.
37688
37689 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37690
37691         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
37692         (cortexa57_vector_cost): Likewise.
37693         (cortexa57_tunings): Use them.
37694
37695 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37696
37697         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
37698         (cpu_addrcost_table): Use it.
37699         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
37700         (aarch64_address_cost): Rewrite using aarch64_classify_address,
37701         move it.
37702
37703 2014-05-16  Richard Biener  <rguenther@suse.de>
37704
37705         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
37706         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
37707         (visit_phi): Ignore edges marked as not executable.
37708         (class cond_dom_walker): New.
37709         (cond_dom_walker::before_dom_children): Value-number
37710         control statements and mark successor edges as not
37711         executable if possible.
37712         (run_scc_vn): First walk all control statements in
37713         dominator order, marking edges as not executable.
37714         * tree-inline.c (copy_edges_for_bb): Be not confused
37715         about random edge flags.
37716
37717 2014-05-16  Richard Biener  <rguenther@suse.de>
37718
37719         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
37720
37721 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
37722
37723         PR target/61193
37724         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
37725         (__TM_simple_begin): Use it.
37726         (__TM_begin): Likewise.
37727
37728 2014-05-15  Martin Jambor  <mjambor@suse.cz>
37729
37730         PR ipa/61085
37731         * ipa-prop.c (update_indirect_edges_after_inlining): Check
37732         type_preserved flag when the indirect edge is polymorphic.
37733
37734 2014-05-15  Martin Jambor  <mjambor@suse.cz>
37735
37736         PR tree-optimization/61090
37737         * tree-sra.c (sra_modify_expr): Pass the current gsi to
37738         build_ref_for_model.
37739
37740 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37741
37742         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
37743         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
37744
37745 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
37746
37747         PR tree-optimization/61158
37748         * fold-const.c (fold_binary_loc): If X is zero-extended and
37749         shiftc >= prec, make sure zerobits is all ones instead of
37750         invoking undefined behavior.
37751
37752 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
37753
37754         * regcprop.h: New file.
37755         * regcprop.c (skip_debug_insn_p): New decl.
37756         (replace_oldest_value_reg): Check skip_debug_insn_p.
37757         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
37758         * shrink-wrap.c: Include regcprop.h.
37759         (prepare_shrink_wrap): Call
37760         copyprop_hardreg_forward_bb_without_debug_insn.
37761
37762 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
37763
37764         * shrink-wrap.h: Update comment.
37765         * shrink-wrap.c: Update comment.
37766         (next_block_for_reg): Rename to live_edge_for_reg.
37767         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
37768         (move_insn_for_shrink_wrap): Split live_edge.
37769         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
37770
37771 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
37772
37773         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
37774         Delete.
37775         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
37776         * config/sparc/sparc.md (fptype_ut699): New attribute.
37777         (in_branch_delay): Return false if -mfix-ut699 is specified and
37778         fptype_ut699 is set to single.
37779         (truncdfsf2): Add fptype_ut699 attribute.
37780         (fix_truncdfsi2): Likewise.
37781         (floatsisf2): Change fptype attribute.
37782         (fix_truncsfsi2): Likewise.
37783         (negtf2_notv9): Delete.
37784         (negtf2_v9): Likewise.
37785         (negtf2_hq): New instruction.
37786         (negtf2): New instruction and splitter.
37787         (negdf2_notv9): Rewrite.
37788         (abstf2_notv9): Delete.
37789         (abstf2_hq_v9): Likewise.
37790         (abstf2_v9): Likewise.
37791         (abstf2_hq): New instruction.
37792         (abstf2): New instruction and splitter.
37793         (absdf2_notv9): Rewrite.
37794
37795 2014-05-14  Cary Coutant  <ccoutant@google.com>
37796
37797         PR debug/61013
37798         * opts.c (common_handle_option): Don't special-case "-g".
37799         (set_debug_level): Default to at least level 2 with "-g".
37800
37801 2014-05-14  DJ Delorie  <dj@redhat.com>
37802
37803         * config/msp430/msp430.c (msp430_builtin): Add
37804         MSP430_BUILTIN_DELAY_CYCLES.
37805         (msp430_init_builtins): Register void __delay_cycles(long long).
37806         (msp430_builtin_decl): Add it.
37807         (cg_magic_constant): New.
37808         (msp430_expand_delay_cycles): New.
37809         (msp430_expand_builtin): Call it.
37810         (msp430_print_operand_raw): Change integer printing from "int" to
37811         HOST_WIDE_INT.
37812         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
37813         (delay_cycles_start): New.
37814         (delay_cycles_end): New.
37815         (delay_cycles_32): New.
37816         (delay_cycles_32x): New.
37817         (delay_cycles_16): New.
37818         (delay_cycles_16x): New.
37819         (delay_cycles_2): New.
37820         (delay_cycles_1): New.
37821         * doc/extend.texi: Document __delay_cycles().
37822
37823 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
37824
37825         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
37826         length attribute computation.
37827
37828 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
37829
37830         PR debug/61188
37831         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
37832
37833 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
37834
37835         PR target/61084
37836         * config/sparc/sparc.md: Fix types of low and high in DI constant
37837         splitter.  Use gen_int_mode in some other splitters.
37838
37839 2014-05-14  Martin Jambor  <mjambor@suse.cz>
37840
37841         PR ipa/60897
37842         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
37843
37844 2014-05-14  James Norris  <jnorris@codesourcery.com>
37845
37846         * omp-low.c (expand_parallel_call): Remove shadow variable.
37847         (expand_omp_taskreg): Likewise.
37848
37849 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
37850
37851         * common/config/i386/i386-common.c
37852         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
37853         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
37854         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
37855         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
37856         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
37857         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
37858         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
37859         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
37860         xsavecintrin.h, xsavesintrin.h.
37861         (x86_64-*-*): Ditto.
37862         * config/i386/clflushoptintrin.h: New.
37863         * config/i386/xsavecintrin.h: Ditto.
37864         * config/i386/xsavesintrin.h: Ditto.
37865         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
37866         (bit_XSAVES): Ditto.
37867         (bit_XSAVES): Ditto.
37868         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
37869         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
37870         -mno-clflushopt.
37871         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
37872         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
37873         OPTION_MASK_ISA_XSAVES.
37874         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
37875         -mxsavec, -mxsaves.
37876         (PTA_CLFLUSHOPT) Define.
37877         (PTA_XSAVEC): Ditto.
37878         (PTA_XSAVES): Ditto.
37879         (ix86_option_override_internal): Handle new options.
37880         (ix86_valid_target_attribute_inner_p): Ditto.
37881         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
37882         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
37883         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
37884         (bdesc_special_args): Add __builtin_ia32_xsaves,
37885         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
37886         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
37887         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
37888         (ix86_expand_builtin): Handle new builtins.
37889         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
37890         (TARGET_CLFLUSHOPT_P): Ditto.
37891         (TARGET_XSAVEC): Ditto.
37892         (TARGET_XSAVEC_P): Ditto.
37893         (TARGET_XSAVES): Ditto.
37894         (TARGET_XSAVES_P): Ditto.
37895         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
37896         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
37897         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
37898         (ANY_XRSTOR): New.
37899         (ANY_XRSTOR64): Ditto.
37900         (xrstor): Ditto.
37901         (xrstor): Change into <xrstor>.
37902         (xrstor_rex64): Change into <xrstor>_rex64.
37903         (xrstor64): Change into <xrstor>64
37904         (clflushopt): New.
37905         * config/i386/i386.opt (mclflushopt): New.
37906         (mxsavec): Ditto.
37907         (mxsaves): Ditto.
37908         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
37909         xsavecintrin.h.
37910         * doc/invoke.texi: Document new options.
37911
37912 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
37913
37914         PR rtl-optimization/60866
37915         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
37916         Default it to -1.  Pass it down to init_simplejump_data.
37917         (init_simplejump_data): New parameter old_seqno.  Pass it down
37918         to get_seqno_for_a_jump.
37919         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
37920         initializing new jump seqno as a last resort.  Add comment.
37921         (sel_redirect_edge_and_branch): Save old seqno of the conditional
37922         jump and pass it down to sel_init_new_insn.
37923         (sel_redirect_edge_and_branch_force): Likewise.
37924
37925 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
37926
37927         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
37928         shifted values to avoid build warning.
37929
37930 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
37931
37932         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
37933         * cfgrtl.c (rtl_merge_blocks): Fix comment.
37934         (cfg_layout_merge_blocks): Likewise.
37935         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
37936
37937 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
37938
37939         PR rtl-optimization/60901
37940         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
37941         bb predecessor belongs to the same scheduling region.  Adjust comment.
37942
37943 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
37944
37945         * doc/sourcebuild.texi: (dfp_hw): Document.
37946         (p8vector_hw): Likewise.
37947         (powerpc_eabi_ok): Likewise.
37948         (powerpc_elfv2): Likewise.
37949         (powerpc_htm_ok): Likewise.
37950         (ppc_recip_hw): Likewise.
37951         (vsx_hw): Likewise.
37952
37953 2014-05-13  Cary Coutant  <ccoutant@google.com>
37954
37955         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
37956
37957 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
37958
37959         * gengtype-parse.c (require3): Eliminate in favor of...
37960         (require4): New.
37961         (require_template_declaration): Update to support optional single *
37962         on a type.
37963
37964         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
37965         (create_user_defined_type): Handle a single level of explicit
37966         pointerness within template arguments.
37967         (struct write_types_data): Add field "kind".
37968         (filter_type_name): Handle "*" character.
37969         (write_user_func_for_structure_ptr): Require a write_types_data
37970         rather than just a prefix string, so that we can look up the kind
37971         of the wtd and use it as an index into wrote_user_func_for_ptr,
37972         ensuring that such functions are written at most once.  Support
37973         subclasses by invoking the marking function of the ultimate base class.
37974         (write_user_func_for_structure_body): Require a write_types_data
37975         rather than just a prefix string, so that we can pass this to
37976         write_user_func_for_structure_ptr.
37977         (write_func_for_structure): Likewise.
37978         (ggc_wtd): Add initializer of new "kind" field.
37979         (pch_wtd): Likewise.
37980
37981         * gengtype.h (enum write_types_kinds): New.
37982         (struct type): Add field wrote_user_func_for_ptr to the "s"
37983         union member.
37984
37985 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
37986
37987         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
37988         instead of const_binop.
37989         (fold_binary_loc): Likewise.
37990
37991 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
37992
37993         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
37994         calculation to match get_ref_base_and_extent.
37995
37996 2014-05-13  Catherine Moore  <clm@codesourcery.com>
37997             Sandra Loosemore  <sandra@codesourcery.com>
37998
37999         * configure.ac: Fix assembly for explicit JALR relocation check.
38000         * configure: Regenerate.
38001
38002 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38003
38004         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
38005         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
38006         Remove associated type declarations and initialisations.
38007         (arm_expand_neon_builtin): Likewise.
38008         (neon_emit_pair_result_insn): Delete.
38009         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
38010         * config/arm/neon.md (neon_vtrn<mode>): Delete.
38011         (neon_vzip<mode>): Likewise.
38012         (neon_vuzp<mode>): Likewise.
38013
38014 2014-05-13  Richard Biener  <rguenther@suse.de>
38015
38016         PR ipa/60973
38017         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
38018         it needs revisiting whether the call still may be tail-called.
38019
38020 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38021
38022         * rtl.def (SYMBOL_REF): Remove middle "0" field.
38023         * rtl.h (block_symbol): Reduce number of fields to 2.
38024         (rtx_def): Add u2.symbol_ref_flags.
38025         (SYMBOL_REF_FLAGS): Use it.
38026         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
38027         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
38028         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
38029         Lower index of SYMBOL_REF_DATA.
38030         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
38031         Print SYMBOL_REF_FLAGS at the same time.
38032         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
38033
38034 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38035
38036         * rtl.def (VAR_LOCATION): Remove "i" field.
38037         * rtl.h (rtx_def): Add u2.var_location_status.
38038         (PAT_VAR_LOCATION_STATUS): Use it.
38039         (gen_rtx_VAR_LOCATION): Declare.
38040         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
38041         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
38042         * var-tracking.c (emit_note_insn_var_location): Remove casts.
38043
38044 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38045
38046         * rtl.def (scratch): Fix outdated comment and remove "0" field.
38047         * gengtype.c (adjust_field_rtx_def): Update accordingly.
38048
38049 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38050
38051         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
38052         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
38053         * rtl.h (rtx_def): Add insn_uid to u2 field.
38054         (RTX_FLAG_CHECK8): Delete in favor of...
38055         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
38056         (INSN_DELETED_P): Update accordingly.
38057         (INSN_UID): Use u2.insn_uid.
38058         (INSN_CHAIN_CODE_P): Define.
38059         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
38060         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
38061         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
38062         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
38063         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
38064         indices accordingly.
38065         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
38066         Update indices for insn-chain rtxes.
38067         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
38068         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
38069         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
38070         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
38071         * combine.c (try_combine): Likewise.
38072         * ira.c (setup_prohibited_mode_move_regs): Likewise.
38073
38074 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38075
38076         * rtl.def (REG): Remove middle field.
38077         * rtl.h (rtx_def): Add orignal_regno to u2.
38078         (ORIGINAL_REGNO): Use it instead of field 1.
38079         (REG_ATTRS): Lower field index accordingly.
38080         * gengtype.c (adjust_field_rtx_def): Remove handling of
38081         ORIGINAL_REGNO.  Move REG_ATTRS index down.
38082         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
38083         code that prints the REGNO.
38084
38085 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38086
38087         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
38088         GENERATOR_FILE.
38089
38090 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38091
38092         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
38093
38094 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
38095
38096         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
38097         (alloc_iv): Lower base expressions containing ADDR_EXPR.
38098
38099 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
38100
38101         * config/aarch64/aarch64-protos.h
38102         (aarch64_hard_regno_caller_save_mode): New prototype.
38103         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
38104         New function.
38105         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
38106
38107 2014-05-13  Christian Bruel  <christian.bruel@st.com>
38108
38109         * target.def (mode_switching): New hook vector.
38110         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
38111         (mode_exit, modepriority_to_mode): Likewise.
38112         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
38113         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38114         * target.h: Include tm.h and hard-reg-set.h.
38115         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
38116         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
38117         * doc/tm.texi Regenerate.
38118         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
38119         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38120         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
38121         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
38122         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
38123         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38124         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
38125         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
38126         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
38127         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
38128         (ix86_emit_mode_set): Hookify.
38129         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
38130         Delete.
38131         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38132         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
38133         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
38134         (epiphany_mode_priority_to_mode): Remove declaration.
38135         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
38136         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
38137         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
38138         Likewise.
38139         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
38140         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
38141         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
38142
38143 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
38144
38145         PR target/61060
38146         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
38147         is const0_rtx, return immediately.  Don't test count == 0 when
38148         it is always true.
38149
38150 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
38151
38152         * Makefile.in: add shrink-wrap.o.
38153         * config/i386/i386.c: include "shrink-wrap.h"
38154         * function.c: Likewise.
38155         (requires_stack_frame_p, next_block_for_reg,
38156         move_insn_for_shrink_wrap, prepare_shrink_wrap,
38157         dup_block_and_redirect): Move to shrink-wrap.c
38158         (thread_prologue_and_epilogue_insns): Extract three code segments
38159         as functions in shrink-wrap.c
38160         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
38161         shrink-wrap.h
38162         * shrink-wrap.c: New file.
38163         * shrink-wrap.h: New file.
38164
38165 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
38166
38167         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
38168         reference to Solaris.
38169
38170 2014-05-12  Mike Stump  <mikestump@comcast.net>
38171
38172         PR other/31778
38173         * genattrtab.c (filename): Add.
38174         (convert_set_attr_alternative): Improve error message.
38175         (check_defs): Restore read_md_filename for error messages.
38176         (gen_insn): Save filename.
38177
38178 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
38179
38180         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
38181         -fno-local-ivars and -fivar-visibility.
38182         * c-family/c.opt: Make -Wshadow also implicitly enable
38183         -Wshadow-ivar.
38184
38185 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
38186
38187         * doc/tm.texi: Remove reference to deleted macro.
38188         * doc/tm.texi.in: Likewise.
38189
38190 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
38191
38192         PR target/60991
38193         * config/avr/avr.c (avr_out_store_psi): Use correct constant
38194         to restore Y.
38195
38196 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
38197
38198         PR libgcc/61152
38199         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
38200         * config/arm/aout.h (License): Same.
38201         * config/arm/bpabi.h (License): Same.
38202         * config/arm/elf.h (License): Same.
38203         * config/arm/linux-elf.h (License): Same.
38204         * config/arm/linux-gas.h (License): Same.
38205         * config/arm/netbsd-elf.h (License): Same.
38206         * config/arm/uclinux-eabi.h (License): Same.
38207         * config/arm/uclinux-elf.h (License): Same.
38208         * config/arm/vxworks.h (License): Same.
38209
38210 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
38211
38212         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
38213         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
38214         number of operands to 3.
38215         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
38216         * tree-nested.c (convert_nonlocal_omp_clauses,
38217         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
38218         * gimplify.c (gimplify_scan_omp_clauses): Handle
38219         OMP_CLAUSE_LINEAR_STMT.
38220         * omp-low.c (lower_rec_input_clauses): Fix typo.
38221         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
38222         cast between Fortran boolean_type_node and C _Bool if
38223         needed.
38224
38225 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
38226
38227         PR tree-optimization/61136
38228         * wide-int.h (multiple_of_p): Define a version that doesn't return
38229         the quotient.
38230         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
38231         integer_zerop/const_binop pair.
38232         (multiple_of_p): Likewise, converting both operands to widest_int
38233         precision.
38234
38235 2014-05-09  Teresa Johnson  <tejohnson@google.com>
38236
38237         * cgraphunit.c (analyze_functions): Use correct dump file.
38238
38239 2014-05-09  Florian Weimer  <fweimer@redhat.com>
38240
38241         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
38242         expand_used_vars.
38243         (stack_protect_return_slot_p): New function.
38244         (expand_used_vars): Call stack_protect_decl_p and
38245         stack_protect_return_slot_p for -fstack-protector-strong.
38246
38247 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
38248         Andrew Haley <aph@redhat.com>
38249         Richard Sandiford <rdsandiford@googlemail.com>
38250
38251         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
38252         pages.
38253
38254 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
38255
38256         PR middle-end/61111
38257         * fold-const.c (fold_binary_loc): Changed width of mask.
38258
38259 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
38260
38261         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
38262         unsigned int initializers for regno_in, regno_out.
38263
38264 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
38265
38266         PR target/61055
38267         * config/avr/avr.md (cc): Add new attribute set_vzn.
38268         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
38269         Set cc insn attribute to set_vzn instead of set_zn for alternatives
38270         with INC, DEC or NEG.
38271         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
38272         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
38273         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
38274
38275 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38276
38277         Revert:
38278         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38279
38280         * wide-int.cc (UTItype): Define.
38281         (UDWtype): Define for appropriate W_TYPE_SIZE.
38282
38283 2014-05-09  Richard Biener  <rguenther@suse.de>
38284
38285         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
38286         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
38287         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
38288         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
38289         ssa_propagate): Adjust.
38290
38291 2014-05-08  Jeff Law  <law@redhat.com>
38292
38293         PR tree-optimization/61009
38294         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
38295         tri-state rather than a boolean.  When a block is too big to
38296         thread through, inform caller via negative return value.
38297         (thread_across_edge): If a block was too big for normal threading,
38298         then it's too big for a joiner too, so remove temporary equivalences
38299         and return immediately.
38300
38301 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38302             Matthias Klose  <doko@ubuntu.com>
38303
38304         PR driver/61106
38305         * optc-gen.awk: Fix option handling for -Wunused-parameter.
38306
38307 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
38308
38309         PR target/59952
38310         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
38311
38312 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
38313
38314         PR target/61092
38315         * config/alpha/alpha.c: Include gimple-iterator.h.
38316         (alpha_gimple_fold_builtin): New function.  Move
38317         ALPHA_BUILTIN_UMULH folding from ...
38318         (alpha_fold_builtin): ... here.
38319         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
38320
38321 2014-05-08  Wei Mi  <wmi@google.com>
38322
38323         PR target/58066
38324         * config/i386/i386.c (ix86_compute_frame_layout): Update
38325         preferred_stack_boundary for call, expanded from tls descriptor.
38326         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
38327         to depend on SP register.
38328         (*tls_local_dynamic_base_32_gnu): Ditto.
38329         (*tls_local_dynamic_32_once): Ditto.
38330         (tls_global_dynamic_64_<mode>): Set
38331         ix86_tls_descriptor_calls_expanded_in_cfun.
38332         (tls_local_dynamic_base_64_<mode>): Ditto.
38333         (tls_global_dynamic_32): Set
38334         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
38335         to depend on SP register.
38336         (tls_local_dynamic_base_32): Ditto.
38337
38338 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38339
38340         * config/arm/arm_neon.h: Update comment.
38341         * config/arm/neon-docgen.ml: Delete.
38342         * config/arm/neon-gen.ml: Delete.
38343         * doc/arm-neon-intrinsics.texi: Update comment.
38344
38345 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38346
38347         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
38348         and v4sf versions.
38349         (vand, vorr, veor, vorn, vbic): Remove.
38350         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
38351         iterator.
38352         (neon_vsub_unspec): Likewise.
38353         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
38354
38355 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38356
38357         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
38358         (vadd_s16): Likewise.
38359         (vadd_s32): Likewise.
38360         (vadd_f32): Likewise.
38361         (vadd_u8): Likewise.
38362         (vadd_u16): Likewise.
38363         (vadd_u32): Likewise.
38364         (vadd_s64): Likewise.
38365         (vadd_u64): Likewise.
38366         (vaddq_s8): Likewise.
38367         (vaddq_s16): Likewise.
38368         (vaddq_s32): Likewise.
38369         (vaddq_s64): Likewise.
38370         (vaddq_f32): Likewise.
38371         (vaddq_u8): Likewise.
38372         (vaddq_u16): Likewise.
38373         (vaddq_u32): Likewise.
38374         (vaddq_u64): Likewise.
38375         (vmul_s8): Likewise.
38376         (vmul_s16): Likewise.
38377         (vmul_s32): Likewise.
38378         (vmul_f32): Likewise.
38379         (vmul_u8): Likewise.
38380         (vmul_u16): Likewise.
38381         (vmul_u32): Likewise.
38382         (vmul_p8): Likewise.
38383         (vmulq_s8): Likewise.
38384         (vmulq_s16): Likewise.
38385         (vmulq_s32): Likewise.
38386         (vmulq_f32): Likewise.
38387         (vmulq_u8): Likewise.
38388         (vmulq_u16): Likewise.
38389         (vmulq_u32): Likewise.
38390         (vsub_s8): Likewise.
38391         (vsub_s16): Likewise.
38392         (vsub_s32): Likewise.
38393         (vsub_f32): Likewise.
38394         (vsub_u8): Likewise.
38395         (vsub_u16): Likewise.
38396         (vsub_u32): Likewise.
38397         (vsub_s64): Likewise.
38398         (vsub_u64): Likewise.
38399         (vsubq_s8): Likewise.
38400         (vsubq_s16): Likewise.
38401         (vsubq_s32): Likewise.
38402         (vsubq_s64): Likewise.
38403         (vsubq_f32): Likewise.
38404         (vsubq_u8): Likewise.
38405         (vsubq_u16): Likewise.
38406         (vsubq_u32): Likewise.
38407         (vsubq_u64): Likewise.
38408         (vand_s8): Likewise.
38409         (vand_s16): Likewise.
38410         (vand_s32): Likewise.
38411         (vand_u8): Likewise.
38412         (vand_u16): Likewise.
38413         (vand_u32): Likewise.
38414         (vand_s64): Likewise.
38415         (vand_u64): Likewise.
38416         (vandq_s8): Likewise.
38417         (vandq_s16): Likewise.
38418         (vandq_s32): Likewise.
38419         (vandq_s64): Likewise.
38420         (vandq_u8): Likewise.
38421         (vandq_u16): Likewise.
38422         (vandq_u32): Likewise.
38423         (vandq_u64): Likewise.
38424         (vorr_s8): Likewise.
38425         (vorr_s16): Likewise.
38426         (vorr_s32): Likewise.
38427         (vorr_u8): Likewise.
38428         (vorr_u16): Likewise.
38429         (vorr_u32): Likewise.
38430         (vorr_s64): Likewise.
38431         (vorr_u64): Likewise.
38432         (vorrq_s8): Likewise.
38433         (vorrq_s16): Likewise.
38434         (vorrq_s32): Likewise.
38435         (vorrq_s64): Likewise.
38436         (vorrq_u8): Likewise.
38437         (vorrq_u16): Likewise.
38438         (vorrq_u32): Likewise.
38439         (vorrq_u64): Likewise.
38440         (veor_s8): Likewise.
38441         (veor_s16): Likewise.
38442         (veor_s32): Likewise.
38443         (veor_u8): Likewise.
38444         (veor_u16): Likewise.
38445         (veor_u32): Likewise.
38446         (veor_s64): Likewise.
38447         (veor_u64): Likewise.
38448         (veorq_s8): Likewise.
38449         (veorq_s16): Likewise.
38450         (veorq_s32): Likewise.
38451         (veorq_s64): Likewise.
38452         (veorq_u8): Likewise.
38453         (veorq_u16): Likewise.
38454         (veorq_u32): Likewise.
38455         (veorq_u64): Likewise.
38456         (vbic_s8): Likewise.
38457         (vbic_s16): Likewise.
38458         (vbic_s32): Likewise.
38459         (vbic_u8): Likewise.
38460         (vbic_u16): Likewise.
38461         (vbic_u32): Likewise.
38462         (vbic_s64): Likewise.
38463         (vbic_u64): Likewise.
38464         (vbicq_s8): Likewise.
38465         (vbicq_s16): Likewise.
38466         (vbicq_s32): Likewise.
38467         (vbicq_s64): Likewise.
38468         (vbicq_u8): Likewise.
38469         (vbicq_u16): Likewise.
38470         (vbicq_u32): Likewise.
38471         (vbicq_u64): Likewise.
38472         (vorn_s8): Likewise.
38473         (vorn_s16): Likewise.
38474         (vorn_s32): Likewise.
38475         (vorn_u8): Likewise.
38476         (vorn_u16): Likewise.
38477         (vorn_u32): Likewise.
38478         (vorn_s64): Likewise.
38479         (vorn_u64): Likewise.
38480         (vornq_s8): Likewise.
38481         (vornq_s16): Likewise.
38482         (vornq_s32): Likewise.
38483         (vornq_s64): Likewise.
38484         (vornq_u8): Likewise.
38485         (vornq_u16): Likewise.
38486         (vornq_u32): Likewise.
38487         (vornq_u64): Likewise.
38488
38489 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38490
38491         * wide-int.cc (UTItype): Define.
38492         (UDWtype): Define for appropriate W_TYPE_SIZE.
38493
38494 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
38495
38496         PR tree-optimization/59100
38497         * tree-ssa-phiopt.c: Include tree-inline.h.
38498         (neutral_element_p, absorbing_element_p): New functions.
38499         (value_replacement): Handle conditional binary operations with a
38500         neutral or absorbing element.
38501
38502 2014-05-08  Richard Biener  <rguenther@suse.de>
38503
38504         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
38505         folding the expression.
38506         (valueize_expr): Remove.
38507         (visit_reference_op_load): Do not valueize the result of
38508         vn_get_expr_for.
38509         (simplify_binary_expression): Likewise.
38510         (simplify_unary_expression): Likewise.
38511
38512 2014-05-08  Richard Biener  <rguenther@suse.de>
38513
38514         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
38515         looking at TYPE_ARG_TYPES.
38516
38517 2014-05-08  Richard Biener  <rguenther@suse.de>
38518
38519         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
38520         pointer propagation special-case.
38521
38522 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
38523
38524         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
38525         core part of address expressions.
38526
38527 2014-05-08  Alan Modra  <amodra@gmail.com>
38528
38529         PR target/60737
38530         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
38531         loads and stores when -mno-strict-align at any alignment.
38532         (expand_block_clear): Similarly.  Also correct calculation of
38533         instruction count.
38534
38535 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
38536
38537         PR middle-end/39246
38538         * tree-complex.c (expand_complex_move): Keep line info when expanding
38539         complex move.
38540         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
38541         of complex expression. Use new argument to display correct location
38542         for values coming from phi statement.
38543         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
38544         (warn_uninitialized_phi): Pass location of phi argument to
38545         warn_uninit.
38546         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
38547         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
38548
38549 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
38550
38551         * config/rs6000/predicates.md (indexed_address_mem): New.
38552         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
38553         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
38554         fpstore_ux, fpstore_u.
38555         (sign_extend, indexed, update): New.
38556         (cell_micro): Adjust.
38557         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
38558         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
38559         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
38560         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
38561         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
38562         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
38563         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
38564         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
38565         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
38566         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
38567         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
38568         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
38569         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
38570         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
38571         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
38572
38573         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
38574         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
38575         *vsx_extract_<mode>_store): Adjust.
38576         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
38577         is_cracked_insn, insn_must_be_first_in_group,
38578         insn_must_be_last_in_group): Adjust.
38579
38580         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
38581         Adjust.
38582         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
38583         ppc440-fpstore): Adjust.
38584         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
38585         ppc476-fpstore): Adjust.
38586         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
38587         ppc601-fpstore): Adjust.
38588         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
38589         Adjust.
38590         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
38591         Adjust.
38592         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
38593         ppc7450-fpstore): Adjust.
38594         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
38595         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
38596         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
38597         Adjust.
38598         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
38599         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
38600         cell-fpstore, cell-fpstore-update): Adjust.
38601         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
38602         ppce300c3_store, ppce300c3_fpstore): Adjust.
38603         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
38604         e500mc_fpstore): Adjust.
38605         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
38606         e500mc64_store, e500mc64_fpstore): Adjust.
38607         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
38608         e5500_fpstore): Adjust.
38609         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
38610         e6500_fpstore): Adjust.
38611         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
38612         Adjust.
38613         * config/rs6000/power4.md (power4-load, power4-load-ext,
38614         power4-load-ext-update, power4-load-ext-update-indexed,
38615         power4-load-update-indexed, power4-load-update, power4-fpload,
38616         power4-fpload-update, power4-store, power4-store-update,
38617         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
38618         Adjust.
38619         * config/rs6000/power5.md (power5-load, power5-load-ext,
38620         power5-load-ext-update, power5-load-ext-update-indexed,
38621         power5-load-update-indexed, power5-load-update, power5-fpload,
38622         power5-fpload-update, power5-store, power5-store-update,
38623         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
38624         Adjust.
38625         * config/rs6000/power6.md (power6-load, power6-load-ext,
38626         power6-load-update, power6-load-update-indexed,
38627         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
38628         power6-fpload-update, power6-store, power6-store-update,
38629         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
38630         Adjust.
38631         * config/rs6000/power7.md (power7-load, power7-load-ext,
38632         power7-load-update, power7-load-update-indexed,
38633         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
38634         power7-fpload-update, power7-store, power7-store-update,
38635         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
38636         Adjust.
38637         * config/rs6000/power8.md (power8-load, power8-load-update,
38638         power8-load-ext, power8-load-ext-update, power8-fpload,
38639         power8-fpload-update, power8-store, power8-store-update-indexed,
38640         power8-fpstore, power8-fpstore-update): Adjust.
38641         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
38642         Adjust.
38643         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
38644         titan_lsu_store, titan_lsu_fpstore): Adjust.
38645         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
38646
38647 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
38648
38649         PR target/60884
38650         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
38651         unrolled byte insns.  Emit address increments after move insns.
38652
38653 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
38654
38655         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
38656         const_gimple, rather than a gimple.
38657         (gimple_call_builtin_p): Likewise, for the three variants.
38658
38659         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
38660         (gimple_call_builtin_p): Likewise, for the three variants.
38661
38662 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
38663
38664         PR tree-optimization/61095
38665         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
38666
38667 2014-05-07  Richard Biener  <rguenther@suse.de>
38668
38669         PR tree-optimization/61034
38670         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
38671         (maybe_skip_until): Use translate to take into account
38672         lattices when trying to do disambiguations.
38673         (get_continuation_for_phi_1): Likewise.
38674         (get_continuation_for_phi): Adjust for added translate arguments.
38675         (walk_non_aliased_vuses): Likewise.
38676         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
38677         (walk_non_aliased_vuses): Likewise.
38678         (call_may_clobber_ref_p_1): Declare.
38679         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
38680         calls.  Stop early if we are only supposed to disambiguate.
38681         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
38682
38683 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
38684
38685         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
38686         Emit an error when the function has arguments.
38687
38688 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
38689
38690         * cfgloop.h (unswitch_loops): Remove.
38691         * doc/passes.texi: Remove references to loop-unswitch.c
38692         * timevar.def (TV_LOOP_UNSWITCH): Remove.
38693
38694 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
38695
38696         * tree-vect-data-refs.c (vect_grouped_load_supported): New
38697         check for loads group of length 3.
38698         (vect_permute_load_chain): New permutations for loads group of
38699         length 3.
38700         * tree-vect-stmts.c (vect_model_load_cost): Change cost
38701         of vec_perm_shuffle for the new permutations.
38702
38703 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
38704
38705         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
38706         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
38707         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
38708         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
38709         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
38710         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
38711         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
38712         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
38713
38714 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
38715
38716         * loop-unswitch.c: Delete.
38717
38718 2014-05-07  Richard Biener  <rguenther@suse.de>
38719
38720         * config.gcc: Always set need_64bit_hwint to yes.
38721
38722 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
38723
38724         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
38725         of using optimize_size.
38726
38727 2014-05-06  Mike Stump  <mikestump@comcast.net>
38728
38729         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
38730
38731 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
38732
38733         * config/i386/sse.md (*mov<mode>_internal)
38734         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
38735         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
38736         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
38737         (*<code><mode>3, *andnot<mode>3<mask_name>)
38738         (<mask_codefor><code><mode>3<mask_name>): Only consider
38739         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
38740
38741 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
38742
38743         Revert:
38744         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
38745
38746         * lra-constraints.c (valid_address_p): Move earlier in file.
38747         Add a constraint argument to the address_info version.
38748         (satisfies_memory_constraint_p): New function.
38749         (satisfies_address_constraint_p): Likewise.
38750         (process_alt_operands, curr_insn_transform): Use them.
38751         (process_address): Pass the constraint to valid_address_p when
38752         checking address operands.
38753
38754 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
38755
38756         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
38757         to their respective blocks.  Fix inadvertent use of "node".
38758
38759 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
38760
38761         * emit-rtl.c (init_derived_machine_modes): New functionm, split
38762         out from...
38763         (init_emit_once): ...here.
38764         * rtl.h (init_derived_machine_modes): Declare.
38765         * toplev.c (do_compile): Call it even if no_backend.
38766
38767 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
38768             Mike Stump  <mikestump@comcast.net>
38769             Richard Sandiford  <rdsandiford@googlemail.com>
38770             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38771
38772         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
38773         (rtx_equal_for_memref_p): Update comment.
38774         (adjust_offset_for_component_ref): Use wide-int interfaces.
38775         * builtins.c (get_object_alignment_2): Likewise.
38776         (c_readstr): Likewise.
38777         (target_char_cast): Add comment.
38778         (determine_block_size): Use wide-int interfaces.
38779         (expand_builtin_signbit): Likewise.
38780         (fold_builtin_int_roundingfn): Likewise.
38781         (fold_builtin_bitop): Likewise.
38782         (fold_builtin_bswap): Likewise.
38783         (fold_builtin_logarithm): Use signop.
38784         (fold_builtin_pow): Likewise.
38785         (fold_builtin_memory_op): Use wide-int interfaces.
38786         (fold_builtin_object_size): Likewise.
38787         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
38788         nb_iterations_estimate.
38789         (record_niter_bound): Use wide-int interfaces.
38790         (get_estimated_loop_iterations_int): Likewise.
38791         (get_estimated_loop_iterations): Likewise.
38792         (get_max_loop_iterations): Likewise.
38793         * cfgloop.h: Include wide-int.h.
38794         (struct nb_iter_bound): Change bound to widest_int.
38795         (struct loop): Change nb_iterations_upper_bound and
38796         nb_iterations_estimate to widest_int.
38797         (record_niter_bound): Switch to use widest_int.
38798         (get_estimated_loop_iterations): Likewise.
38799         (get_max_loop_iterations): Likewise.
38800         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
38801         update for wide-int.
38802         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
38803         * combine.c (try_combine): Likewise.
38804         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
38805         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
38806         interfaces.
38807         (aarch64_float_const_representable_p): Likewise.
38808         * config/arc/arc.c: Include wide-int.h.
38809         (arc_can_use_doloop_p): Use wide-int interfaces.
38810         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
38811         (vfp3_const_double_index): Likewise.
38812         * config/avr/avr.c (avr_out_round): Likewise.
38813         (avr_fold_builtin): Likewise.
38814         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
38815         (bfin_can_use_doloop_p): Likewise.
38816         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
38817         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
38818         * config/i386/i386.c: Include wide-int.h.
38819         (ix86_data_alignment): Use wide-int interfaces.
38820         (ix86_local_alignment): Likewise.
38821         (ix86_emit_swsqrtsf): Update real_from_integer.
38822         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
38823         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
38824         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
38825         (zero_constant): Likewise.
38826         (input_operand): Likewise.
38827         (splat_input_operand): Likewise.
38828         (non_logical_cint_operand): Change const_double to const_wide_int.
38829         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
38830         (easy_altivec_constant): Remove comment.
38831         (paired_expand_vector_init): Use CONSTANT_P.
38832         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
38833         (rs6000_emit_move): Update checks.
38834         (rs6000_aggregate_candidate): Use wide-int interfaces.
38835         (rs6000_expand_ternop_builtin): Likewise.
38836         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
38837         (rs6000_assemble_integer): Likewise.
38838         (rs6000_hash_constant): Likewise.
38839         (output_toc): Likewise.
38840         (rs6000_rtx_costs): Likewise.
38841         (rs6000_emit_swrsqrt); Update call to real_from_integer.
38842         * config/rs6000/rs6000-c.c: Include wide-int.h.
38843         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
38844         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
38845         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
38846         Handle CONST_WIDE_INT.
38847         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
38848         Use tree_fits_uhwi_p.
38849         * config/sparc/sparc.c: Include wide-int.h.
38850         (sparc_fold_builtin): Use wide-int interfaces.
38851         * config/vax/vax.c: Include wide-int.h.
38852         (vax_float_literal): Use real_from_integer.
38853         * coretypes.h (struct hwivec_def): New.
38854         (hwivec): New.
38855         (const_hwivec): New.
38856         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
38857         (equiv_constant): Handle CONST_WIDE_INT.
38858         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
38859         (cselib_hash_rtx): Handle CONST_WIDE_INT.
38860         * dbxout.c (stabstr_U): Use wide-int interfaces.
38861         (dbxout_type): Update to use cst_fits_shwi_p.
38862         * defaults.h (LOG2_BITS_PER_UNIT): Define.
38863         (TARGET_SUPPORTS_WIDE_INT): Add default.
38864         * dfp.c: Include wide-int.h.
38865         (decimal_real_to_integer2): Use wide-int interfaces and rename to
38866         decimal_real_to_integer.
38867         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
38868         decimal_real_to_integer.
38869         * doc/generic.texi (Constant expressions): Update for wide_int.
38870         * doc/rtl.texi (const_double): Likewise.
38871         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
38872         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
38873         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
38874         (REAL_VALUE_FROM_INT): Remove.
38875         (TARGET_SUPPORTS_WIDE_INT): New.
38876         * doc/tm.texi: Regenerate.
38877         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
38878         * double-int.h: Include wide-int.h.
38879         (struct wi::int_traits): New.
38880         * dwarf2out.c (get_full_len): New.
38881         (dw_val_equal_p): Add case dw_val_class_wide_int.
38882         (size_of_loc_descr): Likewise.
38883         (output_loc_operands): Likewise.
38884         (insert_double): Remove.
38885         (insert_wide_int): New.
38886         (add_AT_wide): New.
38887         (print_die): Add case dw_val_class_wide_int.
38888         (attr_checksum): Likewise.
38889         (attr_checksum_ordered): Likewise.
38890         (same_dw_val_p): Likewise.
38891         (size_of_die): Likewise.
38892         (value_format): Likewise.
38893         (output_die): Likewise.
38894         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
38895         Use wide-int.
38896         (clz_loc_descriptor): Use wide-int interfaces.
38897         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
38898         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
38899         (round_up_to_align): Use wide-int interfaces.
38900         (field_byte_offset): Likewise.
38901         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
38902         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
38903         CONST_DOUBLE handling.  Use wide-int interfaces.
38904         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
38905         (gen_enumeration_type_die): Use add_AT_wide.
38906         (hash_loc_operands): Add case dw_val_class_wide_int.
38907         (compare_loc_operands): Likewise.
38908         * dwarf2out.h: Include wide-int.h.
38909         (wide_int_ptr): New.
38910         (enum dw_val_class): Add dw_val_class_wide_int.
38911         (struct dw_val_struct): Add val_wide.
38912         * emit-rtl.c (const_wide_int_htab): New.
38913         (const_wide_int_htab_hash): New.
38914         (const_wide_int_htab_eq): New.
38915         (lookup_const_wide_int): New.
38916         (const_double_htab_hash): Use wide-int interfaces.
38917         (const_double_htab_eq): Likewise.
38918         (rtx_to_double_int): Conditionally compile for wide-int.
38919         (immed_double_int_const): Rename to immed_wide_int_const and
38920         update for wide-int.
38921         (immed_double_const): Conditionally compile for wide-int.
38922         (init_emit_once): Use wide-int interfaces.
38923         * explow.c (plus_constant): Likewise.
38924         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
38925         (lshift_value): Use wide-int interfaces.
38926         (expand_mult): Likewise.
38927         (choose_multiplier): Likewise.
38928         (expand_smod_pow2): Likewise.
38929         (make_tree): Likewise.
38930         * expr.c (convert_modes): Consolidate handling of constants.
38931         Use wide-int interfaces.
38932         (emit_group_load_1): Add note.
38933         (store_expr): Update comment.
38934         (get_inner_reference): Use wide-int interfaces.
38935         (expand_constructor): Update comment.
38936         (expand_expr_real_2): Use wide-int interfaces.
38937         (expand_expr_real_1): Likewise.
38938         (reduce_to_bit_field_precision): Likewise.
38939         (const_vector_from_tree): Likewise.
38940         * final.c: Include wide-int-print.h.
38941         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
38942         * fixed-value.c: Include wide-int.h.
38943         (fixed_from_string): Use wide-int interfaces.
38944         (fixed_to_decimal): Likewise.
38945         (fixed_convert_from_real): Likewise.
38946         (real_convert_from_fixed): Likewise.
38947         * fold-const.h (mem_ref_offset): Return an offset_int.
38948         (div_if_zero_remainder): Remove code parameter.
38949         * fold-const.c (div_if_zero_remainder): Remove code parameter.
38950         Use wide-int interfaces.
38951         (may_negate_without_overflow_p): Use wide-int interfaces.
38952         (negate_expr_p): Likewise.
38953         (fold_negate_expr): Likewise.
38954         (int_const_binop_1): Likewise.
38955         (const_binop): Likewise.
38956         (fold_convert_const_int_from_int): Likewise.
38957         (fold_convert_const_int_from_real): Likewise.
38958         (fold_convert_const_int_from_fixed): Likewise.
38959         (fold_convert_const_fixed_from_int): Likewise.
38960         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
38961         (sign_bit_p): Use wide-int interfaces.
38962         (make_range_step): Likewise.
38963         (build_range_check): Likewise.  Pass an integer of the correct type
38964         instead of using integer_one_node.
38965         (range_predecessor): Pass an integer of the correct type instead
38966         of using integer_one_node.
38967         (range_successor): Likewise.
38968         (merge_ranges): Likewise.
38969         (unextend): Use wide-int interfaces.
38970         (extract_muldiv_1): Likewise.
38971         (fold_div_compare): Likewise.
38972         (fold_single_bit_test): Likewise.
38973         (fold_sign_changed_comparison): Likewise.
38974         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
38975         (fold_plusminus_mult_expr): Use wide-int interfaces.
38976         (native_encode_int): Likewise.
38977         (native_interpret_int): Likewise.
38978         (fold_unary_loc): Likewise.
38979         (pointer_may_wrap_p): Likewise.
38980         (size_low_cst): Likewise.
38981         (mask_with_tz): Likewise.
38982         (fold_binary_loc): Likewise.
38983         (fold_ternary_loc): Likewise.
38984         (multiple_of_p): Likewise.
38985         (tree_call_nonnegative_warnv_p): Update calls to
38986         tree_int_cst_min_precision and real_from_integer.
38987         (fold_negate_const): Use wide-int interfaces.
38988         (fold_abs_const): Likewise.
38989         (fold_relational_const): Use tree_int_cst_lt.
38990         (round_up_loc): Use wide-int interfaces.
38991         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
38992         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
38993         * gengtype.c: Remove include of double-int.h.
38994         (do_typedef): Use wide-int interfaces.
38995         (open_base_files): Add wide-int.h.
38996         (main): Add offset_int and widest_int typedefs.
38997         * gengtype-lex.l: Handle "^".
38998         (CXX_KEYWORD): Add "static".
38999         * gengtype-parse.c (require3): New.
39000         (require_template_declaration): Handle constant template arguments
39001         and nested templates.
39002         * gengtype-state.c: Don't include "double-int.h".
39003         * genpreds.c (write_one_predicate_function): Update comment.
39004         (write_tm_constrs_h): Add check for hval and lval use in
39005         CONST_WIDE_INT.
39006         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
39007         (add_to_sequence): Likewise.
39008         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
39009         and const_double_operand.
39010         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
39011         interfaces.
39012         * gimple-fold.c (get_base_constructor): Likewise.
39013         (fold_array_ctor_reference): Likewise.
39014         (fold_nonarray_ctor_reference): Likewise.
39015         (fold_const_aggregate_ref_1): Likewise.
39016         (gimple_val_nonnegative_real_p): Likewise.
39017         (gimple_fold_indirect_ref): Likewise.
39018         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
39019         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
39020         (struct slsr_cand_d): Change index to be widest_int.
39021         (struct incr_info_d): Change incr to be widest_int.
39022         (alloc_cand_and_find_basis): Use wide-int interfaces.
39023         (slsr_process_phi): Likewise.
39024         (backtrace_base_for_ref): Likewise.  Return a widest_int.
39025         (restructure_reference): Take a widest_int instead of a double_int.
39026         (slsr_process_ref): Use wide-int interfaces.
39027         (create_mul_ssa_cand): Likewise.
39028         (create_mul_imm_cand): Likewise.
39029         (create_add_ssa_cand): Likewise.
39030         (create_add_imm_cand): Take a widest_int instead of a double_int.
39031         (slsr_process_add): Use wide-int interfaces.
39032         (slsr_process_cast): Likewise.
39033         (slsr_process_copy): Likewise.
39034         (dump_candidate): Likewise.
39035         (dump_incr_vec): Likewise.
39036         (replace_ref): Likewise.
39037         (cand_increment): Likewise.  Return a widest_int.
39038         (cand_abs_increment): Likewise.
39039         (replace_mult_candidate): Take a widest_int instead of a double_int.
39040         (replace_unconditional_candidate): Use wide-int interfaces.
39041         (incr_vec_index): Take a widest_int instead of a double_int.
39042         (create_add_on_incoming_edge): Likewise.
39043         (create_phi_basis): Use wide-int interfaces.
39044         (replace_conditional_candidate): Likewise.
39045         (record_increment): Take a widest_int instead of a double_int.
39046         (record_phi_increments): Use wide-int interfaces.
39047         (phi_incr_cost): Take a widest_int instead of a double_int.
39048         (lowest_cost_path): Likewise.
39049         (total_savings): Likewise.
39050         (analyze_increments): Use wide-int interfaces.
39051         (ncd_with_phi): Take a widest_int instead of a double_int.
39052         (ncd_of_cand_and_phis): Likewise.
39053         (nearest_common_dominator_for_cands): Likewise.
39054         (insert_initializers): Use wide-int interfaces.
39055         (all_phi_incrs_profitable): Likewise.
39056         (replace_one_candidate): Likewise.
39057         (replace_profitable_candidates): Likewise.
39058         * godump.c: Include wide-int-print.h.
39059         (go_output_typedef): Use wide-int interfaces.
39060         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
39061         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
39062         (build_loop_iteration_domains): Likewise.
39063         * hooks.h: Include wide-int.h rather than double-int.h.
39064         (hook_bool_dint_dint_uint_bool_true): Delete.
39065         (hook_bool_wint_wint_uint_bool_true): Declare.
39066         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
39067         (hook_bool_wint_wint_uint_bool_true): New.
39068         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
39069         interfaces.
39070         (ubsan_expand_si_overflow_mul_check): Likewise.
39071         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
39072         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
39073         (get_ancestor_addr_info): Likewise.
39074         (ipa_modify_call_arguments): Likewise.
39075         * loop-doloop.c (doloop_modify): Likewise.
39076         (doloop_optimize): Likewise.
39077         * loop-iv.c (iv_number_of_iterations): Likewise.
39078         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
39079         (unroll_loop_constant_iterations): Likewise.
39080         (decide_unroll_runtime_iterations): Likewise.
39081         (unroll_loop_runtime_iterations): Likewise.
39082         (decide_peel_simple): Likewise.
39083         (decide_unroll_stupid): Likewise.
39084         * lto-streamer-in.c (streamer_read_wi): Add.
39085         (input_cfg): Use wide-int interfaces.
39086         (lto_input_tree_1): Likewise.
39087         * lto-streamer-out.c (streamer_write_wi): Add.
39088         (hash_tree): Use wide-int interfaces.
39089         (output_cfg): Likewise.
39090         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
39091         (GTFILES): Add wide-int.h and signop.h.
39092         (TAGS): Look for .cc files too.
39093         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
39094         * optabs.c (expand_subword_shift): Likewise.
39095         (expand_doubleword_shift): Likewise.
39096         (expand_absneg_bit): Likewise.
39097         (expand_copysign_absneg): Likewise.
39098         (expand_copysign_bit): Likewise.
39099         * postreload.c (reload_cse_simplify_set): Likewise.
39100         * predict.c (predict_iv_comparison): Likewise.
39101         * pretty-print.h: Include wide-int-print.h.
39102         (pp_wide_int) New.
39103         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
39104         * print-tree.c: Include wide-int-print.h.
39105         (print_node_brief): Use wide-int interfaces.
39106         (print_node): Likewise.
39107         * read-rtl.c (validate_const_wide_int): New.
39108         (read_rtx_code): Add CONST_WIDE_INT case.
39109         * real.c: Include wide-int.h.
39110         (real_to_integer2): Delete.
39111         (real_to_integer): New function, returning a wide_int.
39112         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
39113         (ten_to_ptwo): Update call to real_from_integer.
39114         (real_digit): Likewise.
39115         * real.h: Include signop.h, wide-int.h and insn-modes.h.
39116         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
39117         (REAL_VALUE_TO_INT): Delete.
39118         (real_to_integer): Declare a wide-int form.
39119         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
39120         * recog.c (const_int_operand): Improve comment.
39121         (const_scalar_int_operand): New.
39122         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
39123         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
39124         (split_double): Likewise.
39125         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
39126         (rtx_size): Likewise.
39127         (rtx_alloc_stat_v): New.
39128         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
39129         (cwi_output_hex): New.
39130         (iterative_hash_rtx): Handle CONST_WIDE_INT.
39131         (cwi_check_failed_bounds): New.
39132         * rtl.def (CONST_WIDE_INT): New.
39133         * rtl.h: Include <utility> and wide-int.h.
39134         (struct hwivec_def): New.
39135         (CWI_GET_NUM_ELEM): New.
39136         (CWI_PUT_NUM_ELEM): New.
39137         (struct rtx_def): Add num_elem and hwiv.
39138         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
39139         (CASE_CONST_UNIQUE): Likewise.
39140         (CASE_CONST_ANY): Likewise.
39141         (CONST_SCALAR_INT_P): Likewise.
39142         (CONST_WIDE_INT_P): New.
39143         (CWI_ELT): New.
39144         (HWIVEC_CHECK): New.
39145         (cwi_check_failed_bounds): New.
39146         (CWI_ELT): New.
39147         (HWIVEC_CHECK): New.
39148         (CONST_WIDE_INT_VEC) New.
39149         (CONST_WIDE_INT_NUNITS) New.
39150         (CONST_WIDE_INT_ELT) New.
39151         (rtx_mode_t): New type.
39152         (wi::int_traits <rtx_mode_t>): New.
39153         (wi::shwi): New.
39154         (wi::min_value): New.
39155         (wi::max_value): New.
39156         (rtx_alloc_v) New.
39157         (const_wide_int_alloc): New.
39158         (immed_wide_int_const): New.
39159         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
39160         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
39161         * signop.h: New file.
39162         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
39163         (simplify_const_unary_operation): Use wide-int interfaces.
39164         (simplify_binary_operation_1): Likewise.
39165         (simplify_const_binary_operation): Likewise.
39166         (simplify_const_relational_operation): Likewise.
39167         (simplify_immed_subreg): Likewise.
39168         * stmt.c (expand_case): Likewise.
39169         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
39170         signop rather than a bool.
39171         * stor-layout.c (layout_type): Use wide-int interfaces.
39172         (initialize_sizetypes): Update calls to
39173         set_min_and_max_values_for_integral_type.
39174         (set_min_and_max_values_for_integral_type): Take a signop rather
39175         than a bool.  Use wide-int interfaces.
39176         (fixup_signed_type): Update accordingly.  Remove
39177         HOST_BITS_PER_DOUBLE_INT limit.
39178         (fixup_unsigned_type): Likewise.
39179         * system.h (STATIC_CONSTANT_P): New.
39180         (STATIC_ASSERT): New.
39181         * target.def (can_use_doloop_p): Take widest_ints rather than
39182         double_ints.
39183         * target.h: Include wide-int.h rather than double-int.h.
39184         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
39185         than double_ints.
39186         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
39187         rather than INT_CST_LT_UNSIGNED.
39188         (can_use_doloop_if_innermost): Take widest_ints rather than
39189         double_ints.
39190         * tree-affine.c: Include wide-int-print.h.
39191         (double_int_ext_for_comb): Delete.
39192         (wide_int_ext_for_comb): New.
39193         (aff_combination_zero): Use wide-int interfaces.
39194         (aff_combination_const): Take a widest_int instead of a double_int.
39195         (aff_combination_elt): Use wide-int interfaces.
39196         (aff_combination_scale): Take a widest_int instead of a double_int.
39197         (aff_combination_add_elt): Likewise.
39198         (aff_combination_add_cst): Likewise.
39199         (aff_combination_add): Use wide-int interfaces.
39200         (aff_combination_convert): Likewise.
39201         (tree_to_aff_combination): Likewise.
39202         (add_elt_to_tree): Take a widest_int instead of a double_int.
39203         (aff_combination_to_tree): Use wide-int interfaces.
39204         (aff_combination_remove_elt): Likewise.
39205         (aff_combination_add_product): Take a widest_int instead of
39206         a double_int.
39207         (aff_combination_mult): Use wide-int interfaces.
39208         (aff_combination_expand): Likewise.
39209         (double_int_constant_multiple_p): Delete.
39210         (wide_int_constant_multiple_p): New.
39211         (aff_combination_constant_multiple_p): Take a widest_int pointer
39212         instead of a double_int pointer.
39213         (print_aff): Use wide-int interfaces.
39214         (get_inner_reference_aff): Take a widest_int pointer
39215         instead of a double_int pointer.
39216         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
39217         * tree-affine.h: Include wide-int.h.
39218         (struct aff_comb_elt): Change type of coef to widest_int.
39219         (struct affine_tree_combination): Change type of offset to widest_int.
39220         (double_int_ext_for_comb): Delete.
39221         (wide_int_ext_for_comb): New.
39222         (aff_combination_const): Use widest_int instead of double_int.
39223         (aff_combination_scale): Likewise.
39224         (aff_combination_add_elt): Likewise.
39225         (aff_combination_constant_multiple_p): Likewise.
39226         (get_inner_reference_aff): Likewise.
39227         (aff_comb_cannot_overlap_p): Likewise.
39228         (aff_combination_zero_p): Use wide-int interfaces.
39229         * tree.c: Include tree.h.
39230         (init_ttree): Use make_int_cst.
39231         (tree_code_size): Removed code for INTEGER_CST case.
39232         (tree_size): Add INTEGER_CST case.
39233         (make_node_stat): Update comment.
39234         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
39235         (build_int_cst_type): Use wide-int interfaces.
39236         (double_int_to_tree): Likewise.
39237         (double_int_fits_to_tree_p): Delete.
39238         (force_fit_type_double): Delete.
39239         (force_fit_type): New.
39240         (int_cst_hash_hash): Use wide-int interfaces.
39241         (int_cst_hash_eq): Likewise.
39242         (build_int_cst_wide): Delete.
39243         (wide_int_to_tree): New.
39244         (cache_integer_cst): Use wide-int interfaces.
39245         (build_low_bits_mask): Likewise.
39246         (cst_and_fits_in_hwi): Likewise.
39247         (real_value_from_int_cst): Likewise.
39248         (make_int_cst_stat): New.
39249         (integer_zerop): Use wide_int interfaces.
39250         (integer_onep): Likewise.
39251         (integer_all_onesp): Likewise.
39252         (integer_pow2p): Likewise.
39253         (integer_nonzerop): Likewise.
39254         (tree_log2): Likewise.
39255         (tree_floor_log2): Likewise.
39256         (tree_ctz): Likewise.
39257         (int_size_in_bytes): Likewise.
39258         (mem_ref_offset): Return an offset_int rather than a double_int.
39259         (build_type_attribute_qual_variant): Use wide_int interfaces.
39260         (type_hash_eq): Likewise
39261         (tree_int_cst_equal): Likewise.
39262         (tree_int_cst_lt): Delete.
39263         (tree_int_cst_compare): Likewise.
39264         (tree_fits_shwi_p): Use wide_int interfaces.
39265         (tree_fits_uhwi_p): Likewise.
39266         (tree_int_cst_sign_bit): Likewise.
39267         (tree_int_cst_sgn): Likewise.
39268         (tree_int_cst_min_precision): Take a signop rather than a bool.
39269         (simple_cst_equal): Use wide_int interfaces.
39270         (compare_tree_int): Likewise.
39271         (iterative_hash_expr): Likewise.
39272         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
39273         INT_CST_LT.
39274         (get_type_static_bounds): Use wide_int interfaces.
39275         (tree_int_cst_elt_check_failed): New.
39276         (build_common_tree_nodes): Reordered to set prec before filling in
39277         value.
39278         (int_cst_value): Check cst_and_fits_in_hwi.
39279         (widest_int_cst_value): Use wide_int interfaces.
39280         (upper_bound_in_type): Likewise.
39281         (lower_bound_in_type): Likewise.
39282         (num_ending_zeros): Likewise.
39283         (drop_tree_overflow): Likewise.
39284         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
39285         (gen_conditions_for_pow_cst_base): Likewise.
39286         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
39287         (group_case_labels_stmt): Use wide-int interfaces.
39288         (verify_gimple_assign_binary): Likewise.
39289         (print_loop): Likewise.
39290         * tree-chrec.c (tree_fold_binomial): Likewise.
39291         * tree-core.h (struct tree_base): Add int_length.
39292         (struct tree_int_cst): Change rep of value.
39293         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
39294         (dr_may_alias_p): Likewise.
39295         (max_stmt_executions_tree): Likewise.
39296         * tree.def (INTEGER_CST): Update comment.
39297         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
39298         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
39299         * tree-dump.c: Include wide-int.h and wide-int-print.h.
39300         (dequeue_and_dump): Use wide-int interfaces.
39301         * tree.h: Include wide-int.h.
39302         (NULL_TREE): Moved to earlier loc in file.
39303         (TREE_INT_CST_ELT_CHECK): New.
39304         (tree_int_cst_elt_check_failed): New.
39305         (TYPE_SIGN): New.
39306         (TREE_INT_CST): Delete.
39307         (TREE_INT_CST_LOW): Use wide-int interfaces.
39308         (TREE_INT_CST_HIGH): Delete.
39309         (TREE_INT_CST_NUNITS): New.
39310         (TREE_INT_CST_EXT_NUNITS): Likewise.
39311         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
39312         (TREE_INT_CST_ELT): Likewise.
39313         (INT_CST_LT): Delete.
39314         (tree_int_cst_elt_check): New (two forms).
39315         (type_code_size): Update comment.
39316         (make_int_cst_stat, make_int_cst): New.
39317         (tree_to_double_int): Delete.
39318         (double_int_fits_to_tree_p): Delete.
39319         (force_fit_type_double): Delete.
39320         (build_int_cstu): Replace with out-of-line function.
39321         (build_int_cst_wide): Delete.
39322         (tree_int_cst_lt): Define inline.
39323         (tree_int_cst_le): New.
39324         (tree_int_cst_compare): Define inline.
39325         (tree_int_cst_min_precision): Take a signop rather than a bool.
39326         (wi::int_traits <const_tree>): New.
39327         (wi::int_traits <tree>): New.
39328         (wi::extended_tree): New.
39329         (wi::int_traits <wi::extended_tree>): New.
39330         (wi::to_widest): New.
39331         (wi::to_offset): New.
39332         (wi::fits_to_tree_p): New.
39333         (wi::min_value): New.
39334         (wi::max_value): New.
39335         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
39336         (copy_tree_body_r): Likewise.
39337         * tree-object-size.c (compute_object_offset): Likewise.
39338         (addr_object_size): Likewise.
39339         * tree-predcom.c: Include wide-int-print.h.
39340         (struct dref_d): Change type of offset to widest_int.
39341         (dump_dref): Call wide-int printer.
39342         (aff_combination_dr_offset): Use wide-int interfaces.
39343         (determine_offset): Take a widest_int pointer rather than a
39344         double_int pointer.
39345         (split_data_refs_to_components): Use wide-int interfaces.
39346         (suitable_component_p): Likewise.
39347         (order_drefs): Likewise.
39348         (add_ref_to_chain): Likewise.
39349         (valid_initializer_p): Likewise.
39350         (determine_roots_comp): Likewise.
39351         * tree-pretty-print.c: Include wide-int-print.h.
39352         (dump_generic_node): Use wide-int interfaces.
39353         * tree-sra.c (sra_ipa_modify_expr): Likewise.
39354         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
39355         (move_fixed_address_to_symbol): Likewise.
39356         (move_hint_to_base): Likewise.
39357         (move_pointer_to_base): Likewise.
39358         (move_variant_to_index): Likewise.
39359         (most_expensive_mult_to_index): Likewise.
39360         (addr_to_parts): Likewise.
39361         (copy_ref_info): Likewise.
39362         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
39363         (indirect_refs_may_alias_p): Likewise.
39364         (stmt_kills_ref_p_1): Likewise.
39365         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
39366         * tree-ssa-ccp.c: Update comment at top of file.  Include
39367         wide-int-print.h.
39368         (struct prop_value_d): Change type of mask to widest_int.
39369         (extend_mask): New function.
39370         (dump_lattice_value): Use wide-int interfaces.
39371         (get_default_value): Likewise.
39372         (set_constant_value): Likewise.
39373         (set_value_varying): Likewise.
39374         (valid_lattice_transition): Likewise.
39375         (set_lattice_value): Likewise.
39376         (value_to_double_int): Delete.
39377         (value_to_wide_int): New.
39378         (get_value_from_alignment): Use wide-int interfaces.
39379         (get_value_for_expr): Likewise.
39380         (do_dbg_cnt): Likewise.
39381         (ccp_finalize): Likewise.
39382         (ccp_lattice_meet): Likewise.
39383         (bit_value_unop_1): Use widest_ints rather than double_ints.
39384         (bit_value_binop_1): Likewise.
39385         (bit_value_unop): Use wide-int interfaces.
39386         (bit_value_binop): Likewise.
39387         (bit_value_assume_aligned): Likewise.
39388         (evaluate_stmt): Likewise.
39389         (ccp_fold_stmt): Likewise.
39390         (visit_cond_stmt): Likewise.
39391         (ccp_visit_stmt): Likewise.
39392         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
39393         (constant_pointer_difference): Likewise.
39394         (associate_pointerplus): Likewise.
39395         (combine_conversions): Likewise.
39396         * tree-ssa-loop.h: Include wide-int.h.
39397         (struct tree_niter_desc): Change type of max to widest_int.
39398         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
39399         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
39400         (remove_redundant_iv_tests): Likewise.
39401         (canonicalize_loop_induction_variables): Likewise.
39402         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
39403         (constant_multiple_of): Take a widest_int pointer instead of
39404         a double_int pointer.
39405         (get_computation_aff): Use wide-int interfaces.
39406         (ptr_difference_cost): Likewise.
39407         (difference_cost): Likewise.
39408         (get_loop_invariant_expr_id): Likewise.
39409         (get_computation_cost_at): Likewise.
39410         (iv_elimination_compare_lt): Likewise.
39411         (may_eliminate_iv): Likewise.
39412         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
39413         instead of double_int.
39414         (max_loop_iterations): Likewise.
39415         (max_stmt_executions): Likewise.
39416         (estimated_stmt_executions): Likewise.
39417         * tree-ssa-loop-niter.c: Include wide-int-print.h.
39418         (split_to_var_and_offset): Use wide-int interfaces.
39419         (determine_value_range): Likewise.
39420         (bound_difference_of_offsetted_base): Likewise.
39421         (bounds_add): Take a widest_int instead of a double_int.
39422         (number_of_iterations_ne_max): Use wide-int interfaces.
39423         (number_of_iterations_ne): Likewise.
39424         (number_of_iterations_lt_to_ne): Likewise.
39425         (assert_loop_rolls_lt): Likewise.
39426         (number_of_iterations_lt): Likewise.
39427         (number_of_iterations_le): Likewise.
39428         (number_of_iterations_cond): Likewise.
39429         (number_of_iterations_exit): Likewise.
39430         (finite_loop_p): Likewise.
39431         (derive_constant_upper_bound_assign): Likewise.
39432         (derive_constant_upper_bound): Return a widest_int.
39433         (derive_constant_upper_bound_ops): Likewise.
39434         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
39435         (record_estimate): Take a widest_int rather than a double_int.
39436         (record_nonwrapping_iv): Use wide-int interfaces.
39437         (double_int_cmp): Delete.
39438         (wide_int_cmp): New.
39439         (bound_index): Take a widest_int rather than a double_int.
39440         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
39441         (maybe_lower_iteration_bound): Likewise.
39442         (estimate_numbers_of_iterations_loop): Likewise.
39443         (estimated_loop_iterations): Take a widest_int pointer than than
39444         a double_int pointer.
39445         (estimated_loop_iterations_int): Use wide-int interfaces.
39446         (max_loop_iterations): Take a widest_int pointer than than
39447         a double_int pointer.
39448         (max_loop_iterations_int): Use wide-int interfaces.
39449         (max_stmt_executions): Take a widest_int pointer than than
39450         a double_int pointer.
39451         (estimated_stmt_executions): Likewise.
39452         (n_of_executions_at_most): Use wide-int interfaces.
39453         (scev_probably_wraps_p): Likewise.
39454         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
39455         to real_to_integer.
39456         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
39457         interfaces.
39458         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
39459         double_ints.  Adjust for trailing_wide_ints <3> representation.
39460         (set_nonzero_bits): Likewise.
39461         (get_range_info): Return wide_ints rather than double_ints.
39462         Adjust for trailing_wide_ints <3> representation.
39463         (get_nonzero_bits): Likewise.
39464         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
39465         representation.
39466         * tree-ssanames.h (struct range_info_def): Replace min, max and
39467         nonzero_bits with a trailing_wide_ints <3>.
39468         (set_range_info): Use wide_int_refs rather than double_ints.
39469         (set_nonzero_bits): Likewise.
39470         (get_range_info): Return wide_ints rather than double_ints.
39471         (get_nonzero_bits): Likewise.
39472         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
39473         * tree-ssa-pre.c (phi_translate_1): Likewise.
39474         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
39475         (acceptable_pow_call): Likewise.
39476         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
39477         interfaces.
39478         (vn_reference_fold_indirect): Likewise.
39479         (vn_reference_maybe_forwprop_address): Likewise.
39480         (valueize_refs_1): Likewise.
39481         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
39482         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
39483         tree_int_cst_lt and tree_int_cst_le.
39484         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
39485         interfaces.
39486         (streamer_alloc_tree): Likewise.
39487         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
39488         (streamer_write_tree_header): Likewise.
39489         (streamer_write_integer_cst): Likewise.
39490         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
39491         (build_constructors): Likewise.
39492         (array_value_type): Likewise.
39493         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
39494         (vect_check_gather): Likewise.
39495         * tree-vect-generic.c (build_replicated_const): Likewise.
39496         (expand_vector_divmod): Likewise.
39497         * tree-vect-loop.c (vect_transform_loop): Likewise.
39498         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
39499         (vect_do_peeling_for_alignment): Likewise.
39500         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
39501         * tree-vrp.c: Include wide-int.h.
39502         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
39503         (extract_range_from_assert): Use wide-int interfaces.
39504         (vrp_int_const_binop): Likewise.
39505         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
39506         double_int pointers.
39507         (ranges_from_anti_range): Use wide-int interfaces.
39508         (quad_int_cmp): Delete.
39509         (quad_int_pair_sort): Likewise.
39510         (extract_range_from_binary_expr_1): Use wide-int interfaces.
39511         (extract_range_from_unary_expr_1): Likewise.
39512         (adjust_range_with_scev): Likewise.
39513         (masked_increment): Take and return wide_ints rather than double_ints.
39514         (register_edge_assert_for_2): Use wide-int interfaces.
39515         (check_array_ref): Likewise.
39516         (search_for_addr_array): Likewise.
39517         (maybe_set_nonzero_bits): Likewise.
39518         (union_ranges): Pass an integer of the correct type instead of
39519         using integer_one_node.
39520         (intersect_ranges): Likewise.
39521         (simplify_truth_ops_using_ranges): Likewise.
39522         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
39523         (range_fits_type_p): Likewise.
39524         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
39525         a bool.
39526         (simplify_conversion_using_ranges): Use wide-int interfaces.
39527         (simplify_float_conversion_using_ranges): Likewise.
39528         (vrp_finalize): Likewise.
39529         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
39530         (gimple_stringops_transform): Likewise.
39531         * varasm.c (decode_addr_const): Likewise.
39532         (const_hash_1): Likewise.
39533         (const_rtx_hash_1): Likewise
39534         (output_constant): Likewise.
39535         (array_size_for_constructor): Likewise.
39536         (output_constructor_regular_field): Likewise.
39537         (output_constructor_bitfield): Likewise.
39538         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
39539         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
39540         GENERATOR_FILEs.
39541         * gencheck.c: Define BITS_PER_UNIT.
39542         * wide-int.cc: New.
39543         * wide-int.h: New.
39544         * wide-int-print.cc: New.
39545         * wide-int-print.h: New.
39546
39547 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
39548
39549         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
39550
39551 2014-05-06  Richard Biener  <rguenther@suse.de>
39552
39553         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
39554         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
39555         (TODO_verify_all): Adjust.
39556         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
39557         TODO_verify_stmts and TODO_verify_rtl_sharing.
39558         * bb-reorder.c: Likewise.
39559         * cfgexpand.c: Likewise.
39560         * cprop.c: Likewise.
39561         * cse.c: Likewise.
39562         * function.c: Likewise.
39563         * fwprop.c: Likewise.
39564         * gcse.c: Likewise.
39565         * gimple-ssa-isolate-paths.c: Likewise.
39566         * gimple-ssa-strength-reduction.c: Likewise.
39567         * ipa-split.c: Likewise.
39568         * loop-init.c: Likewise.
39569         * loop-unroll.c: Likewise.
39570         * lower-subreg.c: Likewise.
39571         * modulo-sched.c: Likewise.
39572         * postreload-gcse.c: Likewise.
39573         * predict.c: Likewise.
39574         * recog.c: Likewise.
39575         * sched-rgn.c: Likewise.
39576         * store-motion.c: Likewise.
39577         * tracer.c: Likewise.
39578         * trans-mem.c: Likewise.
39579         * tree-call-cdce.c: Likewise.
39580         * tree-cfg.c: Likewise.
39581         * tree-cfgcleanup.c: Likewise.
39582         * tree-complex.c: Likewise.
39583         * tree-eh.c: Likewise.
39584         * tree-emutls.c: Likewise.
39585         * tree-if-conv.c: Likewise.
39586         * tree-into-ssa.c: Likewise.
39587         * tree-loop-distribution.c: Likewise.
39588         * tree-object-size.c: Likewise.
39589         * tree-parloops.c: Likewise.
39590         * tree-pass.h: Likewise.
39591         * tree-sra.c: Likewise.
39592         * tree-ssa-ccp.c: Likewise.
39593         * tree-ssa-copy.c: Likewise.
39594         * tree-ssa-copyrename.c: Likewise.
39595         * tree-ssa-dce.c: Likewise.
39596         * tree-ssa-dom.c: Likewise.
39597         * tree-ssa-dse.c: Likewise.
39598         * tree-ssa-forwprop.c: Likewise.
39599         * tree-ssa-ifcombine.c: Likewise.
39600         * tree-ssa-loop-ch.c: Likewise.
39601         * tree-ssa-loop-ivcanon.c: Likewise.
39602         * tree-ssa-loop.c: Likewise.
39603         * tree-ssa-math-opts.c: Likewise.
39604         * tree-ssa-phiopt.c: Likewise.
39605         * tree-ssa-phiprop.c: Likewise.
39606         * tree-ssa-pre.c: Likewise.
39607         * tree-ssa-reassoc.c: Likewise.
39608         * tree-ssa-sink.c: Likewise.
39609         * tree-ssa-strlen.c: Likewise.
39610         * tree-ssa-tail-merge.c: Likewise.
39611         * tree-ssa-uncprop.c: Likewise.
39612         * tree-switch-conversion.c: Likewise.
39613         * tree-tailcall.c: Likewise.
39614         * tree-vect-generic.c: Likewise.
39615         * tree-vectorizer.c: Likewise.
39616         * tree-vrp.c: Likewise.
39617         * tsan.c: Likewise.
39618         * var-tracking.c: Likewise.
39619         * bt-load.c: Likewise.
39620         * cfgcleanup.c: Likewise.
39621         * combine-stack-adj.c: Likewise.
39622         * combine.c: Likewise.
39623         * compare-elim.c: Likewise.
39624         * config/epiphany/resolve-sw-modes.c: Likewise.
39625         * config/i386/i386.c: Likewise.
39626         * config/mips/mips.c: Likewise.
39627         * config/s390/s390.c: Likewise.
39628         * config/sh/sh_treg_combine.cc: Likewise.
39629         * config/sparc/sparc.c: Likewise.
39630         * dce.c: Likewise.
39631         * dse.c: Likewise.
39632         * final.c: Likewise.
39633         * ifcvt.c: Likewise.
39634         * mode-switching.c: Likewise.
39635         * passes.c: Likewise.
39636         * postreload.c: Likewise.
39637         * ree.c: Likewise.
39638         * reg-stack.c: Likewise.
39639         * regcprop.c: Likewise.
39640         * regrename.c: Likewise.
39641         * web.c: Likewise.
39642
39643 2014-05-06  Richard Biener  <rguenther@suse.de>
39644
39645         PR middle-end/61070
39646         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
39647         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
39648
39649 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
39650
39651         PR ipa/60965
39652         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
39653
39654 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
39655             Tom de Vries  <tom@codesourcery.com>
39656
39657         * target.def (call_fusage_contains_non_callee_clobbers): New
39658         DEFHOOKPOD.
39659         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
39660         Hooks to @menu.
39661         (@node Miscellaneous Register Hooks): New node.
39662         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
39663         * doc/tm.texi: Regenerate.
39664
39665 2014-05-05  Marek Polacek  <polacek@redhat.com>
39666
39667         PR driver/61065
39668         * opts.c (common_handle_option): Call error_at instead of warning_at.
39669
39670 2014-05-05  Richard Biener  <rguenther@suse.de>
39671
39672         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
39673         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
39674         under the TODO_verify_il umbrella.
39675
39676 2014-05-05  Richard Biener  <rguenther@suse.de>
39677
39678         * passes.c (execute_function_todo): Move TODO_verify_flow under
39679         the TODO_verify_ul umbrella.
39680
39681 2014-05-05  Richard Biener  <rguenther@suse.de>
39682
39683         PR middle-end/61010
39684         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
39685         X & CST away from a CST that is the mask of a mode.
39686
39687 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
39688
39689         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
39690         int argument to enum machine_mode.
39691         (picochip_class_max_nregs): Ditto.
39692         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
39693         (picochip_class_max_nregs): Ditto.
39694
39695 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
39696
39697         * target.def: Add new target hook.
39698         * doc/tm.texi: Regenerate.
39699         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
39700         * targhooks.c (default_keep_leaf_when_profiled): New function.
39701
39702         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
39703         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
39704
39705 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
39706
39707         PR tree-optimization/60363
39708         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
39709         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
39710         (update_destination_phis): New parameter.
39711         (create_edge_and_update_destination_phis): Ditto.
39712         (ssa_fix_duplicate_block_edges): Pass new arguments.
39713         (thread_single_edge): Ditto.
39714
39715 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
39716
39717         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
39718         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
39719         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
39720         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
39721         Use RS6000_BTM_HARD_FLOAT.
39722         (BU_MISC_2): Likewise.
39723         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
39724         RS6000_BTM_HARD_FLOAT.
39725         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
39726         is explicitly used.
39727         (rs6000_invalid_builtin): Add hard floating builtin support.
39728         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
39729         hard float builtins.
39730         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
39731
39732 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39733
39734         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
39735         Add missing function* argument.
39736
39737 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
39738
39739         * lra-constraints.c (valid_address_p): Move earlier in file.
39740         Add a constraint argument to the address_info version.
39741         (satisfies_memory_constraint_p): New function.
39742         (satisfies_address_constraint_p): Likewise.
39743         (process_alt_operands, curr_insn_transform): Use them.
39744         (process_address): Pass the constraint to valid_address_p when
39745         checking address operands.
39746
39747 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
39748
39749         * config/mips/mips.c (mips_isa_rev): New variable.
39750         (mips_set_architecture): Set it.
39751         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
39752         from mips_isa_rev.
39753         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
39754         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
39755         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
39756         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
39757         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
39758         conditions in terms of mips_isa_rev.
39759         (mips_isa_rev): Declare.
39760
39761 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39762
39763         * config/sh/sh-mem.cc: Use tabs instead of spaces.
39764         (prob_unlikely, prob_likely): Make variables const.
39765
39766 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
39767
39768         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
39769
39770 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39771
39772         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
39773
39774 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39775
39776         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
39777         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
39778         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
39779         functions.
39780         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
39781         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
39782         sh_pass_in_reg_p.
39783         Replace usage of ROUND_REG with sh_round_reg.
39784         Use CEIL instead of ROUND_ADVANCE.
39785
39786 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39787
39788         PR target/61026
39789         * config/sh/sh.c: Include stdlib headers before everything else.
39790
39791 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
39792
39793         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
39794         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
39795         (gimplify_adjust_omp_clauses): Simd region is never
39796         directly nested in combined parallel.  Instead, for linear
39797         with copyin/copyout, if in combined for simd loop, make decl
39798         firstprivate/lastprivate on OMP_FOR.
39799         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
39800         expand_omp_for_static_chunk): When setting endvar, also set
39801         fd->loop.v to the same value.
39802
39803 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
39804
39805         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
39806
39807 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
39808
39809         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
39810         expression.
39811
39812 2014-05-02  Marek Polacek  <polacek@redhat.com>
39813
39814         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
39815
39816 2014-05-02  Kito Cheng  <kito@0xlab.org>
39817
39818         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
39819         to a C expression marco.
39820         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
39821         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
39822         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
39823         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
39824         HONOR_REG_ALLOC_ORDER.
39825         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
39826
39827 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
39828
39829         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
39830
39831 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
39832
39833         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
39834
39835 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
39836
39837         * tree-if-conv.c (is_cond_scalar_reduction): New function.
39838         (convert_scalar_cond_reduction): Likewise.
39839         (predicate_scalar_phi): Add recognition and transformation
39840         of simple conditioanl reduction to be vectorizable.
39841
39842 2014-05-01  Marek Polacek  <polacek@redhat.com>
39843
39844         PR c/43245
39845         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
39846
39847 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
39848
39849         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
39850         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
39851         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
39852         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
39853         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
39854         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
39855         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
39856         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
39857
39858 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
39859
39860         * config/arc/arc.opt (mlra): Move comment above option name
39861         to avoid mis-parsing as language options.
39862
39863 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39864
39865         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
39866         * config/sol2.h: ... here.
39867         * config/sol2-10.h: Remove.
39868
39869         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
39870         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
39871         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
39872         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
39873         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
39874         * config/sol2.h: ... here.
39875         (SECTION_NAME_FORMAT): Don't redefine.
39876         (STARTFILE_ARCH32_SPEC): Rename to ...
39877         (STARTFILE_ARCH_SPEC): ... this.
39878         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
39879         * config/sparc/sol2.h: ... here.
39880         (SECTION_NAME_FORMAT): Don't undef.
39881         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
39882         (SUBTARGET_EXTRA_SPECS): Remove.
39883         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
39884
39885         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
39886         (MD_STARTFILE_PREFIX): Remove.
39887         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
39888         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
39889         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
39890         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
39891         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
39892         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
39893         * config/i386/sol2.h: ... here.
39894         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
39895         * config/i386/sol2-bi.h: Remove.
39896         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
39897         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
39898
39899         * config/i386/t-sol2-64: Rename to ...
39900         * config/i386/t-sol2: ... this.
39901         * config/sparc/t-sol2-64: Rename to ...
39902         * config/sparc/t-sol2: ... this.
39903
39904         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
39905         sol2_tm_file_head, sol2_tm_file_tail.
39906         Include ${cpu_type}/sol2.h before sol2.h.
39907         Remove sol2-10.h.
39908         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
39909         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
39910         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
39911         Reflect i386/t-sol2-64 renaming.
39912         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
39913         Reflect sparc/t-sol2-64 renaming.
39914
39915 2014-04-30  Richard Biener  <rguenther@suse.de>
39916
39917         * passes.c (execute_function_todo): Move TODO_verify_stmts
39918         and TODO_verify_ssa under the TODO_verify_il umbrella.
39919         * tree-ssa.h (verify_ssa): Adjust prototype.
39920         * tree-ssa.c (verify_ssa): Add parameter to tell whether
39921         we should verify SSA operands.
39922         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
39923         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
39924         whether we should verify whether not throwing stmts have EH info.
39925         * graphite-scop-detection.c (create_sese_edges): Adjust.
39926         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
39927         * tree-eh.c (lower_try_finally_switch): Do not add the
39928         default case label twice.
39929
39930 2014-04-30  Marek Polacek  <polacek@redhat.com>
39931
39932         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
39933         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
39934         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
39935         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
39936
39937 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
39938
39939         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
39940         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
39941         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
39942         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
39943         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
39944         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
39945         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
39946         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
39947
39948 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
39949
39950         * tree-cfg.c (dump_function_to_file): Dump the return type of
39951         functions, in a line to itself before the function body, mimicking
39952         the layout of a C function.
39953
39954 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
39955
39956         PR tree-optimization/60971
39957         * tree-tailcall.c (process_assignment): Reject conversions which
39958         reduce precision.
39959
39960 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
39961
39962         * calls.c (initialize_argument_information): Always treat
39963         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
39964         (expand_call): Likewise.
39965         (emit_library_call_calue_1): Likewise.
39966         * expr.c (PUSH_ARGS_REVERSED): Do not define.
39967         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
39968         code accordingly.
39969
39970 2014-04-29  Nick Clifton  <nickc@redhat.com>
39971
39972         * config/msp430/msp430.md (umulsidi): Fix typo.
39973         (mulhisi3): Enable even inside interrupt handlers.
39974         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
39975         bigger return address pushed in large mode.
39976
39977 2014-04-29  Nick Clifton  <nickc@redhat.com>
39978
39979         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
39980         (arc_init_reg_tables): Use a machine_mode enum to iterate over
39981         available modes.
39982         * config/m32r/m32r.c (init_reg_tables): Likewise.
39983         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
39984         enum to hold the modes.
39985
39986 2014-04-29  Richard Biener  <rguenther@suse.de>
39987
39988         * dominance.c (free_dominance_info): Add overload with
39989         function parameter.
39990         (dom_info_state): Likewise.
39991         (dom_info_available_p): Likewise.
39992         * basic-block.h (free_dominance_info, dom_info_state,
39993         dom_info_available_p): Declare overloads.
39994         * passes.c (execute_function_todo): Verify that verifiers
39995         don't change dominator info state.  Drop dominator info
39996         for IPA pass invocations.
39997         * cgraph.c (release_function_body): Restore asserts that
39998         dominator information is released.
39999
40000 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
40001
40002         * doc/invoke.texi: Fix typo.
40003         * tree-vrp.c: Fix typos.
40004         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
40005
40006 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
40007
40008         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
40009
40010 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
40011
40012         * config/aarch64/aarch64-builtins.c
40013         (aarch64_types_storestruct_lane_qualifiers): New.
40014         (TYPES_STORESTRUCT_LANE): Likewise.
40015         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
40016         (st3_lane): Likewise.
40017         (st4_lane): Likewise.
40018         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
40019         (vec_store_lanesci_lane<mode>): Likewise.
40020         (vec_store_lanesxi_lane<mode>): Likewise.
40021         (aarch64_st2_lane<VQ:mode>): Likewise.
40022         (aarch64_st3_lane<VQ:mode>): Likewise.
40023         (aarch64_st4_lane<VQ:mode>): Likewise.
40024         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
40025         * config/aarch64/arm_neon.h
40026         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
40027         use new macro arguments.
40028         (__ST3_LANE_FUNC): Likewise.
40029         (__ST4_LANE_FUNC): Likewise.
40030         * config/aarch64/iterators.md (V_TWO_ELEM): New.
40031         (V_THREE_ELEM): Likewise.
40032         (V_FOUR_ELEM): Likewise.
40033
40034 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
40035
40036         * doc/gimple.texi: Replace the description of the now-defunct
40037         union gimple_statement_d with a diagram showing the
40038         gimple_statement_base class hierarchy and its relationships to
40039         the GSS_ and GIMPLE_ enums.
40040
40041 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
40042
40043         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
40044         * config/aarch64/aarch64.c
40045         (aarch64_cannot_change_mode_class): Weaken conditions.
40046         (aarch64_modes_tieable_p): New.
40047         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
40048
40049 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
40050
40051         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
40052         (loadsync_<mode>): Change mode.
40053         (load_quadpti, store_quadpti): New.
40054         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
40055         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
40056
40057 2014-04-28  Martin Jambor  <mjambor@suse.cz>
40058
40059         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
40060         same alias type as the original statement.
40061         (subreplacement_assignment_data): New type.
40062         (handle_unscalarized_data_in_subtree): New type of parameter,
40063         generate new memory accesses with same alias type as the original
40064         statement.
40065         (load_assign_lhs_subreplacements): Likewise.
40066         (sra_modify_constructor_assign): Generate new memory accesses with
40067         same alias type as the original statement.
40068
40069 2014-04-28  Richard Biener  <rguenther@suse.de>
40070
40071         * tree-pass.h (TODO_verify_il): Define.
40072         (TODO_verify_all): Complete properly.
40073         * passes.c (execute_function_todo): Move existing loop-closed
40074         SSA verification under TODO_verify_il.
40075         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
40076         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
40077         Fix tree sharing issue.
40078
40079 2014-04-28  Richard Biener  <rguenther@suse.de>
40080
40081         PR middle-end/60092
40082         * builtins.def (DEF_C11_BUILTIN): Add.
40083         (BUILT_IN_ALIGNED_ALLOC): Likewise.
40084         * coretypes.h (enum function_class): Add function_c11_misc.
40085         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
40086         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
40087         (call_may_clobber_ref_p_1): Likewise.
40088         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
40089         (mark_all_reaching_defs_necessary_1): Likewise.
40090         (propagate_necessity): Likewise.
40091         (eliminate_unnecessary_stmts): Likewise.
40092         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
40093
40094 2014-04-28  Richard Biener  <rguenther@suse.de>
40095
40096         * tree-vrp.c (vrp_var_may_overflow): Remove.
40097         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
40098         with overflow immediately bump to one before that value and
40099         let iteration figure out overflow status.
40100
40101 2014-04-28  Richard Biener  <rguenther@suse.de>
40102
40103         * configure.ac: Do valgrind header checks unconditionally.
40104         Add --enable-valgrind-annotations.
40105         * system.h: Guard valgrind header inclusion with
40106         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
40107         * alloc-pool.c (pool_alloc, pool_free): Use
40108         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
40109         to guard possibly dead code.
40110         * config.in: Regenerated.
40111         * configure: Likewise.
40112
40113 2014-04-28  Jeff Law  <law@redhat.com>
40114
40115         PR tree-optimization/60902
40116         * tree-ssa-threadedge.c
40117         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
40118         over real defs when invalidating outputs from statements that do not
40119         produce useful outputs for threading.
40120
40121 2014-04-28  Richard Biener  <rguenther@suse.de>
40122
40123         PR tree-optimization/60979
40124         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
40125         SCOPs that end in a block with a successor with abnormal
40126         predecessors.
40127
40128 2014-04-28  Richard Biener  <rguenther@suse.de>
40129
40130         * tree-pass.h (execute_pass_list): Adjust prototype.
40131         * passes.c (pass_manager::execute_early_local_passes): Adjust.
40132         (do_per_function): Change callback signature, push all actual
40133         work to the callbals.
40134         (do_per_function_toporder): Likewise.
40135         (execute_function_dump): Adjust.
40136         (execute_function_todo): Likewise.
40137         (clear_last_verified): Likewise.
40138         (verify_curr_properties): Likewise.
40139         (update_properties_after_pass): Likewise.
40140         (execute_pass_list_1): Split out from ...
40141         (execute_pass_list): ... here.  Adjust.
40142         (execute_ipa_pass_list): Likewise.
40143         * cgraphunit.c (cgraph_add_new_function): Adjust.
40144         (analyze_function): Likewise.
40145         (expand_function): Likewise.
40146         * cgraph.c (release_function_body): Free dominance info
40147         here instead of asserting it was magically freed elsewhere.
40148
40149 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
40150
40151         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
40152         * configure: Regenerate.
40153         * config/sparc/sparc.opt (muser-mode): New option.
40154         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
40155         for LEON3.
40156         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
40157         * doc/invoke.texi (SPARC options): Document -muser-mode.
40158
40159 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
40160
40161         * cselib.c (find_slot_memmode): Delete.
40162         (cselib_hasher): Change compare_type to a struct.
40163         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
40164         constants.
40165         (preserve_constants_and_equivs): Adjust for new compare_type.
40166         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
40167         (wrap_constant): Delete.
40168         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
40169
40170 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
40171
40172         * doc/install.texi (Building with profile feedback): Remove
40173         outdated sentence.
40174
40175 2014-04-26  Tom de Vries  <tom@codesourcery.com>
40176
40177         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
40178         array accesses.
40179
40180 2014-04-25  Cary Coutant  <ccoutant@google.com>
40181
40182         PR debug/60929
40183         * dwarf2out.c (should_move_die_to_comdat): A type definition
40184         can contain a subprogram definition, but don't move it to a
40185         comdat unit.
40186         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
40187         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
40188         from original DIE.
40189         (clone_tree_hash): Rename to...
40190         (clone_tree_partial): ...this; change callers.  Copy
40191         DW_TAG_subprogram DIEs as declarations.
40192         (copy_decls_walk): Don't copy children of a declaration into a
40193         type unit.
40194
40195 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
40196
40197         PR target/60969
40198         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
40199         alternative 12.
40200
40201 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
40202
40203         * config/arm/predicates.md (call_insn_operand): Add long_call check.
40204         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
40205         reg for long_call.
40206         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
40207         restriction.
40208
40209 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40210
40211         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
40212
40213 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40214
40215         PR tree-optimization/60930
40216         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
40217         creating a multiply candidate by folding two constant
40218         multiplicands when the result overflows.
40219
40220 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
40221
40222         PR tree-optimization/60960
40223         * tree-vect-generic.c (expand_vector_operation): Only call
40224         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
40225
40226 2014-04-25  Tom de Vries  <tom@codesourcery.com>
40227
40228         * expr.c (clobber_reg_mode): New function.
40229         * expr.h (clobber_reg): New function.
40230
40231 2014-04-25  Tom de Vries  <tom@codesourcery.com>
40232
40233         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
40234         clobbers.
40235
40236 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
40237             Tom de Vries  <tom@codesourcery.com>
40238
40239         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
40240         handle.
40241         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
40242         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
40243         new argument to find_all_hard_reg_sets call.
40244
40245 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40246
40247         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
40248         Use HOST_WIDE_INT_C for mask literal.
40249         (aarch_rev16_shleft_mask_imm_p): Likewise.
40250
40251 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
40252
40253         PR target/60941
40254         * config/sparc/sparc.md (ashlsi3_extend): Delete.
40255
40256 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
40257
40258         PR preprocessor/56540
40259         * config/i386/i386-c.c (ix86_target_macros): Define
40260         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
40261
40262 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40263
40264         * configure.ac (tga_func): Remove.
40265         (LIB_TLS_SPEC): Remove.
40266         * configure: Regenerate.
40267         * config.in: Regenerate.
40268         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
40269
40270 2014-04-25  Richard Biener  <rguenther@suse.de>
40271
40272         PR ipa/60912
40273         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
40274         call stmt use/clobber sets during stmt walk instead of
40275         walking the possibly incomplete set of caller edges.
40276
40277 2014-04-25  Richard Biener  <rguenther@suse.de>
40278
40279         PR ipa/60911
40280         * passes.c (apply_ipa_transforms): Inline into only caller ...
40281         (execute_one_pass): ... here.  Properly bring in function
40282         bodies for nodes we want to apply IPA transforms to.
40283
40284 2014-04-24  Cong Hou  <congh@google.com>
40285
40286         PR tree-optimization/60896
40287         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
40288         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
40289         (vect_mark_pattern_stmts): Set the def type of all statements in
40290         PATTERN_DEF_SEQ as vect_internal_def.
40291
40292 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
40293
40294         * doc/extend.texi (PowerPC Built-in Functions): Document new
40295         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
40296         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
40297
40298         * config/rs6000/predicates.md (const_0_to_3_operand): New
40299         predicate to match 0..3 integer constants.
40300
40301         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
40302         to support adding miscellaneous builtin functions.
40303         (BU_DFP_MISC_2): Likewise.
40304         (BU_P7_MISC_1): Likewise.
40305         (BU_P7_MISC_2): Likewise.
40306         (BU_P8V_MISC_3): Likewise.
40307         (BU_MISC_1): Likewise.
40308         (BU_MISC_2): Likewise.
40309         (DIVWE): Add extended divide builtin functions.
40310         (DIVWEO): Likewise.
40311         (DIVWEU): Likewise.
40312         (DIVWEUO): Likewise.
40313         (DIVDE): Likewise.
40314         (DIVDEO): Likewise.
40315         (DIVDEU): Likewise.
40316         (DIVDEUO): Likewise.
40317         (DXEX): Add decimal floating-point builtin functions.
40318         (DXEXQ): Likewise.
40319         (DDEDPD): Likewise.
40320         (DDEDPDQ): Likewise.
40321         (DENBCD): Likewise.
40322         (DENBCDQ): Likewise.
40323         (DIEX): Likewise.
40324         (DIEXQ): Likewise.
40325         (DSCLI): Likewise.
40326         (DSCLIQ): Likewise.
40327         (DSCRI): Likewise.
40328         (DSCRIQ): Likewise.
40329         (CDTBCD): Add new BCD builtin functions.
40330         (CBCDTD): Likewise.
40331         (ADDG6S): Likewise.
40332         (BCDADD): Likewise.
40333         (BCDADD_LT): Likewise.
40334         (BCDADD_EQ): Likewise.
40335         (BCDADD_GT): Likewise.
40336         (BCDADD_OV): Likewise.
40337         (BCDSUB): Likewise.
40338         (BCDSUB_LT): Likewise.
40339         (BCDSUB_EQ): Likewise.
40340         (BCDSUB_GT): Likewise.
40341         (BCDSUB_OV): Likewise.
40342         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
40343         (UNPACK_TD): Likewise.
40344         (PACK_TF): Likewise.
40345         (UNPACK_TF): Likewise.
40346         (UNPACK_TF_0): Likewise.
40347         (UNPACK_TF_1): Likewise.
40348         (PACK_V1TI): Likewise.
40349         (UNPACK_V1TI): Likewise.
40350
40351         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
40352         support for decimal floating point builtin functions.
40353         (rs6000_expand_ternop_builtin): Add checks for the new builtin
40354         functions that take constant arguments.
40355         (rs6000_invalid_builtin): Add decimal floating point builtin support.
40356         (rs6000_init_builtins): Setup long double, _Decimal64, and
40357         _Decimal128 types for new builtin functions.
40358         (builtin_function_type): Set the unsigned flags appropriately for
40359         the new builtin functions.
40360         (rs6000_opt_masks): Add support for decimal floating point builtin
40361         functions.
40362
40363         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
40364         floating point builtin functions.
40365         (RS6000_BTM_COMMON): Likewise.
40366         (RS6000_BTI_long_double): Likewise.
40367         (RS6000_BTI_dfloat64): Likewise.
40368         (RS6000_BTI_dfloat128): Likewise.
40369         (long_double_type_internal_node): Likewise.
40370         (dfloat64_type_internal_node): Likewise.
40371         (dfloat128_type_internal_node): Likewise.
40372
40373         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
40374         2.07 bcd arithmetic instructions.
40375         (UNSPEC_BCDSUB): Likewise.
40376         (UNSPEC_BCD_OVERFLOW): Likewise.
40377         (UNSPEC_BCD_ADD_SUB): Likewise.
40378         (bcd_add_sub): Likewise.
40379         (BCD_TEST): Likewise.
40380         (bcd<bcd_add_sub>): Likewise.
40381         (bcd<bcd_add_sub>_test): Likewise.
40382         (bcd<bcd_add_sub>_test2): Likewise.
40383         (bcd<bcd_add_sub>_<code>): Likewise.
40384         (peephole2 for combined bcd ops): Likewise.
40385
40386         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
40387         decimal floating point builtin functions.
40388         (UNSPEC_DENBCD): Likewise.
40389         (UNSPEC_DXEX): Likewise.
40390         (UNSPEC_DIEX): Likewise.
40391         (UNSPEC_DSCLI): Likewise.
40392         (UNSPEC_DSCRI): Likewise.
40393         (D64_D128): Likewise.
40394         (dfp_suffix): Likewise.
40395         (dfp_ddedpd_<mode>): Likewise.
40396         (dfp_denbcd_<mode>): Likewise.
40397         (dfp_dxex_<mode>): Likewise.
40398         (dfp_diex_<mode>): Likewise.
40399         (dfp_dscli_<mode>): Likewise.
40400         (dfp_dscri_<mode>): Likewise.
40401
40402         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
40403         builtin functions.
40404         (UNSPEC_CDTBCD): Likewise.
40405         (UNSPEC_CBCDTD): Likewise.
40406         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
40407         (UNSPEC_DIVEO): Likewise.
40408         (UNSPEC_DIVEU): Likewise.
40409         (UNSPEC_DIVEUO): Likewise.
40410         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
40411         pack/unpack 128-bit types.
40412         (UNSPEC_PACK_128BIT): Likewise.
40413         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
40414         (udiv<mode>3): Use idiv_ldiv mode attribute.
40415         (div<mode>3): Likewise.
40416         (addg6s): Add new BCD builtin functions.
40417         (cdtbcd): Likewise.
40418         (cbcdtd): Likewise.
40419         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
40420         (div_extend): Likewise.
40421         (div<div_extend>_<mode>"): Likewise.
40422         (FP128_64): Add support for new builtin functions to pack/unpack
40423         128-bit types.
40424         (unpack<mode>): Likewise.
40425         (unpacktf_0): Likewise.
40426         (unpacktf_1): Likewise.
40427         (unpack<mode>_dm): Likewise.
40428         (unpack<mode>_nodm): Likewise.
40429         (pack<mode>): Likewise.
40430         (unpackv1ti): Likewise.
40431         (packv1ti): Likewise.
40432
40433 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
40434
40435         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
40436         is disabled.
40437
40438 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
40439
40440         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
40441         * gimplify.c (omp_is_private): Change last argument's type to int.
40442         Only diagnose lastprivate if the simd argument is 1, only diagnose
40443         linear if the simd argument is 2.
40444         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
40445         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
40446         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
40447         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
40448         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
40449         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
40450         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
40451         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
40452         * tree-nested.c (convert_nonlocal_omp_clauses,
40453         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
40454
40455 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
40456
40457         PR target/60822
40458         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
40459         operand 1.
40460
40461 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
40462
40463         * flag-types.h (enum ivar_visibility): Add.
40464
40465 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
40466
40467         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
40468         function * argument.
40469
40470 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
40471
40472         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
40473
40474 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
40475             Tom de Vries  <tom@codesourcery.com>
40476
40477         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
40478         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
40479         reg-note.
40480         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
40481         * emit-rtl.c (try_split): Same.
40482
40483 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
40484             Tom de Vries  <tom@codesourcery.com>
40485
40486         * common.opt (fuse-caller-save): New option.
40487
40488 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
40489
40490         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
40491         elements for big-endian.
40492
40493 2014-04-24  Richard Biener  <rguenther@suse.de>
40494
40495         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
40496         during TER and instead use the sepops interface for expanding
40497         non-GIMPLE_SINGLE_RHS.
40498
40499 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40500
40501         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
40502         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
40503
40504 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40505
40506         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
40507         assembler 64-bit option.
40508         * configure: Regenerate.
40509
40510 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40511
40512         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
40513         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
40514         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
40515         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
40516         (TARGET_CRYPTO): Take TARGET_SIMD into account.
40517
40518 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40519
40520         * config/aarch64/aarch64-builtins.c
40521         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
40522         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
40523         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
40524         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
40525         builtins.
40526         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
40527         (Vrevsuff): New mode attribute.
40528
40529 2014-04-24  Terry Guo  <terry.guo@arm.com>
40530
40531         * config/arm/arm.h (machine_function): Define variable
40532         after_arm_reorg here.
40533         * config/arm/arm.c (after_arm_reorg): Remove the definition.
40534         (arm_split_constant): Update the way to access variable
40535         after_arm_reorg.
40536         (arm_reorg): Ditto.
40537         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
40538
40539 2014-04-23  Tom de Vries  <tom@codesourcery.com>
40540
40541         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
40542
40543 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
40544
40545         * is-a.h: Update comments to reflect the following changes to the
40546         "pointerness" of the API, making the template parameter match the
40547         return type, allowing use of is-a.h with typedefs of pointers.
40548         (is_a_helper::cast): Return a T rather then a pointer to a T, so
40549         that the return type matches the parameter to the is_a_helper.
40550         (as_a): Likewise.
40551         (dyn_cast): Likewise.
40552
40553         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
40554         pointer from the is-a.h API.
40555
40556         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
40557         (is_a_helper <cgraph_node *>::test): ...this, matching change to
40558         is-a.h API.
40559         (is_a_helper <varpool_node>::test): Likewise, convert to...
40560         (is_a_helper <varpool_node *>::test): ...this.
40561
40562         (varpool_first_variable): Update for removal of implicit pointer
40563         from the is-a.h API.
40564         (varpool_next_variable): Likewise.
40565         (varpool_first_static_initializer): Likewise.
40566         (varpool_next_static_initializer): Likewise.
40567         (varpool_first_defined_variable): Likewise.
40568         (varpool_next_defined_variable): Likewise.
40569         (cgraph_first_defined_function): Likewise.
40570         (cgraph_next_defined_function): Likewise.
40571         (cgraph_first_function): Likewise.
40572         (cgraph_next_function): Likewise.
40573         (cgraph_first_function_with_gimple_body): Likewise.
40574         (cgraph_next_function_with_gimple_body): Likewise.
40575         (cgraph_alias_target): Likewise.
40576         (varpool_alias_target): Likewise.
40577         (cgraph_function_or_thunk_node): Likewise.
40578         (varpool_variable_node): Likewise.
40579         (symtab_real_symbol_p): Likewise.
40580         * cgraphunit.c (referred_to_p): Likewise.
40581         (analyze_functions): Likewise.
40582         (handle_alias_pairs): Likewise.
40583         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
40584         * gimple-ssa.h (gimple_vuse_op): Likewise.
40585         (gimple_vdef_op): Likewise.
40586         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
40587         * gimple.c (gimple_build_asm_1): Likewise.
40588         (gimple_build_try): Likewise.
40589         (gimple_build_resx): Likewise.
40590         (gimple_build_eh_dispatch): Likewise.
40591         (gimple_build_omp_for): Likewise.
40592         (gimple_omp_for_set_clauses): Likewise.
40593
40594         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
40595         (is_a_helper <gimple_statement_asm *>::test): ...this.
40596         (is_a_helper <gimple_statement_bind>::test): Convert to...
40597         (is_a_helper <gimple_statement_bind *>::test): ...this.
40598         (is_a_helper <gimple_statement_call>::test): Convert to...
40599         (is_a_helper <gimple_statement_call *>::test): ...this.
40600         (is_a_helper <gimple_statement_catch>::test): Convert to...
40601         (is_a_helper <gimple_statement_catch *>::test): ...this.
40602         (is_a_helper <gimple_statement_resx>::test): Convert to...
40603         (is_a_helper <gimple_statement_resx *>::test): ...this.
40604         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
40605         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
40606         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
40607         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
40608         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
40609         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
40610         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
40611         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
40612         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
40613         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
40614         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
40615         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
40616         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
40617         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
40618         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
40619         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
40620         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
40621         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
40622         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
40623         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
40624         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
40625         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
40626         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
40627         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
40628         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
40629         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
40630         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
40631         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
40632         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
40633         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
40634         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
40635         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
40636         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
40637         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
40638         (is_a_helper <gimple_statement_phi>::test): Convert to...
40639         (is_a_helper <gimple_statement_phi *>::test): ...this.
40640         (is_a_helper <gimple_statement_transaction>::test): Convert to...
40641         (is_a_helper <gimple_statement_transaction *>::test): ...this.
40642         (is_a_helper <gimple_statement_try>::test): Convert to...
40643         (is_a_helper <gimple_statement_try *>::test): ...this.
40644         (is_a_helper <gimple_statement_wce>::test): Convert to...
40645         (is_a_helper <gimple_statement_wce *>::test): ...this.
40646         (is_a_helper <const gimple_statement_asm>::test): Convert to...
40647         (is_a_helper <const gimple_statement_asm *>::test): ...this.
40648         (is_a_helper <const gimple_statement_bind>::test): Convert to...
40649         (is_a_helper <const gimple_statement_bind *>::test): ...this.
40650         (is_a_helper <const gimple_statement_call>::test): Convert to...
40651         (is_a_helper <const gimple_statement_call *>::test): ...this.
40652         (is_a_helper <const gimple_statement_catch>::test): Convert to...
40653         (is_a_helper <const gimple_statement_catch *>::test): ...this.
40654         (is_a_helper <const gimple_statement_resx>::test): Convert to...
40655         (is_a_helper <const gimple_statement_resx *>::test): ...this.
40656         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
40657         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
40658         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
40659         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
40660         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
40661         Convert to...
40662         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
40663         ...this.
40664         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
40665         Convert to...
40666         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
40667         ...this.
40668         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
40669         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
40670         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
40671         to...
40672         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
40673         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
40674         to...
40675         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
40676         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
40677         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
40678         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
40679         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
40680         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
40681         to...
40682         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
40683         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
40684         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
40685         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
40686         to...
40687         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
40688         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
40689         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
40690         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
40691         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
40692         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
40693         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
40694         (is_a_helper <const gimple_statement_phi>::test): Convert to...
40695         (is_a_helper <const gimple_statement_phi *>::test): ...this.
40696         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
40697         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
40698         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
40699         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
40700         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
40701         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
40702         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
40703         to...
40704         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
40705         ...this.
40706         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
40707         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
40708
40709         (gimple_use_ops): Update for removal of implicit pointer from the
40710         is-a.h API.
40711         (gimple_set_use_ops): Likewise.
40712         (gimple_vuse): Likewise.
40713         (gimple_vdef): Likewise.
40714         (gimple_vuse_ptr): Likewise.
40715         (gimple_vdef_ptr): Likewise.
40716         (gimple_set_vuse): Likewise.
40717         (gimple_set_vdef): Likewise.
40718         (gimple_omp_return_set_lhs): Likewise.
40719         (gimple_omp_return_lhs): Likewise.
40720         (gimple_omp_return_lhs_ptr): Likewise.
40721         (gimple_call_fntype): Likewise.
40722         (gimple_call_set_fntype): Likewise.
40723         (gimple_call_set_internal_fn): Likewise.
40724         (gimple_call_use_set): Likewise.
40725         (gimple_call_clobber_set): Likewise.
40726         (gimple_bind_vars): Likewise.
40727         (gimple_bind_set_vars): Likewise.
40728         (gimple_bind_body_ptr): Likewise.
40729         (gimple_bind_set_body): Likewise.
40730         (gimple_bind_add_stmt): Likewise.
40731         (gimple_bind_block): Likewise.
40732         (gimple_bind_set_block): Likewise.
40733         (gimple_asm_ninputs): Likewise.
40734         (gimple_asm_noutputs): Likewise.
40735         (gimple_asm_nclobbers): Likewise.
40736         (gimple_asm_nlabels): Likewise.
40737         (gimple_asm_input_op): Likewise.
40738         (gimple_asm_input_op_ptr): Likewise.
40739         (gimple_asm_output_op): Likewise.
40740         (gimple_asm_output_op_ptr): Likewise.
40741         (gimple_asm_set_output_op): Likewise.
40742         (gimple_asm_clobber_op): Likewise.
40743         (gimple_asm_set_clobber_op): Likewise.
40744         (gimple_asm_label_op): Likewise.
40745         (gimple_asm_set_label_op): Likewise.
40746         (gimple_asm_string): Likewise.
40747         (gimple_catch_types): Likewise.
40748         (gimple_catch_types_ptr): Likewise.
40749         (gimple_catch_handler_ptr): Likewise.
40750         (gimple_catch_set_types): Likewise.
40751         (gimple_catch_set_handler): Likewise.
40752         (gimple_eh_filter_types): Likewise.
40753         (gimple_eh_filter_types_ptr): Likewise.
40754         (gimple_eh_filter_failure_ptr): Likewise.
40755         (gimple_eh_filter_set_types): Likewise.
40756         (gimple_eh_filter_set_failure): Likewise.
40757         (gimple_eh_must_not_throw_fndecl): Likewise.
40758         (gimple_eh_must_not_throw_set_fndecl): Likewise.
40759         (gimple_eh_else_n_body_ptr): Likewise.
40760         (gimple_eh_else_e_body_ptr): Likewise.
40761         (gimple_eh_else_set_n_body): Likewise.
40762         (gimple_eh_else_set_e_body): Likewise.
40763         (gimple_try_eval_ptr): Likewise.
40764         (gimple_try_cleanup_ptr): Likewise.
40765         (gimple_try_set_eval): Likewise.
40766         (gimple_try_set_cleanup): Likewise.
40767         (gimple_wce_cleanup_ptr): Likewise.
40768         (gimple_wce_set_cleanup): Likewise.
40769         (gimple_phi_capacity): Likewise.
40770         (gimple_phi_num_args): Likewise.
40771         (gimple_phi_result): Likewise.
40772         (gimple_phi_result_ptr): Likewise.
40773         (gimple_phi_set_result): Likewise.
40774         (gimple_phi_arg): Likewise.
40775         (gimple_phi_set_arg): Likewise.
40776         (gimple_resx_region): Likewise.
40777         (gimple_resx_set_region): Likewise.
40778         (gimple_eh_dispatch_region): Likewise.
40779         (gimple_eh_dispatch_set_region): Likewise.
40780         (gimple_omp_critical_name): Likewise.
40781         (gimple_omp_critical_name_ptr): Likewise.
40782         (gimple_omp_critical_set_name): Likewise.
40783         (gimple_omp_for_clauses): Likewise.
40784         (gimple_omp_for_clauses_ptr): Likewise.
40785         (gimple_omp_for_set_clauses): Likewise.
40786         (gimple_omp_for_collapse): Likewise.
40787         (gimple_omp_for_index): Likewise.
40788         (gimple_omp_for_index_ptr): Likewise.
40789         (gimple_omp_for_set_index): Likewise.
40790         (gimple_omp_for_initial): Likewise.
40791         (gimple_omp_for_initial_ptr): Likewise.
40792         (gimple_omp_for_set_initial): Likewise.
40793         (gimple_omp_for_final): Likewise.
40794         (gimple_omp_for_final_ptr): Likewise.
40795         (gimple_omp_for_set_final): Likewise.
40796         (gimple_omp_for_incr): Likewise.
40797         (gimple_omp_for_incr_ptr): Likewise.
40798         (gimple_omp_for_set_incr): Likewise.
40799         (gimple_omp_for_pre_body_ptr): Likewise.
40800         (gimple_omp_for_set_pre_body): Likewise.
40801         (gimple_omp_parallel_clauses): Likewise.
40802         (gimple_omp_parallel_clauses_ptr): Likewise.
40803         (gimple_omp_parallel_set_clauses): Likewise.
40804         (gimple_omp_parallel_child_fn): Likewise.
40805         (gimple_omp_parallel_child_fn_ptr): Likewise.
40806         (gimple_omp_parallel_set_child_fn): Likewise.
40807         (gimple_omp_parallel_data_arg): Likewise.
40808         (gimple_omp_parallel_data_arg_ptr): Likewise.
40809         (gimple_omp_parallel_set_data_arg): Likewise.
40810         (gimple_omp_task_clauses): Likewise.
40811         (gimple_omp_task_clauses_ptr): Likewise.
40812         (gimple_omp_task_set_clauses): Likewise.
40813         (gimple_omp_task_child_fn): Likewise.
40814         (gimple_omp_task_child_fn_ptr): Likewise.
40815         (gimple_omp_task_set_child_fn): Likewise.
40816         (gimple_omp_task_data_arg): Likewise.
40817         (gimple_omp_task_data_arg_ptr): Likewise.
40818         (gimple_omp_task_set_data_arg): Likewise.
40819         (gimple_omp_taskreg_clauses): Likewise.
40820         (gimple_omp_taskreg_clauses_ptr): Likewise.
40821         (gimple_omp_taskreg_set_clauses): Likewise.
40822         (gimple_omp_taskreg_child_fn): Likewise.
40823         (gimple_omp_taskreg_child_fn_ptr): Likewise.
40824         (gimple_omp_taskreg_set_child_fn): Likewise.
40825         (gimple_omp_taskreg_data_arg): Likewise.
40826         (gimple_omp_taskreg_data_arg_ptr): Likewise.
40827         (gimple_omp_taskreg_set_data_arg): Likewise.
40828         (gimple_omp_task_copy_fn): Likewise.
40829         (gimple_omp_task_copy_fn_ptr): Likewise.
40830         (gimple_omp_task_set_copy_fn): Likewise.
40831         (gimple_omp_task_arg_size): Likewise.
40832         (gimple_omp_task_arg_size_ptr): Likewise.
40833         (gimple_omp_task_set_arg_size): Likewise.
40834         (gimple_omp_task_arg_align): Likewise.
40835         (gimple_omp_task_arg_align_ptr): Likewise.
40836         (gimple_omp_task_set_arg_align): Likewise.
40837         (gimple_omp_single_clauses): Likewise.
40838         (gimple_omp_single_clauses_ptr): Likewise.
40839         (gimple_omp_single_set_clauses): Likewise.
40840         (gimple_omp_target_clauses): Likewise.
40841         (gimple_omp_target_clauses_ptr): Likewise.
40842         (gimple_omp_target_set_clauses): Likewise.
40843         (gimple_omp_target_child_fn): Likewise.
40844         (gimple_omp_target_child_fn_ptr): Likewise.
40845         (gimple_omp_target_set_child_fn): Likewise.
40846         (gimple_omp_target_data_arg): Likewise.
40847         (gimple_omp_target_data_arg_ptr): Likewise.
40848         (gimple_omp_target_set_data_arg): Likewise.
40849         (gimple_omp_teams_clauses): Likewise.
40850         (gimple_omp_teams_clauses_ptr): Likewise.
40851         (gimple_omp_teams_set_clauses): Likewise.
40852         (gimple_omp_sections_clauses): Likewise.
40853         (gimple_omp_sections_clauses_ptr): Likewise.
40854         (gimple_omp_sections_set_clauses): Likewise.
40855         (gimple_omp_sections_control): Likewise.
40856         (gimple_omp_sections_control_ptr): Likewise.
40857         (gimple_omp_sections_set_control): Likewise.
40858         (gimple_omp_for_set_cond): Likewise.
40859         (gimple_omp_for_cond): Likewise.
40860         (gimple_omp_atomic_store_set_val): Likewise.
40861         (gimple_omp_atomic_store_val): Likewise.
40862         (gimple_omp_atomic_store_val_ptr): Likewise.
40863         (gimple_omp_atomic_load_set_lhs): Likewise.
40864         (gimple_omp_atomic_load_lhs): Likewise.
40865         (gimple_omp_atomic_load_lhs_ptr): Likewise.
40866         (gimple_omp_atomic_load_set_rhs): Likewise.
40867         (gimple_omp_atomic_load_rhs): Likewise.
40868         (gimple_omp_atomic_load_rhs_ptr): Likewise.
40869         (gimple_omp_continue_control_def): Likewise.
40870         (gimple_omp_continue_control_def_ptr): Likewise.
40871         (gimple_omp_continue_set_control_def): Likewise.
40872         (gimple_omp_continue_control_use): Likewise.
40873         (gimple_omp_continue_control_use_ptr): Likewise.
40874         (gimple_omp_continue_set_control_use): Likewise.
40875         (gimple_transaction_body_ptr): Likewise.
40876         (gimple_transaction_label): Likewise.
40877         (gimple_transaction_label_ptr): Likewise.
40878         (gimple_transaction_set_body): Likewise.
40879         (gimple_transaction_set_label): Likewise.
40880
40881         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
40882         * ipa-inline-analysis.c (inline_write_summary): Likewise.
40883         * ipa-ref.c (ipa_record_reference): Likewise.
40884         * ipa-reference.c (analyze_function): Likewise.
40885         (ipa_reference_write_optimization_summary): Likewise.
40886         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
40887         (address_taken_from_non_vtable_p): Likewise.
40888         (comdat_can_be_unshared_p_1): Likewise.
40889         * lto-cgraph.c (lto_output_ref): Likewise.
40890         (add_references): Likewise.
40891         (compute_ltrans_boundary): Likewise.
40892         (output_symtab): Likewise.
40893         (input_ref): Likewise.
40894         (input_cgraph_1): Likewise.
40895         (output_cgraph_opt_summary): Likewise.
40896         * lto-streamer-out.c (lto_output): Likewise.
40897         (output_symbol_p): Likewise.
40898         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
40899         (lsei_start_function_in_partition): Likewise.
40900         (lsei_next_variable_in_partition): Likewise.
40901         (lsei_start_variable_in_partition): Likewise.
40902         * symtab.c (insert_to_assembler_name_hash): Likewise.
40903         (unlink_from_assembler_name_hash): Likewise.
40904         (symtab_unregister_node): Likewise.
40905         (symtab_remove_node): Likewise.
40906         (dump_symtab_node): Likewise.
40907         (verify_symtab_base): Likewise.
40908         (verify_symtab_node): Likewise.
40909         (symtab_make_decl_local): Likewise.
40910         (symtab_alias_ultimate_target): Likewise.
40911         (symtab_resolve_alias): Likewise.
40912         (symtab_get_symbol_partitioning_class): Likewise.
40913         * tree-phinodes.c (allocate_phi_node): Likewise.
40914         (reserve_phi_args_for_new_edge): Likewise.
40915         (remove_phi_args): Likewise.
40916         * varpool.c (varpool_node_for_asm): Likewise.
40917         (varpool_remove_unreferenced_decls): Likewise.
40918
40919 2014-04-23  Jeff Law  <law@redhat.com>
40920
40921         PR tree-optimization/60902
40922         * tree-ssa-threadedge.c
40923         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
40924         invalidate outputs from statements that do not produce useful
40925         outputs for threading.
40926
40927 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
40928
40929         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
40930         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
40931         machine descriptions for Stack Smashing Protector.
40932
40933 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
40934
40935         * aarch64.md (<optab>_rol<mode>3): New pattern.
40936         (<optab>_rolsi3_uxtw): Likewise.
40937         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
40938
40939 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
40940
40941         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
40942         (arm_cortex_a12_tune): Likewise.
40943
40944 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40945
40946         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
40947
40948 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40949
40950         * config/arm/arm.md (arm_rev16si2): New pattern.
40951         (arm_rev16si2_alt): Likewise.
40952         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
40953
40954 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40955
40956         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
40957         (rev16<mode>2_alt): Likewise.
40958         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
40959         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
40960         (aarch_rev16_shleft_mask_imm_p): Likewise.
40961         (aarch_rev16_p_1): Likewise.
40962         (aarch_rev16_p): Likewise.
40963         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
40964         (aarch_rev16_shright_mask_imm_p): Likewise.
40965         (aarch_rev16_shleft_mask_imm_p): Likewise.
40966
40967 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40968
40969         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
40970         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
40971         rev cost.
40972         (cortex_a53_extra_costs): Likewise.
40973         (cortex_a57_extra_costs): Likewise.
40974         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
40975         (cortexa7_extra_costs): Likewise.
40976         (cortexa8_extra_costs): Likewise.
40977         (cortexa12_extra_costs): Likewise.
40978         (cortexa15_extra_costs): Likewise.
40979         (v7m_extra_costs): Likewise.
40980         (arm_new_rtx_costs): Handle BSWAP.
40981
40982 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40983
40984         * config/arm/arm.c (cortexa8_extra_costs): New table.
40985         (arm_cortex_a8_tune): New tuning struct.
40986         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
40987
40988 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40989
40990         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
40991
40992 2014-04-23  Richard Biener  <rguenther@suse.de>
40993
40994         * Makefile.in (OBJS): Remove loop-unswitch.o.
40995         * tree-pass.h (make_pass_rtl_unswitch): Remove.
40996         * passes.def (pass_rtl_unswitch): Likewise.
40997         * loop-init.c (gate_rtl_unswitch): Likewise.
40998         (rtl_unswitch): Likewise.
40999         (pass_data_rtl_unswitch): Likewise.
41000         (pass_rtl_unswitch): Likewise.
41001         (make_pass_rtl_unswitch): Likewise.
41002         * rtl.h (reversed_condition): Likewise.
41003         (compare_and_jump_seq): Likewise.
41004         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
41005         and make static.
41006         * loop-unroll.c (compare_and_jump_seq): Likewise.
41007
41008 2014-04-23  Richard Biener  <rguenther@suse.de>
41009
41010         PR tree-optimization/60903
41011         * tree-ssa-loop-im.c (analyze_memory_references): Remove
41012         commented code block.
41013         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
41014         loop flags to newly created BBs and edges.
41015
41016 2014-04-23  Nick Clifton  <nickc@redhat.com>
41017
41018         * config/msp430/msp430.c (msp430_handle_option): Move function
41019         to msp430-common.c
41020         (msp430_option_override): Simplify mcu and mcpu option handling.
41021         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
41022         support for -mhwmult command line option.
41023         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
41024         -mhwmult command line option.
41025         (msp430_hwmult_enabled): Delete.
41026         (msp43o_output_labelref): Add support for -mhwmult command line option.
41027         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
41028         (umulsidi3): Likewise.
41029         * config/msp430/msp430.opt (mmcu): Add Report attribute.
41030         (mcpu, mlarge, msmall): Likewise.
41031         (mhwmult): New option.
41032         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
41033         prototype.
41034         (msp430_is_f5_mcu): Remove prototype.
41035         (msp430_use_f5_series_hwmult): Add prototype.
41036         * config/msp430/msp430-opts.h: New file.
41037         * common/config/msp430: New directory.
41038         * common/config/msp430/msp430-common.c: New file.
41039         * config.gcc (msp430): Remove target_has_targetm_common.
41040         * doc/invoke.texi: Document -mhwmult command line option.
41041
41042 2014-04-23  Nick Clifton  <nickc@redhat.com>
41043
41044         * config/i386/cygwin.h (ENDFILE_SPEC): Include
41045         default-manifest.o if it can be found in the search path.
41046         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
41047
41048 2014-04-23  Terry Guo  <terry.guo@arm.com>
41049
41050         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
41051
41052 2014-04-23  Richard Biener  <rguenther@suse.de>
41053
41054         PR middle-end/60895
41055         * tree-inline.c (declare_return_variable): Use mark_addressable.
41056
41057 2014-04-23  Richard Biener  <rguenther@suse.de>
41058
41059         PR middle-end/60891
41060         * loop-init.c (loop_optimizer_init): Make sure to apply
41061         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
41062
41063 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
41064
41065         PR sanitizer/60275
41066         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
41067         New options.
41068         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
41069         if flag_sanitize_undefined_trap_on_error.
41070         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
41071         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
41072         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
41073         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
41074         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
41075         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
41076         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
41077         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
41078         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
41079         * ubsan.c (ubsan_instrument_unreachable): Return
41080         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
41081         (ubsan_expand_null_ifn): Emit __builtin_trap ()
41082         if flag_sanitize_undefined_trap_on_error and
41083         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
41084         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
41085         instrument_bool_enum_load): Emit __builtin_trap () if
41086         flag_sanitize_undefined_trap_on_error and
41087         __builtin_handle_*_abort () if !flag_sanitize_recover.
41088         * doc/invoke.texi (-fsanitize-recover,
41089         -fsanitize-undefined-trap-on-error): Document.
41090
41091 2014-04-22  Christian Bruel  <christian.bruel@st.com>
41092
41093         * config/sh/sh.md (mov<mode>): Replace movQIHI.
41094         Force immediates to SImode.
41095
41096 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
41097
41098         * config/nios2/nios2.md (UNSPEC_ROUND): New.
41099         (lroundsfsi2): New.
41100         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
41101         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
41102         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
41103         (nios2_fpu_insn): Add entry for round.
41104         (N2FPU_NO_ERRNO_P): Define.
41105         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
41106         flag_errno_math.
41107         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
41108
41109 2014-04-22  Richard Henderson  <rth@redhat.com>
41110
41111         * config/aarch64/aarch64 (addti3, subti3): New expanders.
41112         (add<GPI>3_compare0): Remove leading * from name.
41113         (add<GPI>3_carryin): Likewise.
41114         (sub<GPI>3_compare0): Likewise.
41115         (sub<GPI>3_carryin): Likewise.
41116         (<su_optab>mulditi3): New expander.
41117         (multi3): New expander.
41118         (madd<GPI>): Remove leading * from name.
41119
41120 2014-04-22  Martin Jambor  <mjambor@suse.cz>
41121
41122         * cgraphclones.c (cgraph_function_versioning): Copy
41123         ipa_transforms_to_apply instead of asserting it is empty.
41124
41125 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
41126
41127         PR target/60868
41128         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
41129         on count_exp to get mode.
41130
41131 2014-04-22  Andrew Pinski  <apinski@cavium.com>
41132
41133         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
41134         Handle TLS for ILP32.
41135         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
41136         (tlsie_small_<mode>): this and handle PTR.
41137         (tlsie_small_sidi): New pattern.
41138         (tlsle_small): Change to an expand to handle ILP32.
41139         (tlsle_small_<mode>): New pattern.
41140         (tlsdesc_small): Rename to ...
41141         (tlsdesc_small_<mode>): this and handle PTR.
41142
41143 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
41144
41145         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
41146
41147 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41148
41149         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
41150         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
41151         (aarch64_types_signed_poly_qualifiers): Likewise.
41152         (aarch64_types_unsigned_signed_qualifiers): Likewise.
41153         (aarch64_types_poly_signed_qualifiers): Likewise.
41154         (TYPES_REINTERP_SS): Type macro added.
41155         (TYPES_REINTERP_SU): Likewise.
41156         (TYPES_REINTERP_SP): Likewise.
41157         (TYPES_REINTERP_US): Likewise.
41158         (TYPES_REINTERP_PS): Likewise.
41159         (aarch64_fold_builtin): New expression folding added.
41160         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
41161         Declarations removed.
41162         (REINTERP_SS): Declarations added.
41163         (REINTERP_US): Likewise.
41164         (REINTERP_PS): Likewise.
41165         (REINTERP_SU): Likewise.
41166         (REINTERP_SP): Likewise.
41167         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
41168         (vreinterpretq_p8_f64): Likewise.
41169         (vreinterpret_p16_f64): Likewise.
41170         (vreinterpretq_p16_f64): Likewise.
41171         (vreinterpret_f32_f64): Likewise.
41172         (vreinterpretq_f32_f64): Likewise.
41173         (vreinterpret_f64_f32): Likewise.
41174         (vreinterpret_f64_p8): Likewise.
41175         (vreinterpret_f64_p16): Likewise.
41176         (vreinterpret_f64_s8): Likewise.
41177         (vreinterpret_f64_s16): Likewise.
41178         (vreinterpret_f64_s32): Likewise.
41179         (vreinterpret_f64_s64): Likewise.
41180         (vreinterpret_f64_u8): Likewise.
41181         (vreinterpret_f64_u16): Likewise.
41182         (vreinterpret_f64_u32): Likewise.
41183         (vreinterpret_f64_u64): Likewise.
41184         (vreinterpretq_f64_f32): Likewise.
41185         (vreinterpretq_f64_p8): Likewise.
41186         (vreinterpretq_f64_p16): Likewise.
41187         (vreinterpretq_f64_s8): Likewise.
41188         (vreinterpretq_f64_s16): Likewise.
41189         (vreinterpretq_f64_s32): Likewise.
41190         (vreinterpretq_f64_s64): Likewise.
41191         (vreinterpretq_f64_u8): Likewise.
41192         (vreinterpretq_f64_u16): Likewise.
41193         (vreinterpretq_f64_u32): Likewise.
41194         (vreinterpretq_f64_u64): Likewise.
41195         (vreinterpret_s64_f64): Likewise.
41196         (vreinterpretq_s64_f64): Likewise.
41197         (vreinterpret_u64_f64): Likewise.
41198         (vreinterpretq_u64_f64): Likewise.
41199         (vreinterpret_s8_f64): Likewise.
41200         (vreinterpretq_s8_f64): Likewise.
41201         (vreinterpret_s16_f64): Likewise.
41202         (vreinterpretq_s16_f64): Likewise.
41203         (vreinterpret_s32_f64): Likewise.
41204         (vreinterpretq_s32_f64): Likewise.
41205         (vreinterpret_u8_f64): Likewise.
41206         (vreinterpretq_u8_f64): Likewise.
41207         (vreinterpret_u16_f64): Likewise.
41208         (vreinterpretq_u16_f64): Likewise.
41209         (vreinterpret_u32_f64): Likewise.
41210         (vreinterpretq_u32_f64): Likewise.
41211
41212 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41213
41214         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
41215         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
41216         (vreinterpret_p8_s8): Likewise.
41217         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
41218         (vreinterpret_p8_s16): Likewise.
41219         (vreinterpret_p8_s32): Likewise.
41220         (vreinterpret_p8_s64): Likewise.
41221         (vreinterpret_p8_f32): Likewise.
41222         (vreinterpret_p8_u8): Likewise.
41223         (vreinterpret_p8_u16): Likewise.
41224         (vreinterpret_p8_u32): Likewise.
41225         (vreinterpret_p8_u64): Likewise.
41226         (vreinterpret_p8_p16): Likewise.
41227         (vreinterpretq_p8_s8): Likewise.
41228         (vreinterpretq_p8_s16): Likewise.
41229         (vreinterpretq_p8_s32): Likewise.
41230         (vreinterpretq_p8_s64): Likewise.
41231         (vreinterpretq_p8_f32): Likewise.
41232         (vreinterpretq_p8_u8): Likewise.
41233         (vreinterpretq_p8_u16): Likewise.
41234         (vreinterpretq_p8_u32): Likewise.
41235         (vreinterpretq_p8_u64): Likewise.
41236         (vreinterpretq_p8_p16): Likewise.
41237         (vreinterpret_p16_s8): Likewise.
41238         (vreinterpret_p16_s16): Likewise.
41239         (vreinterpret_p16_s32): Likewise.
41240         (vreinterpret_p16_s64): Likewise.
41241         (vreinterpret_p16_f32): Likewise.
41242         (vreinterpret_p16_u8): Likewise.
41243         (vreinterpret_p16_u16): Likewise.
41244         (vreinterpret_p16_u32): Likewise.
41245         (vreinterpret_p16_u64): Likewise.
41246         (vreinterpret_p16_p8): Likewise.
41247         (vreinterpretq_p16_s8): Likewise.
41248         (vreinterpretq_p16_s16): Likewise.
41249         (vreinterpretq_p16_s32): Likewise.
41250         (vreinterpretq_p16_s64): Likewise.
41251         (vreinterpretq_p16_f32): Likewise.
41252         (vreinterpretq_p16_u8): Likewise.
41253         (vreinterpretq_p16_u16): Likewise.
41254         (vreinterpretq_p16_u32): Likewise.
41255         (vreinterpretq_p16_u64): Likewise.
41256         (vreinterpretq_p16_p8): Likewise.
41257         (vreinterpret_f32_s8): Likewise.
41258         (vreinterpret_f32_s16): Likewise.
41259         (vreinterpret_f32_s32): Likewise.
41260         (vreinterpret_f32_s64): Likewise.
41261         (vreinterpret_f32_u8): Likewise.
41262         (vreinterpret_f32_u16): Likewise.
41263         (vreinterpret_f32_u32): Likewise.
41264         (vreinterpret_f32_u64): Likewise.
41265         (vreinterpret_f32_p8): Likewise.
41266         (vreinterpret_f32_p16): Likewise.
41267         (vreinterpretq_f32_s8): Likewise.
41268         (vreinterpretq_f32_s16): Likewise.
41269         (vreinterpretq_f32_s32): Likewise.
41270         (vreinterpretq_f32_s64): Likewise.
41271         (vreinterpretq_f32_u8): Likewise.
41272         (vreinterpretq_f32_u16): Likewise.
41273         (vreinterpretq_f32_u32): Likewise.
41274         (vreinterpretq_f32_u64): Likewise.
41275         (vreinterpretq_f32_p8): Likewise.
41276         (vreinterpretq_f32_p16): Likewise.
41277         (vreinterpret_s64_s8): Likewise.
41278         (vreinterpret_s64_s16): Likewise.
41279         (vreinterpret_s64_s32): Likewise.
41280         (vreinterpret_s64_f32): Likewise.
41281         (vreinterpret_s64_u8): Likewise.
41282         (vreinterpret_s64_u16): Likewise.
41283         (vreinterpret_s64_u32): Likewise.
41284         (vreinterpret_s64_u64): Likewise.
41285         (vreinterpret_s64_p8): Likewise.
41286         (vreinterpret_s64_p16): Likewise.
41287         (vreinterpretq_s64_s8): Likewise.
41288         (vreinterpretq_s64_s16): Likewise.
41289         (vreinterpretq_s64_s32): Likewise.
41290         (vreinterpretq_s64_f32): Likewise.
41291         (vreinterpretq_s64_u8): Likewise.
41292         (vreinterpretq_s64_u16): Likewise.
41293         (vreinterpretq_s64_u32): Likewise.
41294         (vreinterpretq_s64_u64): Likewise.
41295         (vreinterpretq_s64_p8): Likewise.
41296         (vreinterpretq_s64_p16): Likewise.
41297         (vreinterpret_u64_s8): Likewise.
41298         (vreinterpret_u64_s16): Likewise.
41299         (vreinterpret_u64_s32): Likewise.
41300         (vreinterpret_u64_s64): Likewise.
41301         (vreinterpret_u64_f32): Likewise.
41302         (vreinterpret_u64_u8): Likewise.
41303         (vreinterpret_u64_u16): Likewise.
41304         (vreinterpret_u64_u32): Likewise.
41305         (vreinterpret_u64_p8): Likewise.
41306         (vreinterpret_u64_p16): Likewise.
41307         (vreinterpretq_u64_s8): Likewise.
41308         (vreinterpretq_u64_s16): Likewise.
41309         (vreinterpretq_u64_s32): Likewise.
41310         (vreinterpretq_u64_s64): Likewise.
41311         (vreinterpretq_u64_f32): Likewise.
41312         (vreinterpretq_u64_u8): Likewise.
41313         (vreinterpretq_u64_u16): Likewise.
41314         (vreinterpretq_u64_u32): Likewise.
41315         (vreinterpretq_u64_p8): Likewise.
41316         (vreinterpretq_u64_p16): Likewise.
41317         (vreinterpret_s8_s16): Likewise.
41318         (vreinterpret_s8_s32): Likewise.
41319         (vreinterpret_s8_s64): Likewise.
41320         (vreinterpret_s8_f32): Likewise.
41321         (vreinterpret_s8_u8): Likewise.
41322         (vreinterpret_s8_u16): Likewise.
41323         (vreinterpret_s8_u32): Likewise.
41324         (vreinterpret_s8_u64): Likewise.
41325         (vreinterpret_s8_p8): Likewise.
41326         (vreinterpret_s8_p16): Likewise.
41327         (vreinterpretq_s8_s16): Likewise.
41328         (vreinterpretq_s8_s32): Likewise.
41329         (vreinterpretq_s8_s64): Likewise.
41330         (vreinterpretq_s8_f32): Likewise.
41331         (vreinterpretq_s8_u8): Likewise.
41332         (vreinterpretq_s8_u16): Likewise.
41333         (vreinterpretq_s8_u32): Likewise.
41334         (vreinterpretq_s8_u64): Likewise.
41335         (vreinterpretq_s8_p8): Likewise.
41336         (vreinterpretq_s8_p16): Likewise.
41337         (vreinterpret_s16_s8): Likewise.
41338         (vreinterpret_s16_s32): Likewise.
41339         (vreinterpret_s16_s64): Likewise.
41340         (vreinterpret_s16_f32): Likewise.
41341         (vreinterpret_s16_u8): Likewise.
41342         (vreinterpret_s16_u16): Likewise.
41343         (vreinterpret_s16_u32): Likewise.
41344         (vreinterpret_s16_u64): Likewise.
41345         (vreinterpret_s16_p8): Likewise.
41346         (vreinterpret_s16_p16): Likewise.
41347         (vreinterpretq_s16_s8): Likewise.
41348         (vreinterpretq_s16_s32): Likewise.
41349         (vreinterpretq_s16_s64): Likewise.
41350         (vreinterpretq_s16_f32): Likewise.
41351         (vreinterpretq_s16_u8): Likewise.
41352         (vreinterpretq_s16_u16): Likewise.
41353         (vreinterpretq_s16_u32): Likewise.
41354         (vreinterpretq_s16_u64): Likewise.
41355         (vreinterpretq_s16_p8): Likewise.
41356         (vreinterpretq_s16_p16): Likewise.
41357         (vreinterpret_s32_s8): Likewise.
41358         (vreinterpret_s32_s16): Likewise.
41359         (vreinterpret_s32_s64): Likewise.
41360         (vreinterpret_s32_f32): Likewise.
41361         (vreinterpret_s32_u8): Likewise.
41362         (vreinterpret_s32_u16): Likewise.
41363         (vreinterpret_s32_u32): Likewise.
41364         (vreinterpret_s32_u64): Likewise.
41365         (vreinterpret_s32_p8): Likewise.
41366         (vreinterpret_s32_p16): Likewise.
41367         (vreinterpretq_s32_s8): Likewise.
41368         (vreinterpretq_s32_s16): Likewise.
41369         (vreinterpretq_s32_s64): Likewise.
41370         (vreinterpretq_s32_f32): Likewise.
41371         (vreinterpretq_s32_u8): Likewise.
41372         (vreinterpretq_s32_u16): Likewise.
41373         (vreinterpretq_s32_u32): Likewise.
41374         (vreinterpretq_s32_u64): Likewise.
41375         (vreinterpretq_s32_p8): Likewise.
41376         (vreinterpretq_s32_p16): Likewise.
41377         (vreinterpret_u8_s8): Likewise.
41378         (vreinterpret_u8_s16): Likewise.
41379         (vreinterpret_u8_s32): Likewise.
41380         (vreinterpret_u8_s64): Likewise.
41381         (vreinterpret_u8_f32): Likewise.
41382         (vreinterpret_u8_u16): Likewise.
41383         (vreinterpret_u8_u32): Likewise.
41384         (vreinterpret_u8_u64): Likewise.
41385         (vreinterpret_u8_p8): Likewise.
41386         (vreinterpret_u8_p16): Likewise.
41387         (vreinterpretq_u8_s8): Likewise.
41388         (vreinterpretq_u8_s16): Likewise.
41389         (vreinterpretq_u8_s32): Likewise.
41390         (vreinterpretq_u8_s64): Likewise.
41391         (vreinterpretq_u8_f32): Likewise.
41392         (vreinterpretq_u8_u16): Likewise.
41393         (vreinterpretq_u8_u32): Likewise.
41394         (vreinterpretq_u8_u64): Likewise.
41395         (vreinterpretq_u8_p8): Likewise.
41396         (vreinterpretq_u8_p16): Likewise.
41397         (vreinterpret_u16_s8): Likewise.
41398         (vreinterpret_u16_s16): Likewise.
41399         (vreinterpret_u16_s32): Likewise.
41400         (vreinterpret_u16_s64): Likewise.
41401         (vreinterpret_u16_f32): Likewise.
41402         (vreinterpret_u16_u8): Likewise.
41403         (vreinterpret_u16_u32): Likewise.
41404         (vreinterpret_u16_u64): Likewise.
41405         (vreinterpret_u16_p8): Likewise.
41406         (vreinterpret_u16_p16): Likewise.
41407         (vreinterpretq_u16_s8): Likewise.
41408         (vreinterpretq_u16_s16): Likewise.
41409         (vreinterpretq_u16_s32): Likewise.
41410         (vreinterpretq_u16_s64): Likewise.
41411         (vreinterpretq_u16_f32): Likewise.
41412         (vreinterpretq_u16_u8): Likewise.
41413         (vreinterpretq_u16_u32): Likewise.
41414         (vreinterpretq_u16_u64): Likewise.
41415         (vreinterpretq_u16_p8): Likewise.
41416         (vreinterpretq_u16_p16): Likewise.
41417         (vreinterpret_u32_s8): Likewise.
41418         (vreinterpret_u32_s16): Likewise.
41419         (vreinterpret_u32_s32): Likewise.
41420         (vreinterpret_u32_s64): Likewise.
41421         (vreinterpret_u32_f32): Likewise.
41422         (vreinterpret_u32_u8): Likewise.
41423         (vreinterpret_u32_u16): Likewise.
41424         (vreinterpret_u32_u64): Likewise.
41425         (vreinterpret_u32_p8): Likewise.
41426         (vreinterpret_u32_p16): Likewise.
41427         (vreinterpretq_u32_s8): Likewise.
41428         (vreinterpretq_u32_s16): Likewise.
41429         (vreinterpretq_u32_s32): Likewise.
41430         (vreinterpretq_u32_s64): Likewise.
41431         (vreinterpretq_u32_f32): Likewise.
41432         (vreinterpretq_u32_u8): Likewise.
41433         (vreinterpretq_u32_u16): Likewise.
41434         (vreinterpretq_u32_u64): Likewise.
41435         (vreinterpretq_u32_p8): Likewise.
41436         (vreinterpretq_u32_p16): Likewise.
41437
41438 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41439
41440         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
41441         Pattern extended.
41442         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
41443         (sqabs): Likewise.
41444         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
41445         (vqnegd_s64): Likewise.
41446         (vqabs_s64): Likewise.
41447         (vqabsd_s64): Likewise.
41448
41449 2014-04-22  Richard Henderson  <rth@redhat.com>
41450
41451         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
41452         computation to the top of the loop.
41453
41454 2014-04-22  Renlin  <renlin.li@arm.com>
41455             Jiong Wang  <jiong.wang@arm.com>
41456
41457         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
41458         * config/aarch64/aarch64.c (aarch64_layout_frame)
41459         (aarch64_initial_elimination_offset): Likewise.
41460
41461 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
41462
41463         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
41464         Fix indentation.
41465
41466 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
41467
41468         * machmode.h (bitwise_mode_for_mode): Declare.
41469         * stor-layout.h (bitwise_type_for_mode): Likewise.
41470         * stor-layout.c (bitwise_mode_for_mode): New function.
41471         (bitwise_type_for_mode): Likewise.
41472         * builtins.c (fold_builtin_memory_op): Use it instead of
41473         int_mode_for_mode and build_nonstandard_integer_type.
41474
41475 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
41476
41477         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
41478         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
41479         (*-*-solaris2*): Simplify.
41480         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
41481         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
41482         *-*-solaris2.9* handling.
41483
41484         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
41485         as bug.
41486         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
41487         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
41488         handling, simplify.
41489         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
41490         * configure: Regenerate.
41491
41492         * config/i386/sol2-9.h: Remove.
41493
41494         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
41495         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
41496         Remove Solaris 9 references.
41497
41498 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
41499
41500         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
41501         (floatuns<GPI:mode><GPF:mode>2): Remove.
41502         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
41503         and floatuns conversions.
41504         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
41505         and floatuns conversions.
41506         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
41507         (w1,w2): New mode attributes for inequal width conversions.
41508
41509 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
41510
41511         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
41512         the output asm format.
41513
41514 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
41515
41516         * config/aarch64/aarch64-simd.md
41517         (aarch64_cm<optab>di): Always split.
41518         (*aarch64_cm<optab>di): New.
41519         (aarch64_cmtstdi): Always split.
41520         (*aarch64_cmtstdi): New.
41521
41522 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
41523
41524         PR tree-optimization/60823
41525         * omp-low.c (ipa_simd_modify_function_body): Go through
41526         all SSA_NAMEs and for those refering to vector arguments
41527         which are going to be replaced adjust SSA_NAME_VAR and,
41528         if it is a default definition, change it into a non-default
41529         definition assigned at the beginning of function from new_decl.
41530         (ipa_simd_modify_stmt_ops): Rewritten.
41531         * tree-dfa.c (set_ssa_default_def): When removing default def,
41532         check for NULL loc instead of NULL *loc.
41533
41534 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
41535
41536         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
41537         restrictions on core registers for DImode values in Thumb2.
41538
41539 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
41540
41541         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
41542         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
41543
41544 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
41545
41546         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
41547         (*iordi_notzesidi_di): Likewise.
41548         (*iordi_notsesidi_di): Likewise.
41549
41550 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
41551
41552         * config/arm/arm-protos.h (tune_params): New struct members.
41553         * config/arm/arm.c: Initialise tune_params per processor.
41554         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
41555         for speed, based on new tune_params.
41556
41557 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41558
41559         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
41560         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
41561         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
41562         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
41563         * config/aarch64/arm_neon.h (vrnd_f64): Added.
41564         (vrnda_f64): Likewise.
41565         (vrndi_f64): Likewise.
41566         (vrndm_f64): Likewise.
41567         (vrndn_f64): Likewise.
41568         (vrndp_f64): Likewise.
41569         (vrndx_f64): Likewise.
41570
41571 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
41572
41573         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
41574         GET_MODE_SIZE argument is enum machine_mode.
41575
41576 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
41577
41578         PR target/60910
41579         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
41580         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
41581
41582 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
41583
41584         PR middle-end/60281
41585         * asan.c (asan_emit_stack_protection): Force the base to align to
41586         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
41587         appropriate bits if STRICT_ALIGNMENT.
41588         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
41589         when asan is on.
41590         (expand_used_vars): Leave a space in the stack frame for alignment
41591         if STRICT_ALIGNMENT.
41592
41593 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
41594
41595         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
41596         than a gimple.
41597         (gimple_store_p): Likewise.
41598         (gimple_assign_load_p): Likewise.
41599         (gimple_assign_cast_p): Likewise.
41600         (gimple_clobber_p): Likewise.
41601
41602         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
41603         rather than a gimple.
41604         (gimple_assign_cast_p): Likewise.
41605
41606 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
41607
41608         PR target/60735
41609         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
41610         If mode is DDmode and TARGET_E500_DOUBLE allow move.
41611
41612         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
41613         more debug information for E500 if -mdebug=reg.
41614
41615 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
41616
41617         PR target/60909
41618         * config/i386/i386.c (ix86_expand_builtin)
41619         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
41620         register for target RTX.
41621         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
41622
41623 2014-04-18  Cong Hou  <congh@google.com>
41624
41625         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
41626         the widen-mult pattern by handling two operands with different sizes,
41627         and operands whose size is smaller than half of the result type.
41628
41629 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
41630
41631         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
41632         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
41633         (do_estimate_edge_time): Compute it.
41634         * ipa-inline.c (want_inline_small_function_p): Bypass
41635         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
41636
41637 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
41638
41639         * ipa-inline.c (spec_rem): New static variable.
41640         (dump_overall_stats): New function.
41641         (dump_inline_stats): New function.
41642
41643 2014-04-18  Richard Henderson  <rth@redhat.com>
41644
41645         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
41646         to GET_MODE_SIZE, not a reg_class_t.
41647
41648 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
41649
41650         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
41651         (vsx_xxmrglw_<mode>): Likewise.
41652
41653 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
41654
41655         PR target/60876
41656         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
41657         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
41658         (rs6000_init_hard_regno_mode_ok): Likewise.
41659
41660 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
41661
41662         * ipa-inline.c (inline_small_functions): Account only non-cold
41663         functions.
41664         * doc/invoke.texi (inline-unit-growth): Update documentation.
41665
41666 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
41667
41668         * config/rs6000/rs6000.md (addti3, subti3): New.
41669
41670 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
41671
41672         PR target/60863
41673         * config/i386/i386.c (ix86_expand_clear): Remove outdated
41674         comment.  Check optimize_insn_for_size_p instead of
41675         optimize_insn_for_speed_p.
41676
41677 2014-04-17  Martin Jambor  <mjambor@suse.cz>
41678
41679         * gimple-iterator.c (gsi_start_edge): New function.
41680         * gimple-iterator.h (gsi_start_edge): Declare.
41681         * tree-sra.c (single_non_eh_succ): New function.
41682         (disqualify_ops_if_throwing_stmt): Renamed to
41683         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
41684         having one non-EH successor BB.
41685         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
41686         generate loads into replacements.
41687         (sra_modify_assign): Likewise and and also use the simple path for
41688         such statements.
41689         (sra_modify_function_body): Commit statements on edges.
41690
41691 2014-04-17  Richard Biener  <rguenther@suse.de>
41692
41693         PR middle-end/60849
41694         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
41695         comparison results and add clarifying comment.
41696
41697 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
41698
41699         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
41700         (blank_mode): Initialize it.
41701         (emit_mode_size_inline, emit_mode_nunits_inline,
41702         emit_mode_inner_inline): New functions.
41703         (emit_insn_modes_h): Call them and surround their output with
41704         #if GCC_VERSION >= 4001 ... #endif.
41705         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
41706         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
41707         mode_* arrays if the argument is __builtin_constant_p.
41708         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
41709         is enum machine_mode.
41710
41711 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41712
41713         * passes.c (opt_pass::execute): Adjust.
41714         (pass_manager::execute_pass_mode_switching): Likewise.
41715         (early_local_passes::execute): Likewise.
41716         (execute_one_pass): Pass cfun to the pass's execute method.
41717         * tree-pass.h (opt_pass::execute): Add function * argument.
41718         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
41719         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
41720         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
41721         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41722         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
41723         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
41724         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
41725         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
41726         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
41727         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
41728         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
41729         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
41730         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
41731         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
41732         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
41733         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
41734         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
41735         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
41736         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
41737         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41738         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41739         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41740         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41741         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41742         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41743         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41744         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
41745         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
41746         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
41747         Adjust.
41748
41749 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41750
41751         * passes.c (opt_pass::gate): Take function * argument.
41752         (gate_all_early_local_passes): Merge into
41753         (early_local_passes::gate): this.
41754         (gate_all_early_optimizations): Merge into
41755         (all_early_optimizations::gate): this.
41756         (gate_all_optimizations): Mege into
41757         (all_optimizations::gate): this.
41758         (gate_all_optimizations_g): Merge into
41759         (all_optimizations_g::gate): this.
41760         (gate_rest_of_compilation): Mege into
41761         (rest_of_compilation::gate): this.
41762         (gate_postreload): Merge into
41763         (postreload::gate): this.
41764         (dump_one_pass): Pass cfun to the pass's gate method.
41765         (execute_ipa_summary_passes): Likewise.
41766         (execute_one_pass): Likewise.
41767         (ipa_write_summaries_2): Likewise.
41768         (ipa_write_optimization_summaries_1): Likewise.
41769         (ipa_read_summaries_1): Likewise.
41770         (ipa_read_optimization_summaries_1): Likewise.
41771         (execute_ipa_stmt_fixups): Likewise.
41772         * tree-pass.h (opt_pass::gate): Add function * argument.
41773         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
41774         combine-stack-adj.c, combine.c, compare-elim.c,
41775         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41776         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
41777         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
41778         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
41779         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
41780         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
41781         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
41782         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
41783         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
41784         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
41785         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
41786         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
41787         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
41788         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
41789         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
41790         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41791         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41792         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41793         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41794         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41795         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41796         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41797         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
41798         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
41799         var-tracking.c, vtable-verify.c, web.c: Adjust.
41800
41801 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41802
41803         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
41804         * configure: Regenerate.
41805
41806 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41807
41808         * passes.c (dump_one_pass): don't check pass->has_gate.
41809         (execute_ipa_summary_passes): Likewise.
41810         (execute_one_pass): Likewise.
41811         (ipa_write_summaries_2): Likewise.
41812         (ipa_write_optimization_summaries_1): Likewise.
41813         (ipa_read_optimization_summaries_1): Likewise.
41814         (execute_ipa_stmt_fixups): Likewise.
41815         * tree-pass.h (pass_data::has_gate): Remove.
41816         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
41817         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
41818         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
41819         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41820         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
41821         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
41822         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
41823         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
41824         gimple-low.c, gimple-ssa-isolate-paths.c,
41825         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
41826         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
41827         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
41828         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
41829         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
41830         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
41831         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
41832         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
41833         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
41834         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
41835         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
41836         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
41837         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41838         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41839         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41840         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41841         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41842         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41843         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41844         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
41845         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
41846         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
41847         Adjust.
41848
41849 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41850
41851         * pass_manager.h (pass_manager::register_dump_files_1): Remove
41852         declaration.
41853         * passes.c (pass_manager::register_dump_files_1): Merge into
41854         (pass_manager::register_dump_files): this, and remove its handling of
41855         properties since the pass always has the properties anyway.
41856         (pass_manager::pass_manager): Adjust.
41857
41858 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41859
41860         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
41861         * passes.c (pass_manager::register_dump_files_1): Remove dead code
41862         dealing with properties.
41863         (pass_manager::register_dump_files): Adjust.
41864
41865 2014-03-20  Mark Wielaard  <mjw@redhat.com>
41866
41867         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
41868         then represent the bound as normal constant value.
41869
41870 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
41871
41872         PR target/60847
41873         Forward port from 4.8 branch
41874         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
41875
41876         * config/i386/bmiintrin.h (_blsi_u32): New.
41877         (_blsi_u64): Ditto.
41878         (_blsr_u32): Ditto.
41879         (_blsr_u64): Ditto.
41880         (_blsmsk_u32): Ditto.
41881         (_blsmsk_u64): Ditto.
41882         (_tzcnt_u32): Ditto.
41883         (_tzcnt_u64): Ditto.
41884
41885 2014-04-17  Kito Cheng  <kito@0xlab.org>
41886
41887         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
41888
41889 2014-04-17  Richard Biener  <rguenther@suse.de>
41890
41891         PR middle-end/60849
41892         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
41893         boolean results for comparisons.
41894
41895 2014-04-17  Richard Biener  <rguenther@suse.de>
41896
41897         PR tree-optimization/60836
41898         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
41899         initial PHI args to be gimple values.
41900
41901 2014-04-17  Richard Biener  <rguenther@suse.de>
41902
41903         PR tree-optimization/60841
41904         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
41905         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
41906         of stmts to SLP build.
41907         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
41908         (vect_analyze_slp): Likewise.
41909         (vect_analyze_slp_instance): Likewise.
41910         (vect_build_slp_tree): Limit overall SLP tree growth.
41911         * tree-vectorizer.h (vect_analyze_data_refs,
41912         vect_analyze_slp): Adjust prototypes.
41913
41914 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
41915
41916         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
41917         Silvermont.
41918
41919 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
41920
41921         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
41922         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
41923         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
41924         for TARGET_SLOW_PSHUFB
41925
41926 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
41927
41928         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
41929         * config/i386/i386.c (intel_cost): Ditto.
41930
41931 2014-04-17  Joey Ye  <joey.ye@arm.com>
41932
41933         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
41934
41935 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
41936
41937         * opts.c (common_handle_option): Disable -fipa-reference coorectly
41938         with -fuse-profile.
41939
41940 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
41941
41942         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
41943         (type_all_derivations_known_p): New predicate.
41944         (type_all_ctors_visible_p): New predicate.
41945         (type_possibly_instantiated_p): New predicate.
41946         (get_odr_type): Compute all_derivations_known.
41947         (dump_odr_type): Dump the flag.
41948         (maybe_record_type): Cleanup.
41949         (record_target_from_binfo): Add bases_to_consider array;
41950         record bases for types w/o instances and skip CXX destructor.
41951         (possible_polymorphic_call_targets_1): Add bases_to_consider
41952         and consider_construction parameters; check if type may have instance.
41953         (get_polymorphic_call_info): Set maybe_in_construction to true
41954         when we know nothing.
41955         (record_targets_from_bases): Skip CXX destructors; they are
41956         never called for types in construction.
41957         (possible_polymorphic_call_targets): Do not record target when
41958         type may not have instance.
41959
41960 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
41961
41962         PR ipa/60854
41963         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
41964         external aliases alive, too.
41965
41966 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
41967
41968         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
41969         definition.
41970
41971 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
41972
41973         * final.c (compute_alignments): Do not apply loop alignment to a block
41974         falling through to the exit.
41975
41976 2014-04-16  Catherine Moore  <clm@codesourcery.com>
41977
41978         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
41979         Adjust constraints for microMIPS store patterns.
41980
41981 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
41982
41983         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
41984
41985 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
41986
41987         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
41988         (append_use): Run at -O0.
41989         (append_vdef): Likewise.
41990         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
41991         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
41992
41993 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
41994
41995         PR tree-optimization/60844
41996         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
41997         (propagate_op_to_single_use, remove_visited_stmt_chain,
41998         linearize_expr, repropagate_negates, reassociate_bb): Use it
41999         instead of gsi_remove.
42000
42001 2014-04-16  Martin Jambor  <mjambor@suse.cz>
42002
42003         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
42004         ipa_transforms_to_apply.
42005         (cgraph_function_versioning): Assert that old_node has empty
42006         ipa_transforms_to_apply.
42007         * trans-mem.c (ipa_tm_create_version): Likewise.
42008         * tree-inline.c (tree_function_versioning): Do not duplicate
42009         ipa_transforms_to_apply.
42010
42011 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
42012
42013         PR target/60817
42014         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
42015         x86_64-*-* cases.
42016         Pass necessary as flags on 64-bit Solaris/x86.
42017         Use lowercase relocs for x86_64-*-*.
42018         * configure: Regenerate.
42019
42020 2014-04-15  Jan Hubicka  <jh@suse.cz>
42021
42022         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
42023         (maybe_record_node, likely_target_p): Use it.
42024
42025 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42026
42027         PR target/60839
42028         Revert following patch
42029
42030         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
42031
42032         PR target/60735
42033         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
42034         software floating point or no floating point registers, do not
42035         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
42036         in GPRs that occurs after we tested for GPRs that would never be
42037         true.
42038
42039         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
42040         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
42041         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
42042         specifically allow DDmode, since that does not use the SPE SIMD
42043         instructions.
42044
42045 2014-03-21  Mark Wielaard  <mjw@redhat.com>
42046
42047         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
42048         as unsigned or int depending on type and value used.
42049
42050 2014-04-15  Richard Biener  <rguenther@suse.de>
42051
42052         PR rtl-optimization/56965
42053         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
42054         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
42055         ... here.
42056         * alias.c (true_dependence_1): Do not call
42057         nonoverlapping_component_refs_p.
42058         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
42059         nonoverlapping_component_refs_p.
42060         (indirect_refs_may_alias_p): Likewise.
42061
42062 2014-04-15  Teresa Johnson  <tejohnson@google.com>
42063
42064         * cfg.c (dump_bb_info): Fix flags check.
42065         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
42066
42067 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42068
42069         PR rtl-optimization/60663
42070         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
42071         avoid 0 cost.
42072
42073 2014-04-15  Richard Biener  <rguenther@suse.de>
42074
42075         * lto-streamer.h (LTO_major_version): Bump to 4.
42076
42077 2014-04-15  Richard Biener  <rguenther@suse.de>
42078
42079         * common.opt (lto_partition_model): New enum.
42080         (flto-partition=): Merge separate options with a single with argument,
42081         add -flto-partition=one support.
42082         * flag-types.h (enum lto_partition_model): Declare.
42083         * opts.c (finish_options): Remove duplicate -flto-partition=
42084         option check.
42085         * lto-wrapper.c (run_gcc): Adjust.
42086
42087 2014-04-15  Richard Biener  <rguenther@suse.de>
42088
42089         * alias.c (ncr_compar): New function.
42090         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
42091
42092 2014-04-15  Richard Biener  <rguenther@suse.de>
42093
42094         * alias.c (record_component_aliases): Do not walk BINFOs.
42095
42096 2014-04-15  Richard Biener  <rguenther@suse.de>
42097
42098         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
42099         Add struct function argument and adjust.
42100         (find_func_aliases_for_call): Likewise.
42101         (find_func_aliases): Likewise.
42102         (find_func_clobbers): Likewise.
42103         (intra_create_variable_infos): Likewise.
42104         (compute_points_to_sets): Likewise.
42105         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
42106
42107 2014-04-15  Richard Biener  <rguenther@suse.de>
42108
42109         * tree.c (iterative_hash_expr): Use enum tree_code_class
42110         to store TREE_CODE_CLASS.
42111         (tree_block): Likewise.
42112         (tree_set_block): Likewise.
42113         * tree.h (fold_build_pointer_plus_loc): Use
42114         convert_to_ptrofftype_loc.
42115
42116 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
42117
42118         PR plugins/59335
42119         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
42120         added in 4.9.
42121
42122 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
42123
42124         * cfgloop.h (struct loop): Move force_vectorize down.
42125         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
42126         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
42127         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
42128         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
42129         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
42130         * tree-core.h (enum annot_expr_kind): Add new kind values.
42131         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
42132         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
42133         kinds.
42134         * tree.def (ANNOTATE_EXPR): Tweak comment.
42135
42136 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
42137
42138         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
42139         cxa_pure_virtual).
42140
42141 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
42142
42143         * tree.h (TYPE_IDENTIFIER): Declare.
42144         * tree.c (subrange_type_for_debug_p): Use it.
42145         * godump.c (go_format_type): Likewise.
42146         * dwarf2out.c (is_cxx_auto, modified_type_die,
42147         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
42148         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
42149
42150 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
42151
42152         PR lto/60820
42153         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
42154
42155 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
42156
42157         * config/i386/i386.c (examine_argument): Return bool.  Return true if
42158         parameter should be passed in memory.
42159         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
42160         (construct_container): Update calls to examine_argument.
42161         (function_arg_advance_64): Ditto.
42162         (return_in_memory_32): Merge with ix86_return_in_memory.
42163         (return_in_memory_64): Ditto.
42164         (return_in_memory_ms_64): Ditto.
42165
42166 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
42167
42168         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
42169         * coverage.c (coverage_compute_profile_id): Handle externally visible
42170         symbols.
42171
42172 2014-04-14  Martin Jambor  <mjambor@suse.cz>
42173
42174         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
42175         DECL_DISREGARD_INLINE_LIMITS functions.
42176
42177 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
42178
42179         PR target/60827
42180         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
42181
42182 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
42183
42184         PR target/60827
42185         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
42186         optimize_insn_for_speed_p instead of
42187         optimize_function_for_speed_p.
42188
42189 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
42190
42191         * doc/invoke.texi (free): Document AArch64.
42192
42193 2014-04-14  Richard Biener  <rguenther@suse.de>
42194
42195         PR tree-optimization/60042
42196         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
42197         (insert_into_preds_of_block): Do not prevent PHI insertion
42198         for REFERENCE exprs here ...
42199         (eliminate_dom_walker::before_dom_children): ... but prevent
42200         their use here under similar conditions when applied to the
42201         IL after PRE optimizations.
42202
42203 2014-04-14  Richard Biener  <rguenther@suse.de>
42204
42205         * passes.def: Move early points-to after early SRA.
42206
42207 2014-04-14  Richard Biener  <rguenther@suse.de>
42208
42209         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
42210         check for which sign-changes we allow when forwarding
42211         a converted value into a switch.
42212
42213 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
42214
42215         * stor-layout.c (place_field): Finalize non-constant offset for the
42216         field, if any.
42217
42218 2014-04-14  Richard Biener  <rguenther@suse.de>
42219
42220         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
42221         as argument.
42222         (expand_switch_using_bit_tests_p): Likewise.
42223         (process_switch): Compute and pass on speed_p based on the
42224         switch stmt.
42225         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
42226         optimize_bb_for_speed_p.
42227
42228 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
42229
42230         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
42231         * function.h (struct function): Rename has_force_vect_loops into
42232         has_force_vectorize_loops.
42233         * lto-streamer-in.c (input_cfg): Adjust for renaming.
42234         (input_struct_function_base): Likewise.
42235         * lto-streamer-out.c (output_cfg): Likewise.
42236         (output_struct_function_base): Likewise.
42237         * omp-low.c (expand_omp_simd): Likewise.
42238         * tree-cfg.c (move_sese_region_to_fn): Likewise.
42239         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
42240         (version_loop_for_if_conversion): Likewise.
42241         (tree_if_conversion): Likewise.
42242         (main_tree_if_conversion): Likewise.
42243         (gate_tree_if_conversion): Likewise.
42244         * tree-inline.c (copy_loops): Likewise.
42245         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
42246         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
42247         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
42248         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
42249         * tree-vectorizer.c (vectorize_loops): Likewise.
42250         * tree-vectorizer.h (unlimited_cost_model): Likewise.
42251
42252 2014-04-14  Richard Biener  <rguenther@suse.de>
42253
42254         PR lto/60720
42255         * lto-streamer-out.c (wrap_refs): New function.
42256         (lto_output): Wrap symbol references in global initializes in
42257         type-preserving MEM_REFs.
42258
42259 2014-04-14  Christian Bruel  <christian.bruel@st.com>
42260
42261         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
42262
42263 2014-04-14  Christian Bruel  <christian.bruel@st.com>
42264
42265         * config/sh/sh.md (setmemqi): New expand pattern.
42266         * config/sh/sh.h (CLEAR_RATIO): Define.
42267         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
42268         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
42269
42270 2014-04-14  Richard Biener  <rguenther@suse.de>
42271
42272         PR middle-end/55022
42273         * fold-const.c (negate_expr_p): Don't negate directional rounding
42274         division.
42275         (fold_negate_expr): Likewise.
42276
42277 2014-04-14  Richard Biener  <rguenther@suse.de>
42278
42279         PR tree-optimization/59817
42280         PR tree-optimization/60453
42281         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
42282         recursion to catch all CHRECs in the scalar evolution and restrict
42283         the predicate for the remains appropriately.
42284
42285 2014-04-12  Catherine Moore  <clm@codesourcery.com>
42286
42287         * config/mips/constraints.md: Add new register constraint "kb".
42288         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
42289         (*movhi_internal): Likewise.
42290         (*movqi_internal): Likewise.
42291         * config/mips/mips.h (M16_STORE_REGS): New register class.
42292         (REG_CLASS_NAMES): Add M16_STORE_REGS.
42293         (REG_CLASS_CONTENTS): Likewise.
42294         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
42295
42296 2014-04-11  Tobias Burnus  <burnus@net-b.de>
42297
42298         PR c/60194
42299         * doc/invoke.texi (-Wformat-signedness): Document it.
42300         (Wformat=2): Mention that this enables -Wformat-signedness.
42301
42302 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42303
42304         * common/config/epiphany/epiphany-common.c
42305         (epiphany_option_optimization_table): Enable section anchors by
42306         default at -O1 or higher.
42307         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
42308         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
42309         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
42310         carries no extra cost.
42311         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
42312         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
42313         * config/epiphany/predicates.md (memclob_operand): New predicate.
42314         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
42315         Use memclob_operand predicate and X constraint for operand 3.
42316
42317 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42318
42319         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
42320         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
42321         its operands.
42322
42323 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42324
42325         PR rtl-optimization/60651
42326         * mode-switching.c (optimize_mode_switching): Make sure to emit
42327         sets of a lower numbered entity before sets of a higher numbered
42328         entity to a mode of the same or lower priority.
42329         When creating a seginfo for a basic block that starts with a code
42330         label, move the insertion point past the code label.
42331         (new_seginfo): Document and enforce requirement that
42332         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
42333         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
42334         * doc/tm.texi: Regenerate.
42335
42336 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42337
42338         PR target/60811
42339         * config/arc/arc.c (arc_save_restore): Fix assert typo.
42340
42341 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
42342
42343         * BASE-VER: Set to 4.10.0.
42344
42345 2014-04-11  Tobias Burnus  <burnus@net-b.de>
42346
42347         PR other/59055
42348         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
42349         * doc/gcc.texi (Service): Update description in the @menu
42350         * doc/invoke.texi (Option Summary): Remove misplaced and
42351         duplicated @menu.
42352
42353 2014-04-11  Steve Ellcey  <sellcey@mips.com>
42354             Jakub Jelinek  <jakub@redhat.com>
42355
42356         PR middle-end/60556
42357         * expr.c (convert_move): Use emit_store_flag_force instead of
42358         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
42359         argument to it.
42360
42361 2014-04-11  Richard Biener  <rguenther@suse.de>
42362
42363         PR middle-end/60797
42364         * varasm.c (assemble_alias): Avoid endless error reporting
42365         recursion by setting TREE_ASM_WRITTEN.
42366
42367 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
42368
42369         * config/s390/s390.md: Add a splitter for NOT rtx.
42370
42371 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
42372
42373         PR rtl-optimization/60663
42374         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
42375
42376 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
42377             Jakub Jelinek  <jakub@redhat.com>
42378
42379         PR lto/60567
42380         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
42381         flag from decl_node to node.
42382
42383 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
42384
42385         PR debug/60655
42386         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
42387         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
42388         ameliorating the cases where it can be.
42389
42390 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
42391
42392         Revert
42393         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
42394
42395         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
42396         (loadsync_<mode>): Change mode.
42397         (load_quadpti, store_quadpti): New.
42398         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
42399         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
42400         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
42401
42402 2014-04-09  Cong Hou  <congh@google.com>
42403
42404         PR testsuite/60773
42405         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
42406         documentation.
42407
42408 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42409
42410         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
42411         instead of vnor to exploit possible fusion opportunity in the
42412         future.
42413         (altivec_expand_vec_perm_const_le): Likewise.
42414
42415 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
42416
42417         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
42418         (loadsync_<mode>): Change mode.
42419         (load_quadpti, store_quadpti): New.
42420         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
42421         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
42422
42423 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
42424
42425         PR target/60763
42426         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
42427         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
42428         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
42429
42430 2014-04-08  Richard Biener  <rguenther@suse.de>
42431
42432         PR middle-end/60706
42433         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
42434         a 64bit widest int print double-int similar to on HWI64 hosts.
42435
42436 2014-04-08  Richard Biener  <rguenther@suse.de>
42437
42438         PR tree-optimization/60785
42439         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
42440         default defs properly.
42441
42442 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
42443
42444         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
42445         (Weffc++): Likewise.
42446
42447 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
42448
42449         * ipa-devirt.c (maybe_record_node): When node is not recorded,
42450         set completep to false rather than true.
42451
42452 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
42453
42454         PR target/60504
42455         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
42456         ARM_TARGET2_DWARF_FORMAT.
42457
42458 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
42459
42460         PR target/60609
42461         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
42462         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
42463         ADDR_DIFF_VEC.
42464
42465 2014-04-07  Richard Biener  <rguenther@suse.de>
42466
42467         PR tree-optimization/60766
42468         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
42469         (may_eliminate_iv): Convert cand_value_at result to desired type.
42470
42471 2014-04-07  Jason Merrill  <jason@redhat.com>
42472
42473         PR c++/60731
42474         * common.opt (-fno-gnu-unique): Add.
42475         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
42476
42477 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42478
42479         * haifa-sched.c: Fix outdated function reference and minor
42480         grammar errors in introductory comment.
42481
42482 2014-04-07  Richard Biener  <rguenther@suse.de>
42483
42484         PR middle-end/60750
42485         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
42486         for noreturn calls.
42487         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
42488
42489 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
42490
42491         PR debug/55794
42492         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
42493         size accounting for thunks.
42494         (pa_asm_output_mi_thunk): Use final_start_function() and
42495         final_end_function() to output function start and end directives.
42496
42497 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
42498
42499         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
42500         device specific ISA/ feature information. Remove short_sp and
42501         errata_skip ds.  Add avr_device_specific_features enum to have device
42502         specific info.
42503         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
42504         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
42505         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
42506         updated device specific info.
42507         * config/avr/avr-mcus.def: Merge device specific details to
42508         dev_attribute field.
42509         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
42510         errata_skip.
42511         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
42512         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
42513         assembler if RMW isa supported by current device.
42514         * config/avr/genmultilib.awk: Update as device info structure changed.
42515         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
42516
42517 2014-04-04  Cong Hou  <congh@google.com>
42518
42519         PR tree-optimization/60656
42520         * tree-vect-stmts.c (supportable_widening_operation):
42521         Fix a bug that elements in a vector with vect_used_by_reduction
42522         property are incorrectly reordered when the operation on it is not
42523         consistant with the one in reduction operation.
42524
42525 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
42526
42527         PR rtl-optimization/60155
42528         * gcse.c (record_set_data): New function.
42529         (single_set_gcse): New function.
42530         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
42531         (hoist_code): Likewise.
42532         (get_pressure_class_and_nregs): Likewise.
42533
42534 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
42535
42536         * explow.c (probe_stack_range): Emit a final optimization blockage.
42537
42538 2014-04-04  Anthony Green  <green@moxielogic.com>
42539
42540         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
42541         typos.
42542
42543 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
42544
42545         PR ipa/59626
42546         * lto-cgraph.c (input_overwrite_node): Check that partitioning
42547         flags are set only during streaming.
42548         * ipa.c (process_references, walk_polymorphic_call_targets,
42549         symtab_remove_unreachable_nodes): Drop bodies of always inline
42550         after early inlining.
42551         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
42552
42553 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
42554         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
42555
42556         PR debug/60655
42557         * dwarf2out.c (const_ok_for_output_1): Reject expressions
42558         containing a NOT.
42559
42560 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42561
42562         PR bootstrap/60743
42563         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
42564         duration.
42565         (cortex_a53_fdivd): Likewise.
42566
42567 2014-04-04  Martin Jambor  <mjambor@suse.cz>
42568
42569         PR ipa/60640
42570         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
42571         Adjust all callers.
42572         * cgraph.c (clone_of_p): Also return true if thunks match.
42573         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
42574         cgraph_function_or_thunk_node and an obsolete comment.
42575         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
42576         file.
42577         (build_function_decl_skip_args): Likewise.
42578         (set_new_clone_decl_and_node_flags): New function.
42579         (duplicate_thunk_for_node): Likewise.
42580         (redirect_edge_duplicating_thunks): Likewise.
42581         (cgraph_clone_node): New parameter args_to_skip, pass it to
42582         redirect_edge_duplicating_thunks which is called instead of
42583         cgraph_redirect_edge_callee.
42584         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
42585         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
42586
42587 2014-04-04  Jeff Law  <law@redhat.com>
42588
42589         PR target/60657
42590         * config/arm/predicates.md (const_int_I_operand): New predicate.
42591         (const_int_M_operand): Similarly.
42592         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
42593         const_int_operand.
42594         (insv_t2, extv_reg, extzv_t2): Likewise.
42595         (load_multiple_with_writeback): Similarly for const_int_I_operand.
42596         (pop_multiple_with_writeback_and_return): Likewise.
42597         (vfp_pop_multiple_with_writeback): Likewise
42598
42599 2014-04-04  Richard Biener  <rguenther@suse.de>
42600
42601         PR ipa/60746
42602         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
42603         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
42604         non-GIMPLE_LABELs.
42605         * gimplify.h (gimple_add_tmp_var_fn): Declare.
42606         * gimplify.c (gimple_add_tmp_var_fn): New function.
42607         * gimple-expr.h (create_tmp_reg_fn): Declare.
42608         * gimple-expr.c (create_tmp_reg_fn): New function.
42609         * gimple-low.c (record_vars_into): Don't change cfun.
42610         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
42611         code generation without cfun.
42612
42613 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
42614
42615         PR bootstrap/60719
42616         * Makefile.in (install-driver): Fix shell scripting.
42617
42618 2014-04-03  Cong Hou  <congh@google.com>
42619
42620         PR tree-optimization/60505
42621         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
42622         threshold of number of iterations below which no vectorization
42623         will be done.
42624         * tree-vect-loop.c (new_loop_vec_info):
42625         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
42626         * tree-vect-loop.c (vect_analyze_loop_operations):
42627         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
42628         * tree-vect-loop.c (vect_transform_loop):
42629         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
42630         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
42631         of iterations of the loop and see if we should build the epilogue.
42632
42633 2014-04-03  Richard Biener  <rguenther@suse.de>
42634
42635         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
42636         (streamer_tree_cache_create): Adjust.
42637         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
42638         to allow optional nodes array.
42639         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
42640         (streamer_tree_cache_append): Likewise.
42641         (streamer_tree_cache_create): Create nodes array optionally
42642         as specified by parameter.
42643         * lto-streamer-out.c (create_output_block): Avoid maintaining
42644         the node array in the writer cache.
42645         (DFS_write_tree): Remove assertion.
42646         (produce_asm_for_decls): Free the out decl state hash table early.
42647         * lto-streamer-in.c (lto_data_in_create): Adjust for
42648         streamer_tree_cache_create prototype change.
42649
42650 2014-04-03  Richard Biener  <rguenther@suse.de>
42651
42652         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
42653         set TREE_CHAIN to NULL_TREE.
42654
42655 2014-04-03  Richard Biener  <rguenther@suse.de>
42656
42657         PR tree-optimization/60740
42658         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
42659         over all GIMPLE_COND operands.
42660
42661 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
42662
42663         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
42664         (Weffc++): Remove Scott's numbering, merge lists and reference
42665         Wnon-virtual-dtor.
42666
42667 2014-04-03  Nick Clifton  <nickc@redhat.com>
42668
42669         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
42670         properly.
42671
42672 2014-04-03  Martin Jambor  <mjambor@suse.cz>
42673
42674         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
42675         mention gcc_unreachable before failing.
42676         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
42677         removed symbols.
42678
42679 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
42680
42681         PR ipa/60659
42682         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
42683         inconsistent code and instead mark the context inconsistent.
42684         (possible_polymorphic_call_targets): For inconsistent contexts
42685         return empty complete list.
42686
42687 2014-04-02  Anthony Green  <green@moxielogic.com>
42688
42689         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
42690         (extendqisi2, extendhisi2): Define.
42691         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
42692         (WCHAR_TYPE): Change to unsigned int.
42693
42694 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42695
42696         PR tree-optimization/60733
42697         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
42698         insertion point for PHI candidates to be the end of the feeding
42699         block for the PHI argument.
42700
42701 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
42702
42703         PR rtl-optimization/60650
42704         * lra-constraints.c (process_alt_operands): Decrease reject for
42705         earlyclobber matching.
42706
42707 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
42708
42709         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
42710
42711 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
42712
42713         * config/spu/spu.c (pad_bb): Do not crash when the last
42714         insn is CODE_FOR_blockage.
42715
42716 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
42717
42718         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
42719         lies outside the target mode.
42720
42721 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
42722
42723         PR target/60735
42724         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
42725         software floating point or no floating point registers, do not
42726         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
42727         in GPRs that occurs after we tested for GPRs that would never be
42728         true.
42729
42730         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
42731         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
42732         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
42733         specifically allow DDmode, since that does not use the SPE SIMD
42734         instructions.
42735
42736 2014-04-02  Richard Biener  <rguenther@suse.de>
42737
42738         PR middle-end/60729
42739         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
42740         MODE_INTs.  Properly use negv_optab.
42741         (expand_abs): Likewise.
42742
42743 2014-04-02  Richard Biener  <rguenther@suse.de>
42744
42745         PR bootstrap/60719
42746         * Makefile.in (install-driver): Guard extra installs with special
42747         names properly.
42748
42749 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
42750
42751         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42752         Document vec_vgbbd.
42753
42754 2014-04-01  Richard Henderson  <rth@redhat.com>
42755
42756         PR target/60704
42757         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
42758         alternative enabled before register allocation.
42759
42760 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
42761
42762         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
42763         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
42764         typo.
42765         (nios2_large_got_address): Remove unneeded 'sym' parameter.
42766         (nios2_got_address): Update nios2_large_got_address call site.
42767         (nios2_delegitimize_address): New function.
42768         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
42769         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
42770         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
42771
42772 2014-04-01  Martin Husemann  <martin@duskware.de>
42773
42774         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
42775         for -mabi=32.
42776
42777 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
42778
42779         PR rtl-optimization/60604
42780         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
42781         check from register_operand.
42782         (register_operand): Redefine in terms of general_operand.
42783         (nonmemory_operand): Use register_operand for the non-constant cases.
42784
42785 2014-04-01  Richard Biener  <rguenther@suse.de>
42786
42787         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
42788
42789 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
42790
42791         * doc/invoke.texi (mapp-regs): Clarify.
42792
42793 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
42794
42795         * config/i386/avx512fintrin.h (__v32hi): Define type.
42796         (__v64qi): Likewise.
42797         (_mm512_set1_epi8): Define.
42798         (_mm512_set1_epi16): Define.
42799         (_mm512_set4_epi32): Define.
42800         (_mm512_set4_epi64): Define.
42801         (_mm512_set4_pd): Define.
42802         (_mm512_set4_ps): Define.
42803         (_mm512_setr4_epi64): Define.
42804         (_mm512_setr4_epi32): Define.
42805         (_mm512_setr4_pd): Define.
42806         (_mm512_setr4_ps): Define.
42807         (_mm512_setzero_epi32): Define.
42808
42809 2014-03-31  Martin Jambor  <mjambor@suse.cz>
42810
42811         PR middle-end/60647
42812         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
42813         callsite_arguments_match_p.  Updated all callers.  Also check types of
42814         corresponding formal parameters and actual arguments.
42815         (not_all_callers_have_enough_arguments_p) Renamed to
42816         some_callers_have_mismatched_arguments_p.
42817
42818 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
42819
42820         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
42821
42822 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
42823
42824         PR target/60034
42825         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
42826         section anchor.
42827
42828 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
42829
42830         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
42831         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
42832         Split out
42833         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
42834         Use FMAMODE_NOVF512 mode iterator.
42835         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
42836         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
42837         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
42838         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
42839         Split out
42840         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
42841         Use VF_128_256 mode iterator.
42842         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
42843         Ditto.
42844
42845 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
42846
42847         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
42848         static chain if needed.
42849
42850 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
42851
42852         PR target/60697
42853         * lra-constraints.c (index_part_to_reg): New.
42854         (process_address): Use it.
42855
42856 2014-03-27  Jeff Law  <law@redhat.com>
42857             Jakub Jelinek  <jakub@redhat.com>
42858
42859         PR target/60648
42860         * expr.c (do_tablejump): Use simplify_gen_binary rather than
42861         gen_rtx_{PLUS,MULT} to build up the address expression.
42862
42863         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
42864         creating non-canonical RTL.
42865
42866 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
42867
42868         PR ipa/60243
42869         * ipa-inline.c (want_inline_small_function_p): Short circuit large
42870         functions; reorganize to make cheap checks first.
42871         (inline_small_functions): Do not estimate growth when dumping;
42872         it is expensive.
42873         * ipa-inline.h (inline_summary): Add min_size.
42874         (growth_likely_positive): New function.
42875         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
42876         (set_cond_stmt_execution_predicate): Cleanup.
42877         (estimate_edge_size_and_time): Compute min_size.
42878         (estimate_calls_size_and_time): Likewise.
42879         (estimate_node_size_and_time): Likewise.
42880         (inline_update_overall_summary): Update min_size.
42881         (do_estimate_edge_time): Likewise.
42882         (do_estimate_edge_size): Update.
42883         (do_estimate_edge_hints): Update.
42884         (growth_likely_positive): New function.
42885
42886 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
42887
42888         PR target/60693
42889         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
42890         also if addr has VOIDmode.
42891
42892 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42893
42894         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
42895         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
42896         Declare extern.
42897         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
42898         instructions as well as AdvancedSIMD loads.
42899
42900 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42901
42902         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
42903         Use crypto_aese type.
42904         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
42905         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
42906         crypto_aese, crypto_aesmc.  Move to types.md.
42907         * config/arm/types.md (crypto_aes): Split into crypto_aese,
42908         crypto_aesmc.
42909         * config/arm/iterators.md (crypto_type): Likewise.
42910
42911 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
42912
42913         * cgraph.c: Include expr.h and tree-dfa.h.
42914         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
42915         remove LHS.
42916
42917 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
42918
42919         PR target/60675
42920         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
42921         regs from checking multi-reg pseudos.
42922
42923 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
42924
42925         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
42926
42927 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
42928
42929         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
42930         if it would clobber the stack pointer, even temporarily.
42931
42932 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
42933
42934         * mode-switching.c: Make small adjustments to the top comment.
42935
42936 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
42937
42938         * config/rs6000/constraints.md (wD constraint): New constraint to
42939         match the constant integer to get the top DImode/DFmode out of a
42940         vector in a VSX register.
42941
42942         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
42943         match the constant integer to get the top DImode/DFmode out of a
42944         vector in a VSX register.
42945
42946         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
42947         for ISA 2.07.
42948
42949         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
42950         vbpermq builtins.
42951
42952         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
42953         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
42954
42955         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
42956         Optimize vec_extract of 64-bit values, where the value being
42957         extracted is in the top word, where we can use scalar
42958         instructions.  Add direct move and store support.  Combine the big
42959         endian/little endian vector select load support into a single insn.
42960         (vsx_extract_<mode>_internal1): Likewise.
42961         (vsx_extract_<mode>_internal2): Likewise.
42962         (vsx_extract_<mode>_load): Likewise.
42963         (vsx_extract_<mode>_store): Likewise.
42964         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
42965         combined into vsx_extract_<mode>_load.
42966         (vsx_extract_<mode>_one_le): Likewise.
42967
42968         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
42969         define the top 64-bit vector element.
42970
42971         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
42972         constraint.
42973
42974         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42975         Document vec_vbpermq builtin.
42976
42977         PR target/60672
42978         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
42979         enable use of xxsldwi and xxpermdi builtin functions.
42980         (vec_xxpermdi): Likewise.
42981
42982         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42983         Document use of vec_xxsldwi and vec_xxpermdi builtins.
42984
42985 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
42986
42987         PR rtl-optimization/60650
42988         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
42989         first_p.  Use it.
42990         (find_spills_for): New.
42991         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
42992         Spill all pseudos on the second iteration.
42993
42994 2014-03-27  Marek Polacek  <polacek@redhat.com>
42995
42996         PR c/50347
42997         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
42998         types.
42999
43000 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
43001
43002         * config/s390/s390.c (s390_can_use_return_insn): Check for
43003         call-saved FPRs on 31 bit.
43004
43005 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
43006
43007         PR middle-end/60682
43008         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
43009         if they need regimplification, just drop them instead of
43010         calling gimple_regimplify_operands on them.
43011
43012 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
43013
43014         PR target/60580
43015         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
43016         (aarch64_frame_pointer_required): Adjust logic.
43017         (aarch64_can_eliminate): Adjust logic.
43018         (aarch64_override_options_after_change): Adjust logic.
43019
43020 2014-03-27  Dehao Chen  <dehao@google.com>
43021
43022         * ipa-inline.c (early_inliner): Update node's inline info.
43023
43024 2014-03-26  Dehao Chen  <dehao@google.com>
43025
43026         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
43027         compiler inserted conditional jumps for NAN float check.
43028
43029 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
43030
43031         * ubsan.h (ubsan_create_data): Change second argument's type
43032         to const location_t *.
43033         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
43034         _("<unknown>").
43035         (ubsan_create_data): Change second argument to const location_t *PLOC.
43036         Create Loc field whenever PLOC is non-NULL.
43037         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
43038         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
43039         callers.
43040
43041         PR other/59545
43042         * real.c (real_to_integer2): Change type of low to UHWI.
43043
43044 2014-03-26  Tobias Burnus  <burnus@net-b.de>
43045
43046         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
43047         (CILK_SELF_SPECS): New define.
43048         (driver_self_specs): Use it.
43049
43050 2014-03-26  Richard Biener  <rguenther@suse.de>
43051
43052         * tree-pretty-print.c (percent_K_format): Implement special
43053         case for LTO and its stripped down BLOCK tree.
43054
43055 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
43056
43057         PR sanitizer/60636
43058         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
43059
43060         * tree-vrp.c (simplify_internal_call_using_ranges): If only
43061         one range is range_int_cst_p, but not both, at least optimize
43062         addition/subtraction of 0 and multiplication by 0 or 1.
43063         * gimple-fold.c (gimple_fold_call): Fold
43064         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
43065         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
43066         INTEGER_CSTs, try to fold at least x * 0 and y - y.
43067
43068 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
43069
43070         PR rtl-optimization/60452
43071         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
43072         <case REG>: Return 1 for invalid offsets from the frame pointer.
43073
43074 2014-03-26  Marek Polacek  <polacek@redhat.com>
43075
43076         PR c/37428
43077         * doc/extend.texi (C Extensions): Mention variable-length arrays in
43078         a structure/union.
43079
43080 2014-03-26  Marek Polacek  <polacek@redhat.com>
43081
43082         PR c/39525
43083         * doc/extend.texi (Designated Inits): Describe what happens to omitted
43084         field members.
43085
43086 2014-03-26  Marek Polacek  <polacek@redhat.com>
43087
43088         PR other/59545
43089         * ira-color.c (update_conflict_hard_regno_costs): Perform the
43090         multiplication in unsigned type.
43091
43092 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
43093
43094         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
43095
43096 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
43097
43098         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
43099
43100 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
43101
43102         PR ipa/60315
43103         * cif-code.def (UNREACHABLE) New code.
43104         * ipa-inline.c (inline_small_functions): Skip edges to
43105         __builtlin_unreachable.
43106         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
43107         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
43108         predicate to __bulitin_unreachable.
43109         (set_cond_stmt_execution_predicate): Fix issue when
43110         invert_tree_comparison returns ERROR_MARK.
43111         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
43112         propagate to inline clones.
43113         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
43114         to unreachable.
43115         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
43116         * cgraphclones.c (cgraph_clone_node): If call destination is already
43117         ureachable, do not redirect it back.
43118         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
43119         unreachable.
43120
43121 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
43122
43123         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
43124         Do not modify inline clones.
43125
43126 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
43127
43128         * config/i386/i386.md (general_sext_operand): New mode attr.
43129         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
43130         don't generate (sign_extend (const_int)).
43131         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
43132         operands[2].  Use We constraint instead of <i> and
43133         <general_sext_operand> predicate instead of <general_operand>.
43134         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
43135         * config/i386/constraints.md (We): New constraint.
43136         * config/i386/predicates.md (x86_64_sext_operand,
43137         sext_operand): New predicates.
43138
43139 2014-03-25  Martin Jambor  <mjambor@suse.cz>
43140
43141         PR ipa/60600
43142         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
43143         inconsistent devirtualizations to __builtin_unreachable.
43144
43145 2014-03-25  Marek Polacek  <polacek@redhat.com>
43146
43147         PR c/35449
43148         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
43149
43150 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
43151
43152         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
43153         order of elements for big-endian.
43154
43155 2014-03-25  Richard Biener  <rguenther@suse.de>
43156
43157         PR middle-end/60635
43158         * gimplify-me.c (gimple_regimplify_operands): Update the
43159         re-gimplifed stmt.
43160
43161 2014-03-25  Martin Jambor  <mjambor@suse.cz>
43162
43163         PR ipa/59176
43164         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
43165         (lto_output_varpool_node): Likewise.
43166         (input_overwrite_node): Likewise.
43167         (input_varpool_node): Likewise.
43168
43169 2014-03-25  Richard Biener  <rguenther@suse.de>
43170
43171         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
43172         (run_gcc): Likewise.
43173
43174 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
43175
43176         * combine.c (simplify_compare_const): Add MODE argument.
43177         Handle mode_width 0 as very large mode_width.
43178         (try_combine, simplify_comparison): Adjust callers.
43179
43180         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
43181         type to avoid signed integer overflow.
43182         * explow.c (plus_constant): Likewise.
43183
43184 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
43185
43186         * doc/generic.texi: Correct typos.
43187
43188 2014-03-24  Tobias Burnus  <burnus@net-b.de>
43189
43190         * doc/invoke.texi (-flto): Expand section about
43191         using static libraries with LTO.
43192
43193 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
43194
43195         PR rtl-optimization/60501
43196         * optabs.def (addptr3_optab): New optab.
43197         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
43198         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
43199         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
43200
43201         * lra.c (emit_add3_insn): Use the addptr pattern if available.
43202
43203         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
43204
43205 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
43206
43207         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
43208         _mm512_set1_pd.
43209
43210         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
43211         (_mm256_undefined_ps): Define.
43212         (_mm256_undefined_pd): Define.
43213         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
43214         (_mm_undefined_pd): Define.
43215         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
43216         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
43217         (_mm512_undefined_ps): Define.
43218         (_mm512_undefined_pd): Define.
43219         Use _mm*_undefined_*.
43220         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
43221
43222 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
43223
43224         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
43225         (lshr_simd): DI mode added.
43226         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
43227         (aarch64_ushr_simddi): Likewise.
43228         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
43229         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
43230         (vshrd_n_u64): Likewise.
43231
43232 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
43233
43234         * Makefile.in (s-macro_list): Depend on cc1.
43235
43236 2014-03-23  Teresa Johnson  <tejohnson@google.com>
43237
43238         * ipa-utils.c (ipa_print_order): Use specified dump file.
43239
43240 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
43241
43242         PR rtl-optimization/60601
43243         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
43244
43245         * gcc.c (eval_spec_function): Initialize save_growing_value.
43246
43247 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
43248
43249         PR sanitizer/60613
43250         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
43251         code == MINUS_EXPR, never swap op0 with op1.
43252
43253         * toplev.c (init_local_tick): Avoid signed integer multiplication
43254         overflow.
43255         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
43256         shift by first operand's bitsize.
43257
43258 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
43259
43260         PR target/60610
43261         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
43262         redefine to 1 or 0.
43263         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
43264         TARGET_ISA_64BIT_P(x).
43265
43266 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43267
43268         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
43269         pattern for vector nor instead of subtract from splat(-1).
43270         (altivec_expand_vec_perm_const_le): Likewise.
43271
43272 2014-03-21  Richard Henderson  <rth@twiddle.net>
43273
43274         PR target/60598
43275         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
43276         related insns after epilogue_completed.
43277
43278 2014-03-21  Martin Jambor  <mjambor@suse.cz>
43279
43280         PR ipa/59176
43281         * cgraph.h (symtab_node): New flag body_removed.
43282         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
43283         when removing bodies.
43284         * symtab.c (dump_symtab_base): Dump body_removed flag.
43285         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
43286         had their bodies removed.
43287
43288 2014-03-21  Martin Jambor  <mjambor@suse.cz>
43289
43290         PR ipa/60419
43291         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
43292         in the border.
43293
43294 2014-03-21  Richard Biener  <rguenther@suse.de>
43295
43296         PR tree-optimization/60577
43297         * tree-core.h (struct tree_base): Document nothrow_flag use
43298         in DECL_NONALIASED.
43299         * tree.h (DECL_NONALIASED): New.
43300         (may_be_aliased): Adjust.
43301         * coverage.c (build_var): Set DECL_NONALIASED.
43302
43303 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43304
43305         * expr.c (expand_expr_real_1): Remove outdated comment.
43306
43307 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
43308
43309         PR middle-end/60597
43310         * ira.c (adjust_cleared_regs): Call copy_rtx on
43311         *reg_equiv[REGNO (loc)].src_p before passing it to
43312         simplify_replace_fn_rtx.
43313
43314         PR target/60568
43315         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
43316         into CONST, put pic register as first operand of PLUS.  Use
43317         gen_const_mem for both 32-bit and 64-bit PIC got loads.
43318
43319 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
43320
43321         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
43322
43323 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43324
43325         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
43326         around for store forwarding issue in the FPU on the UT699.
43327         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
43328         loads and operations if -mfix-ut699 is specified.
43329         (divtf3_hq): Tweak attribute.
43330         (sqrttf2_hq): Likewise.
43331
43332 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43333
43334         * calls.c (store_one_arg): Remove incorrect const qualification on the
43335         type of the temporary.
43336         * cfgexpand.c (expand_return): Likewise.
43337         * expr.c (expand_constructor): Likewise.
43338         (expand_expr_real_1): Likewise.
43339
43340 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
43341
43342         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
43343         of parts.
43344
43345 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
43346
43347         PR target/60039
43348         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
43349
43350 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
43351
43352         * config/arm/aarch-common-protos.h
43353         (alu_cost_table): Fix spelling of "extend".
43354         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
43355
43356 2014-03-19  Richard Biener  <rguenther@suse.de>
43357
43358         PR middle-end/60553
43359         * tree-core.h (tree_type_common): Re-order pointer members
43360         to reduce recursion depth during GC walks.
43361
43362 2014-03-19  Marek Polacek  <polacek@redhat.com>
43363
43364         PR sanitizer/60569
43365         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
43366         before accessing it.
43367
43368 2014-03-19  Richard Biener  <rguenther@suse.de>
43369
43370         PR lto/59543
43371         * lto-streamer-in.c (input_function): In WPA stage do not drop
43372         debug stmts.
43373
43374 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
43375
43376         PR tree-optimization/60559
43377         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
43378         with build_zero_cst assignment.
43379
43380 2014-03-18  Kai Tietz  <ktietz@redhat.com>
43381
43382         PR rtl-optimization/56356
43383         * sdbout.c (sdbout_parms): Verify that parms'
43384         incoming argument is valid.
43385         (sdbout_reg_parms): Likewise.
43386
43387 2014-03-18  Richard Henderson  <rth@redhat.com>
43388
43389         PR target/60562
43390         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
43391         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
43392         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
43393
43394 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
43395
43396         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
43397         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
43398         Italicize plugin event names in description.  Explain that
43399         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
43400         Remind that no GCC functions should be called after PLUGIN_FINISH.
43401         Explain what pragmas with expansion are.
43402
43403 2014-03-18  Martin Liska  <mliska@suse.cz>
43404
43405         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
43406         gimple call statement is update.
43407         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
43408         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
43409
43410 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
43411
43412         PR sanitizer/60557
43413         * ubsan.c (ubsan_instrument_unreachable): Call
43414         initialize_sanitizer_builtins.
43415         (ubsan_pass): Likewise.
43416
43417         PR sanitizer/60535
43418         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
43419         varpool_finalize_decl instead of rest_of_decl_compilation.
43420
43421 2014-03-18  Richard Biener  <rguenther@suse.de>
43422
43423         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
43424         by using bitmap_and_compl instead of bitmap_and_compl_into.
43425         (df_rd_transfer_function): Likewise.
43426
43427 2014-03-18  Richard Biener  <rguenther@suse.de>
43428
43429         * doc/lto.texi (fresolution): Fix typo.
43430
43431 2014-03-18  Richard Biener  <rguenther@suse.de>
43432
43433         * doc/invoke.texi (flto): Update for changes in 4.9.
43434
43435 2014-03-18  Richard Biener  <rguenther@suse.de>
43436
43437         * doc/loop.texi: Remove section on the removed lambda framework.
43438         Update loop docs with recent changes in preserving loop structure.
43439
43440 2014-03-18  Richard Biener  <rguenther@suse.de>
43441
43442         * doc/lto.texi (-fresolution): Document.
43443
43444 2014-03-18  Richard Biener  <rguenther@suse.de>
43445
43446         * doc/contrib.texi: Adjust my name.
43447
43448 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
43449
43450         PR ipa/58721
43451         * internal-fn.c: Include diagnostic-core.h.
43452         (expand_BUILTIN_EXPECT): New function.
43453         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
43454         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
43455         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
43456         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
43457         IFN_BUILTIN_EXPECT.
43458         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
43459         Revert 3 argument __builtin_expect code.
43460         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
43461         * gimple-fold.c (gimple_fold_call): Likewise.
43462         * tree.h (fold_builtin_expect): New prototype.
43463         * builtins.c (build_builtin_expect_predicate): Add predictor
43464         argument, if non-NULL, create 3 argument __builtin_expect.
43465         (fold_builtin_expect): No longer static.  Add ARG2 argument,
43466         pass it through to build_builtin_expect_predicate.
43467         (fold_builtin_2): Adjust caller.
43468         (fold_builtin_3): Handle BUILT_IN_EXPECT.
43469         * internal-fn.def (BUILTIN_EXPECT): New.
43470
43471 2014-03-18  Tobias Burnus  <burnus@net-b.de>
43472
43473         PR ipa/58721
43474         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
43475         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
43476         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
43477
43478 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
43479
43480         PR ipa/58721
43481         * predict.c (combine_predictions_for_bb): Fix up formatting.
43482         (expr_expected_value_1, expr_expected_value): Add predictor argument,
43483         fill what it points to if non-NULL.
43484         (tree_predict_by_opcode): Adjust caller, use the predictor.
43485         * predict.def (PRED_COMPARE_AND_SWAP): Add.
43486
43487 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
43488
43489         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
43490         proper constant for the store mode.
43491
43492 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
43493
43494         * symtab.c (change_decl_assembler_name): Fix transparent alias
43495         chain construction.
43496
43497 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
43498
43499         * config/aarch64/aarch64.c: Correct the comments about the
43500         aarch64 stack layout.
43501
43502 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
43503
43504         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
43505         check for GF_OMP_FOR_KIND_FOR.
43506
43507 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
43508
43509         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
43510         ymm and zmm register names.
43511
43512 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
43513
43514         PR target/60516
43515         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
43516         note creation for the 2010-08-31 changes.
43517
43518 2014-03-17  Marek Polacek  <polacek@redhat.com>
43519
43520         PR middle-end/60534
43521         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
43522         as -fno-tree-loop-vectorize.
43523         (expand_omp_simd): Likewise.
43524
43525 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
43526
43527         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
43528         (eligible_for_call_delay): New prototype.
43529         * config/sparc/sparc.c (tls_call_delay): Rename into...
43530         (eligible_for_call_delay): ...this.  Return false if the instruction
43531         cannot be put in the delay slot of a branch.
43532         (eligible_for_restore_insn): Simplify.
43533         (eligible_for_return_delay): Return false if the instruction cannot be
43534         put in the delay slot of a branch and simplify.
43535         (eligible_for_sibcall_delay): Return false if the instruction cannot be
43536         put in the delay slot of a branch.
43537         * config/sparc/sparc.md (fix_ut699): New attribute.
43538         (tls_call_delay): Delete.
43539         (in_call_delay): Reimplement.
43540         (eligible_for_sibcall_delay): Rename into...
43541         (in_sibcall_delay): ...this.
43542         (eligible_for_return_delay): Rename into...
43543         (in_return_delay): ...this.
43544         (in_branch_delay): Reimplement.
43545         (in_uncond_branch_delay): Delete.
43546         (in_annul_branch_delay): Delete.
43547
43548 2014-03-14  Richard Henderson  <rth@redhat.com>
43549
43550         PR target/60525
43551         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
43552         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
43553         (*floathi<X87MODEF>2_i387_with_temp): Remove.
43554         (floathi splitters): Remove.
43555         (float<SWI48x>xf2): New pattern.
43556         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
43557         code that tried to handle DImode for 32-bit, but which was excluded
43558         by the pattern's condition.  Drop allocation of stack temporary.
43559         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
43560         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
43561         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
43562         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
43563         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
43564         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
43565         (*float<SWI48><MODEF>2_sse_interunit): Remove.
43566         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
43567         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
43568         (*float<SWI48x><X87MODEF>2_i387): Remove.
43569         (all float _with_temp splitters): Remove.
43570         (*float<SWI48x><MODEF>2_i387): New pattern.
43571         (*float<SWI48><MODEF>2_sse): New pattern.
43572         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
43573         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
43574
43575 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
43576             Marek Polacek  <polacek@redhat.com>
43577
43578         PR middle-end/60484
43579         * common.opt (dump_base_name_prefixed): New Variable.
43580         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
43581         if x_dump_base_name_prefixed is already set, set it at the end.
43582
43583 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
43584
43585         PR rtl-optimization/60508
43586         * lra-constraints.c (get_reload_reg): Add new parameter
43587         in_subreg_p.
43588         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
43589         Pass the new parameter values.
43590
43591 2014-03-14  Richard Biener  <rguenther@suse.de>
43592
43593         * common.opt: Revert unintented changes from r205065.
43594         * opts.c: Likewise.
43595
43596 2014-03-14  Richard Biener  <rguenther@suse.de>
43597
43598         PR middle-end/60518
43599         * cfghooks.c (split_block): Properly adjust all loops the
43600         block was a latch of.
43601
43602 2014-03-14  Martin Jambor  <mjambor@suse.cz>
43603
43604         PR lto/60461
43605         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
43606         and simplify it.
43607
43608 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
43609
43610         PR target/59396
43611         * config/avr/avr.c (avr_set_current_function): Pass function name
43612         through default_strip_name_encoding before sanity checking instead
43613         of skipping the first char of the assembler name.
43614
43615 2014-03-13  Richard Henderson  <rth@redhat.com>
43616
43617         PR debug/60438
43618         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
43619         (ix86_force_to_memory, ix86_free_from_memory): Remove.
43620         * config/i386/i386-protos.h: Likewise.
43621         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
43622         in the expander instead of a splitter.
43623         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
43624         any possibility of requiring a memory.
43625         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
43626         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
43627         (fp branch splitters): Update for ix86_split_fp_branch.
43628         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
43629         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
43630         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
43631         (*fop_<MODEF>_2_i387): Remove f/r alternative.
43632         (*fop_<MODEF>_3_i387): Likewise.
43633         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
43634         (splitters for the fop_* register patterns): Remove.
43635         (fscalexf4_i387): Rename from *fscalexf4_i387.
43636         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
43637
43638 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
43639
43640         PR tree-optimization/59779
43641         * tree-dfa.c (get_ref_base_and_extent): Use double_int
43642         type for bitsize and maxsize instead of HOST_WIDE_INT.
43643
43644 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
43645
43646         PR rtl-optimization/57320
43647         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
43648         the CFG after thread_prologue_and_epilogue_insns.
43649
43650 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
43651
43652         PR rtl-optimization/57189
43653         * lra-constraints.c (process_alt_operands): Disfavor spilling
43654         vector pseudos.
43655
43656 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
43657
43658         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
43659
43660 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
43661
43662         PR tree-optimization/59025
43663         PR middle-end/60418
43664         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
43665         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
43666
43667 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
43668
43669         PR target/60486
43670         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
43671         calls of avr_out_plus_1.
43672
43673 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
43674
43675         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
43676         BB's single pred and update the father loop's latch info later.
43677
43678 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
43679
43680         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
43681         (VEC_M): Likewise.
43682         (VEC_N): Likewise.
43683         (VEC_R): Likewise.
43684         (VEC_base): Likewise.
43685         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
43686         registers, we need to swap double words in little endian mode.
43687
43688         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
43689         to be a container mode for 128-bit integer operations added in ISA
43690         2.07.  Unlike TImode and PTImode, the preferred register set is
43691         the Altivec/VMX registers for the 128-bit operations.
43692
43693         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
43694         declarations.
43695         (rs6000_split_128bit_ok_p): Likewise.
43696
43697         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
43698         macros for creating ISA 2.07 normal and overloaded builtin
43699         functions with 3 arguments.
43700         (BU_P8V_OVERLOAD_3): Likewise.
43701         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
43702         for use as overloaded functions.
43703         (VPERM_1TI_UNS): Likewise.
43704         (VSEL_1TI): Likewise.
43705         (VSEL_1TI_UNS): Likewise.
43706         (ST_INTERNAL_1ti): Likewise.
43707         (LD_INTERNAL_1ti): Likewise.
43708         (XXSEL_1TI): Likewise.
43709         (XXSEL_1TI_UNS): Likewise.
43710         (VPERM_1TI): Likewise.
43711         (VPERM_1TI_UNS): Likewise.
43712         (XXPERMDI_1TI): Likewise.
43713         (SET_1TI): Likewise.
43714         (LXVD2X_V1TI): Likewise.
43715         (STXVD2X_V1TI): Likewise.
43716         (VEC_INIT_V1TI): Likewise.
43717         (VEC_SET_V1TI): Likewise.
43718         (VEC_EXT_V1TI): Likewise.
43719         (EQV_V1TI): Likewise.
43720         (NAND_V1TI): Likewise.
43721         (ORC_V1TI): Likewise.
43722         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
43723         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
43724         overloaded builtin.
43725         (VADDUQM): Likewise.
43726         (VSUBCUQ): Likewise.
43727         (VADDEUQM): Likewise.
43728         (VADDECUQ): Likewise.
43729         (VSUBEUQM): Likewise.
43730         (VSUBECUQ): Likewise.
43731
43732         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
43733         __int128_t and __uint128_t types.
43734         (__uint128_type): Likewise.
43735         (altivec_categorize_keyword): Add support for vector __int128_t,
43736         vector __uint128_t, vector __int128, and vector unsigned __int128
43737         as a container type for TImode operations that need to be done in
43738         VSX/Altivec registers.
43739         (rs6000_macro_to_expand): Likewise.
43740         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
43741         to support 128-bit integer instructions vaddcuq, vadduqm,
43742         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
43743         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
43744
43745         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
43746         for V1TImode, and set up preferences to use VSX/Altivec registers.
43747         Setup VSX reload handlers.
43748         (rs6000_debug_reg_global): Likewise.
43749         (rs6000_init_hard_regno_mode_ok): Likewise.
43750         (rs6000_preferred_simd_mode): Likewise.
43751         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
43752         (easy_altivec_constant): Likewise.
43753         (output_vec_const_move): Likewise.
43754         (rs6000_expand_vector_set): Convert V1TImode set and extract to
43755         simple move.
43756         (rs6000_expand_vector_extract): Likewise.
43757         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
43758         addressing.
43759         (rs6000_const_vec): Add support for V1TImode.
43760         (rs6000_emit_le_vsx_load): Swap double words when loading or
43761         storing TImode/V1TImode.
43762         (rs6000_emit_le_vsx_store): Likewise.
43763         (rs6000_emit_le_vsx_move): Likewise.
43764         (rs6000_emit_move): Add support for V1TImode.
43765         (altivec_expand_ld_builtin): Likewise.
43766         (altivec_expand_st_builtin): Likewise.
43767         (altivec_expand_vec_init_builtin): Likewise.
43768         (altivec_expand_builtin): Likewise.
43769         (rs6000_init_builtins): Add support for V1TImode type.  Add
43770         support for ISA 2.07 128-bit integer builtins.  Define type names
43771         for the VSX/Altivec vector types.
43772         (altivec_init_builtins): Add support for overloaded vector
43773         functions with V1TImode type.
43774         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
43775         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
43776         external function.
43777         (rs6000_split_128bit_ok_p): Likewise.
43778         (rs6000_handle_altivec_attribute): Create V1TImode from vector
43779         __int128_t and vector __uint128_t.
43780
43781         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
43782         and mode attributes.
43783         (VSX_M): Likewise.
43784         (VSX_M2): Likewise.
43785         (VSm): Likewise.
43786         (VSs): Likewise.
43787         (VSr): Likewise.
43788         (VSv): Likewise.
43789         (VS_scalar): Likewise.
43790         (VS_double): Likewise.
43791         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
43792
43793         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
43794         we support the ISA 2.07 128-bit integer arithmetic instructions.
43795         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
43796         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
43797         and TImode types for use with the builtin functions.
43798         (V1TI_type_node): Likewise.
43799         (unsigned_V1TI_type_node): Likewise.
43800         (intTI_type_internal_node): Likewise.
43801         (uintTI_type_internal_node): Likewise.
43802
43803         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
43804         128-bit builtin functions.
43805         (UNSPEC_VADDEUQM): Likewise.
43806         (UNSPEC_VADDECUQ): Likewise.
43807         (UNSPEC_VSUBCUQ): Likewise.
43808         (UNSPEC_VSUBEUQM): Likewise.
43809         (UNSPEC_VSUBECUQ): Likewise.
43810         (VM): Add V1TImode to vector mode iterators.
43811         (VM2): Likewise.
43812         (VI_unit): Likewise.
43813         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
43814         (altivec_vaddcuq): Likewise.
43815         (altivec_vsubuqm): Likewise.
43816         (altivec_vsubcuq): Likewise.
43817         (altivec_vaddeuqm): Likewise.
43818         (altivec_vaddecuq): Likewise.
43819         (altivec_vsubeuqm): Likewise.
43820         (altivec_vsubecuq): Likewise.
43821
43822         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
43823         mode iterators.
43824         (BOOL_128): Likewise.
43825         (BOOL_REGS_OUTPUT): Likewise.
43826         (BOOL_REGS_OP1): Likewise.
43827         (BOOL_REGS_OP2): Likewise.
43828         (BOOL_REGS_UNARY): Likewise.
43829         (BOOL_REGS_AND_CR0): Likewise.
43830
43831         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
43832         128-bit integer builtin support.
43833         (vec_vadduqm): Likewise.
43834         (vec_vaddecuq): Likewise.
43835         (vec_vaddeuqm): Likewise.
43836         (vec_vsubecuq): Likewise.
43837         (vec_vsubeuqm): Likewise.
43838         (vec_vsubcuq): Likewise.
43839         (vec_vsubuqm): Likewise.
43840
43841         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
43842         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
43843         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
43844         128-bit integer add/subtract to ISA 2.07.
43845
43846 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
43847
43848         * config/arc/arc.c (arc_predicate_delay_insns):
43849         Fix third argument passed to conditionalize_nonjump.
43850
43851 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
43852
43853         * config/aarch64/aarch64-builtins.c
43854         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
43855         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
43856         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
43857         instead of __builtin_lfloor.
43858         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
43859
43860 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
43861
43862         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
43863         (tree_ssa_ifcombine_bb_1): New function.
43864         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
43865         is an empty forwarder block to then_bb or vice versa and then_bb
43866         and else_bb are effectively swapped.
43867
43868 2014-03-12  Christian Bruel  <christian.bruel@st.com>
43869
43870         PR target/60264
43871         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
43872         REG_CFA_DEF_CFA note.
43873         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
43874         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
43875
43876 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
43877
43878         PR tree-optimization/60454
43879         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
43880
43881 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43882
43883         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
43884         Do not define target_cpu_default2 to generic.
43885         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
43886         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
43887         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
43888
43889 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
43890             Marc Glisse  <marc.glisse@inria.fr>
43891
43892         PR tree-optimization/60502
43893         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
43894         instead of build_low_bits_mask.
43895
43896 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
43897
43898         PR middle-end/60482
43899         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
43900         if there are multiple uses, but op doesn't live on E edge.
43901         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
43902         clobber stmts before __builtin_unreachable.
43903
43904 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
43905
43906         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
43907         hard_frame_pointer_rtx.
43908         * cse.c (cse_insn): Remove volatile check.
43909         * cselib.c (cselib_process_insn): Likewise.
43910         * dse.c (scan_insn): Likewise.
43911
43912 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
43913
43914         * config/arc/arc.c (conditionalize_nonjump): New function,
43915         broken out of ...
43916         (arc_ifcvt): ... this.
43917         (arc_predicate_delay_insns): Use it.
43918
43919 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
43920
43921         * config/arc/predicates.md (extend_operand): During/after reload,
43922         allow const_int_operand.
43923         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
43924         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
43925         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
43926         to "i".
43927         (umulsi3_highpart_i): Likewise.
43928
43929 2014-03-11  Richard Biener  <rguenther@suse.de>
43930
43931         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
43932         Add asserts to guard possible wrong-code bugs.
43933
43934 2014-03-11  Richard Biener  <rguenther@suse.de>
43935
43936         PR tree-optimization/60429
43937         PR tree-optimization/60485
43938         * tree-ssa-structalias.c (set_union_with_increment): Properly
43939         take into account all fields that overlap the shifted vars.
43940         (do_sd_constraint): Likewise.
43941         (do_ds_constraint): Likewise.
43942         (get_constraint_for_ptr_offset): Likewise.
43943
43944 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
43945
43946         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
43947         (nios2_compute_frame_layout):
43948         Add calculation of cfun->machine->fp_save_offset.
43949         (nios2_expand_prologue): Correct setting of frame pointer register
43950         in prologue.
43951         (nios2_expand_epilogue): Update recovery of stack pointer from
43952         frame pointer accordingly.
43953         (nios2_initial_elimination_offset): Update calculation of offset
43954         for eliminating to HARD_FRAME_POINTER_REGNUM.
43955
43956 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
43957
43958         PR ipa/60457
43959         * ipa.c (symtab_remove_unreachable_nodes): Don't call
43960         cgraph_get_create_node on VAR_DECLs.
43961
43962 2014-03-10  Richard Biener  <rguenther@suse.de>
43963
43964         PR middle-end/60474
43965         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
43966
43967 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
43968
43969         * config/vms/vms.opt (vms_float_format): New variable.
43970
43971 2014-03-08  Tobias Burnus  <burnus@net-b.de>
43972
43973         * doc/invoke.texi (-fcilkplus): Update implementation status.
43974
43975 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
43976             Richard Biener  <rguenther@suse.de>
43977
43978         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
43979         consistently accross all TUs.
43980         (run_gcc): Enable -fshort-double automatically at link at link-time
43981         and disallow override.
43982
43983 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
43984
43985         PR target/58271
43986         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
43987         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
43988         if they can't be used.
43989
43990 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
43991
43992         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
43993         for Solaris 11/x86 ld.
43994         * configure: Regenerate.
43995
43996 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
43997
43998         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
43999         (LIB_TLS_SPEC): Save as ld_tls_libs.
44000         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
44001         (HAVE_AS_IX86_TLSLDM): New test.
44002         * configure, config.in: Regenerate.
44003         * config/i386/i386.c (legitimize_tls_address): Fall back to
44004         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
44005         cannot support TLS_MODEL_LOCAL_DYNAMIC.
44006         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
44007         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
44008
44009 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
44010
44011         * common.opt (fira-loop-pressure): Mark as optimization.
44012
44013 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
44014
44015         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
44016         an OpenMP mappable type.
44017
44018 2014-03-06  Matthias Klose  <doko@ubuntu.com>
44019
44020         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
44021         MULTILIB_OSDIRNAMES is not defined.
44022
44023 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
44024             Meador Inge  <meadori@codesourcery.com>
44025
44026         PR target/58595
44027         * config/arm/arm.c (arm_tls_symbol_p): Remove.
44028         (arm_legitimize_address): Call legitimize_tls_address for any
44029         arm_tls_referenced_p expression, handle constant addend.  Call it
44030         before testing for !TARGET_ARM.
44031         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
44032
44033 2014-03-06  Richard Biener  <rguenther@suse.de>
44034
44035         PR middle-end/60445
44036         PR lto/60424
44037         PR lto/60427
44038         Revert
44039         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
44040
44041         * tree-streamer.c (record_common_node): Assert we don't record
44042         nodes with type double.
44043         (preload_common_node): Skip type double, complex double and double
44044         pointer since it is now frontend dependent due to fshort-double option.
44045
44046 2014-03-06  Richard Biener  <rguenther@suse.de>
44047
44048         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
44049         or -fno-lto is specified and the linker has full plugin support.
44050         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
44051         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
44052         * lto-wrapper.c (merge_and_complain): Merge compile-time
44053         optimization levels.
44054         (run_gcc): And pass it through to the link options.
44055
44056 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
44057
44058         PR debug/60381
44059         Revert:
44060         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44061         PR debug/59992
44062         * cselib.c (remove_useless_values): Skip to avoid quadratic
44063         behavior if the condition moved from...
44064         (cselib_process_insn): ... here holds.
44065
44066 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
44067
44068         PR plugins/59335
44069         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
44070         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
44071
44072         PR plugins/59335
44073         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
44074         (TM_H): Add x86-tune.def.
44075
44076 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44077
44078         * config/aarch64/aarch64.c (generic_tunings):
44079         Use cortexa57_extra_costs.
44080
44081 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
44082
44083         PR lto/60404
44084         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
44085         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
44086         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
44087         cost for in_lto_p.
44088
44089 2014-03-04  Heiher  <r@hev.cc>
44090
44091         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
44092         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
44093
44094 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
44095
44096         * config/i386/predicates.md (const2356_operand): Change to ...
44097         (const2367_operand): ... this.
44098         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
44099         const2367_operand.
44100         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
44101         (*avx512pf_scatterpf<mode>sf): Ditto.
44102         (avx512pf_scatterpf<mode>df): Ditto.
44103         (*avx512pf_scatterpf<mode>df_mask): Ditto.
44104         (*avx512pf_scatterpf<mode>df): Ditto.
44105         * config/i386/i386.c (ix86_expand_builtin): Update
44106         incorrect hint operand error message.
44107
44108 2014-03-04  Richard Biener  <rguenther@suse.de>
44109
44110         * lto-section-in.c (lto_get_section_data): Fix const cast.
44111
44112 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
44113
44114         * tree-streamer.c (record_common_node): Assert we don't record
44115         nodes with type double.
44116         (preload_common_node): Skip type double, complex double and double
44117         pointer since it is now frontend dependent due to fshort-double option.
44118
44119 2014-03-04  Richard Biener  <rguenther@suse.de>
44120
44121         PR lto/60405
44122         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
44123         (lto_input_toplevel_asms): Likewise.
44124         * lto-section-in.c (lto_get_section_data): Instead do it here
44125         for every section.
44126
44127 2014-03-04  Richard Biener  <rguenther@suse.de>
44128
44129         PR tree-optimization/60382
44130         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
44131         dead PHIs a reduction.
44132
44133 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
44134
44135         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
44136         hint value.
44137         (_mm_prefetch): Move out of GCC target("sse") pragma.
44138         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
44139         GCC target("prfchw") pragma.
44140         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
44141         for locality <= 2.
44142         * config/i386/i386.c (ix86_option_override_internal): Enable
44143         -mprfchw with -mprefetchwt1.
44144
44145 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
44146
44147         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
44148         Mark as varying.
44149
44150 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
44151
44152         * opts.h (CL_PCH_IGNORE): Define.
44153         * targhooks.c (option_affects_pch_p):
44154         Return false for options that have CL_PCH_IGNORE set.
44155         * opt-functions.awk: Process PchIgnore.
44156         * doc/options.texi: Document PchIgnore.
44157
44158         * config/arc/arc.opt (misize): Add PchIgnore property.
44159
44160 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44161
44162         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
44163         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
44164         constraint on constants to permit them being loaded into
44165         GENERAL_REGS or BASE_REGS.
44166
44167 2014-03-03  Nick Clifton  <nickc@redhat.com>
44168
44169         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
44170         anti-cacnonical alternatives.
44171         (negandhi3_real): New pattern.
44172         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
44173
44174 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
44175
44176         * config/avr/avr-mcus.def: Remove atxmega16x1.
44177         * config/avr/avr-tables.opt: Regenerate.
44178         * config/avr/t-multilib: Regenerate.
44179         * doc/avr-mmcu.texi: Regenerate.
44180
44181 2014-03-03  Tobias Grosser  <tobias@grosser.es>
44182             Mircea Namolaru  <mircea.namolaru@inria.fr>
44183
44184         PR tree-optimization/58028
44185         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
44186         scalar dimensions.
44187
44188 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
44189
44190         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
44191         not handled by recognizers.
44192
44193 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
44194
44195         PR middle-end/60175
44196         * function.c (expand_function_end): Don't emit
44197         clobber_return_register sequence if clobber_after is a BARRIER.
44198         * cfgexpand.c (construct_exit_block): Append instructions before
44199         return_label to prev_bb.
44200
44201 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44202
44203         * config/rs6000/constraints.md: Document reserved use of "wc".
44204
44205 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
44206
44207         PR ipa/60150
44208         * ipa.c (function_and_variable_visibility): When dissolving comdat
44209         group, also set all symbols to local.
44210
44211 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
44212
44213         PR ipa/60306
44214
44215         Revert:
44216         2013-12-14  Jan Hubicka  <jh@suse.cz>
44217         PR middle-end/58477
44218         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
44219
44220 2014-03-02  Jon Beniston  <jon@beniston.com>
44221
44222         PR bootstrap/48230
44223         PR bootstrap/50927
44224         PR bootstrap/52466
44225         PR target/46898
44226         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
44227         (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
44228         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
44229         (simple_return, *simple_return): New patterns
44230         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
44231         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
44232
44233 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
44234
44235         * dwarf2out.c (gen_subprogram_die): Tidy.
44236
44237 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
44238
44239         PR target/60071
44240         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
44241         (*mov_t_msb_neg_negc): ... this new insn.
44242
44243 2014-02-28  Jason Merrill  <jason@redhat.com>
44244
44245         PR c++/58678
44246         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
44247         function.
44248
44249 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
44250
44251         PR c++/60314
44252         * dwarf2out.c (decltype_auto_die): New static.
44253         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
44254         (gen_type_die_with_usage): Handle 'decltype(auto)'.
44255         (is_cxx_auto): Likewise.
44256
44257 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
44258
44259         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
44260         we are not using general regs only.
44261
44262 2014-02-28  Richard Biener  <rguenther@suse.de>
44263
44264         PR target/60280
44265         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
44266         previous fix and only allow to remove trivial pre-headers
44267         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
44268         (remove_forwarder_block): Properly update the latch of a loop.
44269
44270 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44271
44272         PR debug/59992
44273         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
44274         (cselib_preserved_hash_table): New.
44275         (preserve_constants_and_equivs): Move preserved vals to it.
44276         (cselib_find_slot): Look it up first.
44277         (cselib_init): Initialize it.
44278         (cselib_finish): Release it.
44279         (dump_cselib_table): Dump it.
44280
44281 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44282
44283         PR debug/59992
44284         * cselib.c (remove_useless_values): Skip to avoid quadratic
44285         behavior if the condition moved from...
44286         (cselib_process_insn): ... here holds.
44287
44288 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44289
44290         PR debug/57232
44291         * var-tracking.c (vt_initialize): Apply the same condition to
44292         preserve the CFA base value.
44293
44294 2014-02-28  Joey Ye  <joey.ye@arm.com>
44295
44296         PR target/PR60169
44297         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
44298         if reload in progress or completed.
44299
44300 2014-02-28  Tobias Burnus  <burnus@net-b.de>
44301
44302         PR middle-end/60147
44303         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
44304         NAMELIST_DECL.
44305
44306 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
44307
44308         * doc/tm.texi.in (Condition Code Status): Update documention for
44309         relative locations of cc0-setter and cc0-user.
44310
44311 2014-02-27  Jeff Law  <law@redhat.com>
44312
44313         PR rtl-optimization/52714
44314         * combine.c (try_combine): When splitting an unrecognized PARALLEL
44315         into two independent simple sets, if I3 is a jump, ensure the
44316         pattern we place into I3 is a (set (pc) ...).
44317
44318 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
44319             Jeff Law  <law@redhat.com>
44320
44321         PR rtl-optimization/49847
44322         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
44323         are in different blocks.
44324         * doc/tm.texi (Condition Code Status): Update documention for
44325         relative locations of cc0-setter and cc0-user.
44326
44327 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
44328
44329         PR target/59222
44330         * lra.c (lra_emit_add): Check SUBREG too.
44331
44332 2014-02-27  Andreas Schwab  <schwab@suse.de>
44333
44334         * config/m68k/m68k.c (m68k_option_override): Disable
44335         -flive-range-shrinkage for classic m68k.
44336         (m68k_override_options_after_change): Likewise.
44337
44338 2014-02-27  Marek Polacek  <polacek@redhat.com>
44339
44340         PR middle-end/59223
44341         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
44342         -Wmaybe-uninitialized.
44343
44344 2014-02-27  Alan Modra  <amodra@gmail.com>
44345
44346         PR target/57936
44347         * reload1.c (emit_input_reload_insns): When reload_override_in,
44348         set old to rl->in_reg when rl->in_reg is a subreg.
44349
44350 2014-02-26  Richard Biener  <rguenther@suse.de>
44351
44352         PR bootstrap/60343
44353         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
44354
44355 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
44356
44357         * common/config/i386/predicates.md (const1256_operand): Remove.
44358         (const2356_operand): New.
44359         (const_1_to_2_operand): Remove.
44360         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
44361         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
44362         (*avx512pf_gatherpf<mode>sf): Ditto.
44363         (avx512pf_gatherpf<mode>df): Ditto.
44364         (*avx512pf_gatherpf<mode>df_mask): Ditto.
44365         (*avx512pf_gatherpf<mode>df): Ditto.
44366         (avx512pf_scatterpf<mode>sf): Ditto.
44367         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
44368         (*avx512pf_scatterpf<mode>sf): Ditto.
44369         (avx512pf_scatterpf<mode>df): Ditto.
44370         (*avx512pf_scatterpf<mode>df_mask): Ditto.
44371         (*avx512pf_scatterpf<mode>df): Ditto.
44372         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
44373
44374 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
44375
44376         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
44377         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
44378         (_mm512_mask_testn_epi64_mask): Move to ...
44379         * config/i386/avx512cdintrin.h: Here.
44380         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
44381         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
44382         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
44383         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
44384         TARGET_AVX512F from TARGET_AVX512CD.
44385
44386 2014-02-26  Richard Biener  <rguenther@suse.de>
44387
44388         PR ipa/60327
44389         * ipa.c (walk_polymorphic_call_targets): Properly guard
44390         call to inline_update_overall_summary.
44391
44392 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
44393
44394         PR target/60280
44395         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
44396         and latches only if requested.  Fix latch if it is removed.
44397         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
44398         LOOPS_HAVE_PREHEADERS.
44399
44400 2014-02-25  Andrew Pinski  <apinski@cavium.com>
44401
44402         * builtins.c (expand_builtin_thread_pointer): Create a new target
44403         when the target is NULL.
44404
44405 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
44406
44407         PR rtl-optimization/60317
44408         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
44409         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
44410         * lra-assigns.c: Include params.h.
44411         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
44412         other reload pseudos considerations.
44413
44414 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44415
44416         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
44417         to use canonical form for nor<mode>3.
44418
44419 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44420
44421         PR target/55426
44422         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
44423         conversions.
44424
44425 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
44426
44427         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
44428         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
44429         (ix86_handle_option): Handle OPT_mprefetchwt1.
44430         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
44431         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
44432         PREFETCHWT1 CPUID.
44433         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
44434         OPTION_MASK_ISA_PREFETCHWT1.
44435         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
44436         (PTA_PREFETCHWT1): New.
44437         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
44438         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
44439         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
44440         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
44441         (*prefetch_avx512pf_<mode>_: Change into ...
44442         (*prefetch_prefetchwt1_<mode>: This.
44443         * config/i386/i386.opt (mprefetchwt1): New.
44444         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
44445         (_mm_prefetch): Handle intent to write.
44446         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
44447
44448 2014-02-25  Richard Biener  <rguenther@suse.de>
44449
44450         PR middle-end/60291
44451         * emit-rtl.c (mem_attrs_htab): Remove.
44452         (mem_attrs_htab_hash): Likewise.
44453         (mem_attrs_htab_eq): Likewise.
44454         (set_mem_attrs): Always allocate new mem-attrs when something changed.
44455         (init_emit_once): Do not allocate mem_attrs_htab.
44456
44457 2014-02-25  Richard Biener  <rguenther@suse.de>
44458
44459         PR lto/60319
44460         * lto-opts.c (lto_write_options): Output non-explicit conservative
44461         -fwrapv, -fno-trapv and -fno-strict-overflow.
44462         * lto-wrapper.c (merge_and_complain): Handle merging those options.
44463         (run_gcc): And pass them through.
44464
44465 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
44466
44467         * sel-sched.c (calculate_new_fences): New parameter ptime.
44468         Calculate it as a maximum over all fence cycles.
44469         (sel_sched_region_2): Adjust the call to calculate_new_fences.
44470         Print the final schedule timing when sched_verbose.
44471
44472 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
44473
44474         PR rtl-optimization/60292
44475         * sel-sched.c (fill_vec_av_set): Do not reset target availability
44476         bit fot the fence instruction.
44477
44478 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
44479
44480         * calls.h: Fix typo in comment.
44481
44482 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
44483
44484         * config/pa/pa.c (pa_output_move_double): Don't valididate when
44485         adjusting offsetable addresses.
44486
44487 2014-02-24  Guozhi Wei  <carrot@google.com>
44488
44489         * sparseset.h (sparseset_pop): Fix the wrong index.
44490
44491 2014-02-24  Walter Lee  <walt@tilera.com>
44492
44493         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
44494         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
44495         triplet.
44496         * common/config/tilegx/tilegx-common.c
44497         (TARGET_DEFAULT_TARGET_FLAGS): Define.
44498         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
44499         (LINK_SPEC): Ditto.
44500         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
44501         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
44502         (tilegx_gimplify_va_arg_expr): Handle big endian.
44503         (tilegx_expand_unaligned_load): Ditto.
44504         (tilegx_expand_unaligned_store): Ditto.
44505         (TARGET_RETURN_IN_MSB): New.
44506         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
44507         (TARGET_ENDIAN_DEFAULT): New.
44508         (TARGET_BIG_ENDIAN): Handle big endian.
44509         (BYTES_BIG_ENDIAN): Ditto.
44510         (WORDS_BIG_ENDIAN): Ditto.
44511         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
44512         (ENDIAN_SPEC): New.
44513         (EXTRA_SPECS): New.
44514         * config/tilegx/tilegx.md (extv): Handle big endian.
44515         (extzv): Ditto.
44516         (insn_st<n>): Ditto.
44517         (insn_st<n>_add<bitsuffix>): Ditto.
44518         (insn_stnt<n>): Ditto.
44519         (insn_stnt<n>_add<bitsuffix>):Ditto.
44520         (vec_interleave_highv8qi): Handle big endian.
44521         (vec_interleave_highv8qi_be): New.
44522         (vec_interleave_highv8qi_le): New.
44523         (insn_v1int_h): Handle big endian.
44524         (vec_interleave_lowv8qi): Handle big endian.
44525         (vec_interleave_lowv8qi_be): New.
44526         (vec_interleave_lowv8qi_le): New.
44527         (insn_v1int_l): Handle big endian.
44528         (vec_interleave_highv4hi): Handle big endian.
44529         (vec_interleave_highv4hi_be): New.
44530         (vec_interleave_highv4hi_le): New.
44531         (insn_v2int_h): Handle big endian.
44532         (vec_interleave_lowv4hi): Handle big endian.
44533         (vec_interleave_lowv4hi_be): New.
44534         (vec_interleave_lowv4hi_le): New.
44535         (insn_v2int_l): Handle big endian.
44536         (vec_interleave_highv2si): Handle big endian.
44537         (vec_interleave_highv2si_be): New.
44538         (vec_interleave_highv2si_le): New.
44539         (insn_v4int_h): Handle big endian.
44540         (vec_interleave_lowv2si): Handle big endian.
44541         (vec_interleave_lowv2si_be): New.
44542         (vec_interleave_lowv2si_le): New.
44543         (insn_v4int_l): Handle big endian.
44544         * config/tilegx/tilegx.opt (mbig-endian): New option.
44545         (mlittle-endian): New option.
44546         * doc/install.texi: Document tilegxbe-linux.
44547         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
44548
44549 2014-02-24  Martin Jambor  <mjambor@suse.cz>
44550
44551         PR ipa/60266
44552         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
44553         there are no parameter descriptors.
44554
44555 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
44556
44557         PR rtl-optimization/60268
44558         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
44559         initialization to ...
44560         (sched_rgn_init): ... here.
44561         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
44562
44563 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
44564
44565         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
44566         names.
44567
44568 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
44569
44570         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
44571         definition.
44572
44573 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
44574
44575         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
44576         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
44577
44578 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
44579
44580         * config/microblaze/predicates.md: Add cmp_op predicate.
44581         * config/microblaze/microblaze.md: Add branch_compare instruction
44582         which uses cmp_op predicate and emits cmp insn before branch.
44583         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
44584         to microblaze_expand_conditional_branch and consolidate logic.
44585         (microblaze_expand_conditional_branch): emit branch_compare
44586         insn instead of handling cmp op separate from branch insn.
44587
44588 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44589
44590         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
44591         to permit subregs.
44592
44593 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44594
44595         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
44596         define_insn with define_expand and new define_insn
44597         *altivec_lve<VI_char>x_internal.
44598         (altivec_stve<VI_char>x): Replace define_insn with define_expand
44599         and new define_insn *altivec_stve<VI_char>x_internal.
44600         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
44601         prototype.
44602         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
44603         lve*x built-ins.
44604         (altivec_expand_stvex_be): New function.
44605
44606 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
44607
44608         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
44609         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
44610         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
44611         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
44612
44613 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
44614
44615         PR target/60298
44616         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
44617         instead of emit_move_insn.
44618
44619 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44620
44621         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
44622         vspltw with vsldoi.
44623         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
44624         gen_altivec_vsumsws.
44625
44626 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44627
44628         * config/rs6000/altivec.md (altivec_lvxl): Rename as
44629         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
44630         (altivec_lvxl_<mode>): New define_expand incorporating
44631         -maltivec=be semantics where needed.
44632         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
44633         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
44634         semantics where needed.
44635         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
44636         (altivec_stvx_<mode>): New define_expand incorporating
44637         -maltivec=be semantics where needed.
44638         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
44639         VM2 iterator instead of V4SI.
44640         (altivec_stvxl_<mode>): New define_expand incorporating
44641         -maltivec=be semantics where needed.
44642         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
44643         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
44644         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
44645         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
44646         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
44647         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
44648         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
44649         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
44650         ALTIVEC_BUILTIN_STVXL.
44651         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
44652         (altivec_expand_stvx_be): Likewise.
44653         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
44654         (altivec_expand_lvx_be): Likewise.
44655         (altivec_expand_stvx_be): Likewise.
44656         (altivec_expand_builtin): Add cases for
44657         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
44658         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
44659         (altivec_init_builtins): Add definitions for
44660         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
44661         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
44662
44663 2014-02-21  Catherine Moore  <clm@codesourcery.com>
44664
44665         * doc/invoke.texi (mvirt, mno-virt): Document.
44666         * config/mips/mips.opt (mvirt): New option.
44667         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
44668
44669 2014-02-21  Richard Biener  <rguenther@suse.de>
44670
44671         PR tree-optimization/60276
44672         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
44673         (STMT_VINFO_MIN_NEG_DIST): New macro.
44674         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
44675         STMT_VINFO_MIN_NEG_DIST.
44676         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
44677         made for negative dependence distances still hold.
44678
44679 2014-02-21  Richard Biener  <rguenther@suse.de>
44680
44681         PR middle-end/60291
44682         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
44683         DECL_INITIAL for globals not in the current function context.
44684
44685 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
44686
44687         PR tree-optimization/56490
44688         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
44689         * tree-ssa-uninit.c: Include params.h.
44690         (compute_control_dep_chain): Add num_calls argument, return false
44691         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
44692         num_calls to recursive call.
44693         (find_predicates): Change dep_chain into normal array,
44694         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
44695         variable and adjust compute_control_dep_chain caller.
44696         (find_def_preds): Likewise.
44697
44698 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
44699
44700         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
44701         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
44702
44703 2014-02-21  Nick Clifton  <nickc@redhat.com>
44704
44705         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
44706         (pushhi1): Likewise.
44707         (popqi1): Add mode to pre_dec.
44708         (pophi1): Likewise.
44709
44710 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
44711
44712         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
44713         mode for mask of V8SFmode permutation.
44714
44715 2014-02-20  Richard Henderson  <rth@redhat.com>
44716
44717         PR c++/60272
44718         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
44719         a new pseudo for OLDVAL.
44720
44721 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
44722
44723         PR target/57896
44724         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
44725         gen_reg_rtx if d->testing_p.
44726         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
44727         if d->testing_p and we will certainly return true.
44728         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
44729         if d->testing_p.
44730
44731 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
44732
44733         * emit-rtl.c (gen_reg_rtx): Assert that
44734         crtl->emit.regno_pointer_align_length is non-zero.
44735
44736 2014-02-20  Richard Henderson  <rth@redhat.com>
44737
44738         PR c++/60272
44739         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
44740         on failure the store back into EXPECT.
44741
44742 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
44743             Sandra Loosemore  <sandra@codesourcery.com>
44744
44745         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
44746         * config/nios2/nios2.c (nios2_function_profiler): Add
44747         -fPIC (flag_pic == 2) support.
44748         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
44749         (nios2_large_offset_p): New function.
44750         (nios2_unspec_reloc_p): Move up position, update to use
44751         nios2_large_offset_p.
44752         (nios2_unspec_address): Remove function.
44753         (nios2_unspec_offset): New function.
44754         (nios2_large_got_address): New function.
44755         (nios2_got_address): Add large offset support.
44756         (nios2_legitimize_tls_address): Update usage of removed and new
44757         functions.
44758         (nios2_symbol_binds_local_p): New function.
44759         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
44760         (nios2_legitimize_address): Update to use nios2_large_offset_p.
44761         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
44762         (nios2_print_operand): Merge H/L processing, add hiadj/lo
44763         processing for (const (unspec ...)).
44764         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
44765
44766 2014-02-20  Richard Biener  <rguenther@suse.de>
44767
44768         * tree-cfg.c (replace_uses_by): Mark altered BBs before
44769         doing the substitution.
44770         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
44771
44772 2014-02-20  Martin Jambor  <mjambor@suse.cz>
44773
44774         PR ipa/55260
44775         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
44776         info when checking whether lattices are bottom.
44777
44778 2014-02-20  Richard Biener  <rguenther@suse.de>
44779
44780         PR middle-end/60221
44781         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
44782         regions at -O0.
44783
44784 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
44785
44786         PR ipa/58555
44787         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
44788         parameter specifying the scaling.
44789         (inline_call): Update.
44790         (want_inline_recursively): Guard division by zero.
44791         (recursive_inlining): Update.
44792         * ipa-inline.h (clone_inlined_nodes): Update.
44793
44794 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
44795
44796         PR target/60204
44797         * config/i386/i386.c (classify_argument): Pass structures of size
44798         64 bytes or less in register.
44799
44800 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
44801             Kirill Yukhin  <kirill.yukhin@intel.com>
44802
44803         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
44804         (_mm_rcp28_round_ss): Ditto.
44805         (_mm_rsqrt28_round_sd): Ditto.
44806         (_mm_rsqrt28_round_ss): Ditto.
44807         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
44808         (_mm_rcp14_round_ss): Ditto.
44809         (_mm_rsqrt14_round_sd): Ditto.
44810         (_mm_rsqrt14_round_ss): Ditto.
44811         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
44812         the first input operand, get rid of match_dup.
44813         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
44814         attribute to sse.
44815         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
44816         Ditto.
44817         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
44818         operand as the first input operand, set type attribute.
44819         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
44820         Set type attribute.
44821         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
44822         operand as the first input operand, set type attribute.
44823
44824 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44825
44826         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
44827         bit of zero.
44828
44829 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
44830
44831         PR target/60207
44832         * config/i386/i386.c (construct_container): Remove TFmode check
44833         for X86_64_INTEGER_CLASS.
44834
44835 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
44836
44837         PR target/59794
44838         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
44839         only when -Wpsabi is enabled.
44840
44841 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
44842
44843         PR target/59799
44844         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
44845         passing arrays in registers are the same as for structs, so remove the
44846         special case for them.
44847
44848 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
44849
44850         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
44851         destination type, extract only the valid bits if the source type is not
44852         integral and has a different mode.
44853
44854 2014-02-19  Richard Biener  <rguenther@suse.de>
44855
44856         PR ipa/60243
44857         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
44858         for all calls.
44859
44860 2014-02-19  Richard Biener  <rguenther@suse.de>
44861
44862         PR ipa/60243
44863         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
44864         (ipa_modify_call_arguments): Emit an argument load explicitely and
44865         preserve virtual SSA form there and for the replacement call.
44866         Do not update SSA form nor free dominance info.
44867
44868 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
44869
44870         * ipa.c (function_and_variable_visibility): Also clear WEAK
44871         flag when disolving COMDAT_GROUP.
44872
44873 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
44874
44875         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
44876         * ipa-prop.c (ipa_set_jf_known_type): Return early when
44877         not devirtualizing.
44878         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
44879         do more sanity checks.
44880         (detect_type_change): Return true when giving up early.
44881         (compute_complex_assign_jump_func): Fix type parameter of
44882         ipa_set_ancestor_jf.
44883         (compute_complex_ancestor_jump_func): Likewise.
44884         (update_jump_functions_after_inlining): Fix updating of
44885         ancestor function.
44886         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
44887
44888 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
44889
44890         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
44891         inline clones when edge disappears.
44892
44893 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
44894
44895         PR target/60203
44896         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
44897         Split 64-bit moves into 2 patterns.  Do not allow the use of
44898         direct move for TDmode in little endian, since the decimal value
44899         has little endian bytes within a word, but the 64-bit pieces are
44900         ordered in a big endian fashion, and normal subreg's of TDmode are
44901         not allowed.
44902         (mov<mode>_64bit_dm): Likewise.
44903         (movtd_64bit_nodm): Likewise.
44904
44905 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
44906
44907         PR tree-optimization/60174
44908         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
44909         statement of an SSA_NAME that occurs in an abnormal PHI node.
44910
44911 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
44912
44913         PR sanitizer/60142
44914         * final.c (SEEN_BB): Remove.
44915         (SEEN_NOTE, SEEN_EMITTED): Renumber.
44916         (final_scan_insn): Don't force_source_line on second
44917         NOTE_INSN_BASIC_BLOCK.
44918
44919 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
44920
44921         PR target/60205
44922         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
44923         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
44924         (type_natural_mode): Warn ABI change when %zmm register is not
44925         available for AVX512F vector value passing.
44926
44927 2014-02-18  Kai Tietz  <ktietz@redhat.com>
44928
44929         PR target/60193
44930         * config/i386/i386.c (ix86_expand_prologue): Use value in
44931         rax register as displacement when restoring %r10 or %rax.
44932         Fix wrong offset when restoring both registers.
44933
44934 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
44935
44936         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
44937         assertion with conditional return.
44938
44939 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
44940             Uros Bizjak  <ubizjak@gmail.com>
44941
44942         PR driver/60233
44943         * config/i386/driver-i386.c (host_detect_local_cpu): If
44944         YMM state is not saved by the OS, also clear has_f16c.  Move
44945         CPUID 0x80000001 handling before YMM state saving checking.
44946
44947 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
44948
44949         PR rtl-optimization/58960
44950         * haifa-sched.c (alloc_global_sched_pressure_data): New,
44951         factored out from ...
44952         (sched_init): ... here.
44953         (free_global_sched_pressure_data): New, factored out from ...
44954         (sched_finish): ... here.
44955         * sched-int.h (free_global_sched_pressure_data): Declare.
44956         * sched-rgn.c (nr_regions_initial): New static global.
44957         (haifa_find_rgns): Initialize it.
44958         (schedule_region): Disable sched-pressure for the newly
44959         generated regions.
44960
44961 2014-02-17  Richard Biener  <rguenther@suse.de>
44962
44963         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
44964         release SSA defs of pattern stmts.
44965
44966 2014-02-17  Richard Biener  <rguenther@suse.de>
44967
44968         * tree-inline.c (expand_call_inline): Release the virtual
44969         operand defined by the call we are about to inline.
44970
44971 2014-02-17  Richard Biener  <rguenther@suse.de>
44972
44973         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
44974
44975 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
44976             Ilya Tocar  <ilya.tocar@intel.com>
44977
44978         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
44979         arguments order in builtin.
44980         (_mm512_permutexvar_epi64): Ditto.
44981         (_mm512_mask_permutexvar_epi64): Ditto
44982         (_mm512_maskz_permutexvar_epi32): Ditto
44983         (_mm512_permutexvar_epi32): Ditto
44984         (_mm512_mask_permutexvar_epi32): Ditto
44985
44986 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44987
44988         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
44989         (p8_vmrgow): Likewise.
44990
44991 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44992
44993         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
44994         endian targets.
44995
44996 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
44997
44998         PR target/60203
44999         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
45000         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
45001         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
45002         using direct move instructions on ISA 2.07.  Also adjust
45003         instruction length for 64-bit.
45004         (mov<mode>_64bit, TFmode/TDmode): Likewise.
45005         (mov<mode>_32bit, TFmode/TDmode): Likewise.
45006
45007 2014-02-15  Alan Modra  <amodra@gmail.com>
45008
45009         PR target/58675
45010         PR target/57935
45011         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
45012         find_replacement on parts of insn rtl that might be reloaded.
45013
45014 2014-02-15  Richard Biener  <rguenther@suse.de>
45015
45016         PR tree-optimization/60183
45017         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
45018         (tree_ssa_phiprop): Calculate and free post-dominators.
45019
45020 2014-02-14  Jeff Law  <law@redhat.com>
45021
45022         PR rtl-optimization/60131
45023         * ree.c (get_extended_src_reg): New function.
45024         (combine_reaching_defs): Use it rather than assuming location of REG.
45025         (find_and_remove_re): Verify first operand of extension is
45026         a REG before adding the insns to the copy list.
45027
45028 2014-02-14  Roland McGrath  <mcgrathr@google.com>
45029
45030         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
45031         * configure: Regenerated.
45032         * config.in: Regenerated.
45033         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
45034         instead of ASM_SHORT.
45035
45036 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
45037             Richard Earnshaw  <rearnsha@arm.com>
45038
45039         PR rtl-optimization/59535
45040         * lra-constraints.c (process_alt_operands): Encourage alternative
45041         when unassigned pseudo class is superset of the alternative class.
45042         (inherit_reload_reg): Don't inherit when optimizing for code size.
45043         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
45044         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
45045         modes not less than 4 for Thumb1.
45046
45047 2014-02-14  Kyle McMartin  <kyle@redhat.com>
45048
45049         PR pch/60010
45050         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
45051
45052 2014-02-14  Richard Biener  <rguenther@suse.de>
45053
45054         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
45055         (get_frame_arg): Drop the assert with langhook types_compatible_p.
45056         Do not strip INDIRECT_REFs.
45057
45058 2014-02-14  Richard Biener  <rguenther@suse.de>
45059
45060         PR lto/60179
45061         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
45062         DECL_FUNCTION_SPECIFIC_TARGET.
45063         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
45064         * tree-streamer-out.c (pack_ts_target_option): Remove.
45065         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
45066         (write_ts_function_decl_tree_pointers): Do not stream
45067         DECL_FUNCTION_SPECIFIC_TARGET.
45068         * tree-streamer-in.c (unpack_ts_target_option): Remove.
45069         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
45070         (lto_input_ts_function_decl_tree_pointers): Do not stream
45071         DECL_FUNCTION_SPECIFIC_TARGET.
45072
45073 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
45074
45075         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
45076         (get_initial_def_for_induction, vectorizable_induction): Ignore
45077         debug stmts when looking for exit_phi.
45078         (vectorizable_live_operation): Fix up condition.
45079
45080 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
45081
45082         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
45083         nreverse() because it changes the content of original tree list.
45084
45085 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
45086
45087         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
45088         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
45089
45090 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
45091
45092         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
45093         GNU coding standards.
45094
45095 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
45096
45097         PR debug/60152
45098         * dwarf2out.c (gen_subprogram_die): Don't call
45099         add_calling_convention_attribute if subr_die is old_die.
45100
45101 2014-02-13  Sharad Singhai  <singhai@google.com>
45102
45103         * doc/optinfo.texi: Fix order of nodes.
45104
45105 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
45106
45107         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
45108         operands[2], not operands[3].
45109
45110 2014-02-13  Richard Biener  <rguenther@suse.de>
45111
45112         PR bootstrap/59878
45113         * doc/install.texi (ISL): Update recommended version to 0.12.2,
45114         mention the possibility of an in-tree build.
45115         (CLooG): Update recommended version to 0.18.1, mention the
45116         possibility of an in-tree build and clarify that the ISL
45117         bundled with CLooG does not work.
45118
45119 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
45120
45121         PR target/43546
45122         * expr.c (compress_float_constant): If x is a hard register,
45123         extend into a pseudo and then move to x.
45124
45125 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
45126
45127         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
45128         caused by bad second argument to warning_at() with -mhotpatch and
45129         nested functions (e.g. with gfortran).
45130
45131 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
45132
45133         * opts.c (option_name): Remove "enabled by default" rider.
45134
45135 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
45136
45137         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
45138
45139 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
45140             Uros Bizjak  <ubizjak@gmail.com>
45141
45142         PR target/60151
45143         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
45144         * configure: Regenerated.
45145
45146 2014-02-12  Richard Biener  <rguenther@suse.de>
45147
45148         * vec.c (vec_prefix::calculate_allocation): Move as
45149         inline variant to vec.h.
45150         (vec_prefix::calculate_allocation_1): New out-of-line version.
45151         * vec.h (vec_prefix::calculate_allocation_1): Declare.
45152         (vec_prefix::m_has_auto_buf): Rename to ...
45153         (vec_prefix::m_using_auto_storage): ... this.
45154         (vec_prefix::calculate_allocation): Inline the easy cases
45155         and dispatch to calculate_allocation_1 which doesn't need the
45156         prefix address.
45157         (va_heap::reserve): Use gcc_checking_assert.
45158         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
45159         m_using_auto_storage.
45160         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
45161         member and adjust.
45162         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
45163         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
45164         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
45165
45166 2014-02-12  Richard Biener  <rguenther@suse.de>
45167
45168         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
45169         when we found a dependence.
45170
45171 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
45172
45173         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
45174         common code...
45175         (maybe_fold_stmt): ... into this new function.
45176         * omp-low.c (lower_omp): Update comment.
45177
45178         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
45179         last use.
45180
45181         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
45182         dereference.
45183
45184 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
45185
45186         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
45187         identifiers in comments.
45188         (cortexa53_extra_costs): Likewise.
45189         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
45190         (cortexa7_extra_costs): Likewise.
45191         (cortexa12_extra_costs): Likewise.
45192         (cortexa15_extra_costs): Likewise.
45193         (v7m_extra_costs): Likewise.
45194
45195 2014-02-12  Richard Biener  <rguenther@suse.de>
45196
45197         PR middle-end/60092
45198         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
45199         of posix_memalign being successful.
45200         (lower_stmt): Restrict lowering of posix_memalign to when
45201         -ftree-bit-ccp is enabled.
45202
45203 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
45204
45205         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
45206         arg_loc.
45207         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
45208
45209 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
45210
45211         PR rtl-optimization/60116
45212         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
45213         other_insn once the combination has been validated.
45214
45215 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
45216
45217         PR lto/59468
45218         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
45219         and wrapper.
45220         * ipa-devirt.c: Include demangle.h
45221         (odr_violation_reported): New static variable.
45222         (add_type_duplicate): Update odr_violations.
45223         (maybe_record_node): Add completep parameter; update it.
45224         (record_target_from_binfo): Add COMPLETEP parameter;
45225         update it as needed.
45226         (possible_polymorphic_call_targets_1): Likewise.
45227         (struct polymorphic_call_target_d): Add nonconstruction_targets;
45228         rename FINAL to COMPLETE.
45229         (record_targets_from_bases): Sanity check we found the binfo;
45230         fix COMPLETEP updating.
45231         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
45232         parameter, fix computing of COMPLETEP.
45233         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
45234         at LTO time do demangling.
45235         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
45236         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
45237         parameter.
45238         (gimple_get_virt_method_for_binfo): Likewise.
45239         * gimple-fold.h (gimple_get_virt_method_for_binfo,
45240         gimple_get_virt_method_for_vtable): Update prototypes.
45241
45242 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
45243
45244         PR target/49008
45245         * genautomata.c (add_presence_absence): Fix typo with
45246         {final_}presence_list.
45247
45248 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
45249
45250         PR target/60137
45251         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
45252         for VSX/Altivec vectors that land in GPR registers.
45253
45254 2014-02-11  Richard Henderson  <rth@redhat.com>
45255             Jakub Jelinek  <jakub@redhat.com>
45256
45257         PR debug/59776
45258         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
45259         around drhs if type conversion to lacc->type is not useless.
45260
45261 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45262
45263         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
45264         tuning struct.
45265         (cortex-a57.cortex-a53): Likewise.
45266         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
45267
45268 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45269
45270         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
45271         arm_restrict_it.
45272
45273 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
45274
45275         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
45276         add_options_for_arm_vfp3.
45277
45278 2014-02-11  Jeff Law  <law@redhat.com>
45279
45280         PR middle-end/54041
45281         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
45282         object with an undesirable mode.
45283
45284 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
45285
45286         PR libgomp/60107
45287         * config/i386/sol2-9.h: New file.
45288         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
45289         *-*-solaris2.9*): Use it.
45290
45291 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
45292
45293         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
45294         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
45295
45296 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
45297
45298         * config/microblaze/microblaze.c: Extend mcpu version format
45299
45300 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
45301
45302         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
45303
45304 2014-02-10  Richard Henderson  <rth@redhat.com>
45305
45306         PR target/59927
45307         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
45308         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
45309         ms-abi vs -mno-accumulate-outgoing-args.
45310         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
45311         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
45312         respect to ms-abi.
45313
45314 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
45315
45316         PR middle-end/60080
45317         * cfgexpand.c (expand_asm_operands): Attach source location to
45318         ASM_INPUT rtx objects.
45319         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
45320
45321 2014-02-10  Nick Clifton  <nickc@redhat.com>
45322
45323         * config/mn10300/mn10300.c (popcount): New function.
45324         (mn10300_expand_prologue): Include saved registers in stack usage
45325         count.
45326
45327 2014-02-10  Jeff Law  <law@redhat.com>
45328
45329         PR middle-end/52306
45330         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
45331         when changing the SET_DEST of a prior insn to avoid an input reload.
45332
45333 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
45334
45335         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
45336         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
45337         -mcall-openbsd, or -mcall-linux.
45338         (CC1_ENDIAN_BIG_SPEC): Remove.
45339         (CC1_ENDIAN_LITTLE_SPEC): Remove.
45340         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
45341         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
45342         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
45343         and %cc1_endian_default.
45344         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
45345
45346 2014-02-10  Richard Biener  <rguenther@suse.de>
45347
45348         PR tree-optimization/60115
45349         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
45350         MEM_REF handling.  Properly verify that the accesses are not
45351         out of the objects bound.
45352
45353 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45354
45355         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
45356         coretex to cortex.
45357
45358 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
45359
45360         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
45361         proper constants and fix formatting.
45362         (possible_polymorphic_call_targets): Fix formatting.
45363
45364 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
45365             Ilya Tocar  <ilya.tocar@intel.com>
45366
45367         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
45368         (_mm512_loadu_epi32): Renamed into...
45369         (_mm512_loadu_si512): This.
45370         (_mm512_storeu_epi32): Renamed into...
45371         (_mm512_storeu_si512): This.
45372         (_mm512_maskz_ceil_ps): Removed.
45373         (_mm512_maskz_ceil_pd): Ditto.
45374         (_mm512_maskz_floor_ps): Ditto.
45375         (_mm512_maskz_floor_pd): Ditto.
45376         (_mm512_floor_round_ps): Ditto.
45377         (_mm512_floor_round_pd): Ditto.
45378         (_mm512_ceil_round_ps): Ditto.
45379         (_mm512_ceil_round_pd): Ditto.
45380         (_mm512_mask_floor_round_ps): Ditto.
45381         (_mm512_mask_floor_round_pd): Ditto.
45382         (_mm512_mask_ceil_round_ps): Ditto.
45383         (_mm512_mask_ceil_round_pd): Ditto.
45384         (_mm512_maskz_floor_round_ps): Ditto.
45385         (_mm512_maskz_floor_round_pd): Ditto.
45386         (_mm512_maskz_ceil_round_ps): Ditto.
45387         (_mm512_maskz_ceil_round_pd): Ditto.
45388         (_mm512_expand_pd): Ditto.
45389         (_mm512_expand_ps): Ditto.
45390         * config/i386/i386.c (ix86_builtins): Remove
45391         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
45392         (bdesc_args): Ditto.
45393         * config/i386/predicates.md (const1256_operand): New.
45394         (const_1_to_2_operand): Ditto.
45395         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
45396         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
45397         (*avx512pf_gatherpf<mode>sf): Ditto.
45398         (avx512pf_gatherpf<mode>df): Ditto.
45399         (*avx512pf_gatherpf<mode>df_mask): Ditto.
45400         (*avx512pf_gatherpf<mode>df): Ditto.
45401         (avx512pf_scatterpf<mode>sf): Ditto.
45402         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
45403         (*avx512pf_scatterpf<mode>sf): Ditto.
45404         (avx512pf_scatterpf<mode>df): Ditto.
45405         (*avx512pf_scatterpf<mode>df_mask): Ditto.
45406         (*avx512pf_scatterpf<mode>df): Ditto.
45407         (avx512f_expand<mode>): Removed.
45408         (<shift_insn><mode>3<mask_name>): Change predicate type.
45409
45410 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
45411
45412         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
45413         not at the end of datarefs vector use ordered_remove to avoid
45414         reordering datarefs vector.
45415
45416         PR c/59984
45417         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
45418         mark local addressable non-static vars as GOVD_PRIVATE
45419         instead of GOVD_LOCAL.
45420         * omp-low.c (lower_omp_for): Move gimple_bind_vars
45421         and BLOCK_VARS of gimple_bind_block to new_stmt rather
45422         than copying them.
45423
45424         PR middle-end/60092
45425         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
45426         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
45427         assume_aligned or alloc_align attributes.
45428         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
45429         arguments.  Handle also assume_aligned and alloc_align attributes.
45430         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
45431         calls to functions with assume_aligned or alloc_align attributes.
45432         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
45433
45434 2014-02-08  Terry Guo  <terry.guo@arm.com>
45435
45436         * doc/invoke.texi: Document ARM -march=armv7e-m.
45437
45438 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
45439
45440         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
45441         flag on __cilkrts_rethrow builtin.
45442
45443         PR ipa/60026
45444         * ipa-cp.c (determine_versionability): Fail at -O0
45445         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
45446         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
45447
45448         Revert:
45449         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
45450
45451         PR ipa/60026
45452         * tree-inline.c (copy_forbidden): Fail for
45453         __attribute__((optimize (0))) functions.
45454
45455 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
45456
45457         * varpool.c: Include pointer-set.h.
45458         (varpool_remove_unreferenced_decls): Variables in other partitions
45459         will not be output; be however careful to not lose information
45460         about partitioning.
45461
45462 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
45463
45464         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
45465         lookup in the vtable constructor.
45466
45467 2014-02-07  Jeff Law  <law@redhat.com>
45468
45469         PR target/40977
45470         * config/m68k/m68k.md (ashldi_extsi): Turn into a
45471         define_insn_and_split.
45472
45473         * ipa-inline.c (inline_small_functions): Fix typos.
45474
45475 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45476
45477         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
45478         (s390_can_use_return_insn): Declare.
45479         * config/s390/s390.h (EPILOGUE_USES): Define.
45480         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
45481         instructions.
45482         (s390_chunkify_start): Handle return JUMP_LABELs.
45483         (s390_early_mach): Emit a main_pool instruction on the entry edge.
45484         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
45485         (s390_can_use_return_insn): New functions.
45486         (s390_fix_long_loop_prediction): Handle conditional returns.
45487         (TARGET_SET_UP_BY_PROLOGUE): Define.
45488         * config/s390/s390.md (ANY_RETURN): New code iterator.
45489         (*creturn, *csimple_return, return, simple_return): New patterns.
45490
45491 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45492
45493         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
45494         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
45495         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
45496         REG_CFA_RESTORE list when deciding not to restore a register.
45497
45498 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45499
45500         * config/s390/s390.c: Include tree-pass.h and context.h.
45501         (s390_early_mach): New function, split out from...
45502         (s390_emit_prologue): ...here.
45503         (pass_data_s390_early_mach): New pass structure.
45504         (pass_s390_early_mach): New class.
45505         (s390_option_override): Create and register early_mach pass.
45506         Move to end of file.
45507
45508 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45509
45510         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
45511         to match for the exit block.
45512
45513 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
45514
45515         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
45516         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
45517         Reject misaligned operands.
45518
45519 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
45520
45521         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
45522
45523 2014-02-07  Richard Biener  <rguenther@suse.de>
45524
45525         PR middle-end/60092
45526         * gimple-low.c (lower_builtin_posix_memalign): New function.
45527         (lower_stmt): Call it to lower posix_memalign in a way
45528         to make alignment info accessible.
45529
45530 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
45531
45532         PR c++/60082
45533         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
45534         __builtin_setjmp_receiver.
45535
45536 2014-02-07  Richard Biener  <rguenther@suse.de>
45537
45538         PR middle-end/60092
45539         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
45540         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
45541         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
45542         Handle BUILT_IN_POSIX_MEMALIGN.
45543         (find_func_clobbers): Likewise.
45544         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
45545         (call_may_clobber_ref_p_1): Likewise.
45546
45547 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45548
45549         PR ipa/59918
45550         * ipa-devirt.c (record_target_from_binfo): Remove overactive
45551         sanity check.
45552
45553 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45554
45555         PR ipa/59469
45556         * lto-cgraph.c (lto_output_node): Use
45557         symtab_get_symbol_partitioning_class.
45558         (lto_output_varpool_node): likewise.
45559         (symtab_get_symbol_partitioning_class): Move here from
45560         lto/lto-partition.c
45561         * cgraph.h (symbol_partitioning_class): Likewise.
45562         (symtab_get_symbol_partitioning_class): Declare.
45563
45564 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45565
45566         * ggc.h (ggc_internal_cleared_alloc): New macro.
45567         * vec.h (vec_safe_copy): Handle memory stats.
45568         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
45569         * target-globals.c (save_target_globals): Likewise.
45570
45571 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45572
45573         PR target/60077
45574         * expr.c (emit_move_resolve_push): Export; be bit more selective
45575         on when to clear alias set.
45576         * expr.h (emit_move_resolve_push): Declare.
45577         * function.h (struct function): Add tail_call_marked.
45578         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
45579         * config/i386/i386-protos.h (ix86_expand_push): Remove.
45580         * config/i386/i386.md (TImode move expander): De not call
45581         ix86_expand_push.
45582         (FP push expanders): Preserve memory attributes.
45583         * config/i386/sse.md (push<mode>1): Remove.
45584         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
45585         (ix86_expand_push): Remove.
45586         * config/i386/mmx.md (push<mode>1): Remove.
45587
45588 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
45589
45590         PR rtl-optimization/60030
45591         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
45592         lopart with paradoxical subreg before shifting it up by hprec.
45593
45594 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45595
45596         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
45597         Remove extra newline at end of file.
45598         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
45599         (arm_issue_rate): Handle cortexa57.
45600         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
45601         (cortex-a57.cortex-a53): Likewise.
45602
45603 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
45604
45605         PR target/59575
45606         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
45607         don't record in REG_FRAME_RELATED_EXPR registers not set in that
45608         bitmask.
45609         (arm_expand_prologue): Adjust all callers.
45610         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
45611         info, registers also at the lowest numbered registers side.  Use
45612         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
45613         XEXP.
45614
45615         PR debug/59992
45616         * var-tracking.c (adjust_mems): Before adding a SET to
45617         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
45618
45619 2014-02-06  Alan Modra  <amodra@gmail.com>
45620
45621         PR target/60032
45622         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
45623         change SDmode to DDmode when lra_in_progress.
45624
45625 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
45626
45627         PR middle-end/59150
45628         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
45629         free_data_ref on the dr first, and before goto again also set dr
45630         to the next dr.  For simd_lane_access, free old datarefs[i] before
45631         overwriting it.  For get_vectype_for_scalar_type failure, don't
45632         free_data_ref if simd_lane_access.
45633
45634         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
45635
45636         PR target/60062
45637         * tree.h (opts_for_fn): New inline function.
45638         (opt_for_fn): Define.
45639         * config/i386/i386.c (ix86_function_regparm): Use
45640         opt_for_fn (decl, optimize) instead of optimize.
45641
45642 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
45643
45644         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
45645         for SYMBOL_REF in large memory model.
45646
45647 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45648
45649         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
45650         and crypto support.
45651         (cortex-a57): Likewise.
45652         (cortex-a57.cortex-a53): Likewise.
45653
45654 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
45655             Kugan Vivekanandarajah  <kuganv@linaro.org>
45656
45657         * config/arm/arm.c (arm_vector_alignment_reachable): Check
45658         unaligned_access.
45659         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
45660
45661 2014-02-06  Richard Biener  <rguenther@suse.de>
45662
45663         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
45664         set_loop_copy and initialize_original_copy_tables.
45665
45666 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
45667
45668         * config/aarch64/aarch64-simd.md
45669         (aarch64_ashr_simddi): Change QI to SI.
45670
45671 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
45672             Jakub Jelinek  <jakub@redhat.com>
45673
45674         PR middle-end/60013
45675         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
45676         of the dataflow.
45677
45678 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45679
45680         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
45681         CODE_FOR_altivec_vpku[hw]um to
45682         CODE_FOR_altivec_vpku[hw]um_direct.
45683         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
45684         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
45685         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
45686         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
45687
45688 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45689
45690         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
45691         generation for -maltivec=be.
45692         (altivec_vsumsws): Simplify redundant test.
45693
45694 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45695
45696         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
45697         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
45698         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
45699         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
45700         gen_altivec_vpkuwum.
45701         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
45702         BYTES_BIG_ENDIAN.
45703         (altivec_vpks<VI_char>ss): Likewise.
45704         (altivec_vpks<VI_char>us): Likewise.
45705         (altivec_vpku<VI_char>us): Likewise.
45706         (altivec_vpku<VI_char>um): Likewise.
45707         (altivec_vpku<VI_char>um_direct): New (copy of
45708         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
45709         internal use).
45710         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
45711         target is little endian and -maltivec=be is not specified.
45712         (*altivec_vupkhs<VU_char>_direct): New (copy of
45713         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
45714         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
45715         target is little endian and -maltivec=be is not specified.
45716         (*altivec_vupkls<VU_char>_direct): New (copy of
45717         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
45718         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
45719         little endian and -maltivec=be is not specified.
45720         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
45721         little endian and -maltivec=be is not specified.
45722
45723 2014-02-05  Richard Henderson  <rth@redhat.com>
45724
45725         PR debug/52727
45726         * combine-stack-adj.c: Revert r206943.
45727         * sched-int.h (struct deps_desc): Add last_args_size.
45728         * sched-deps.c (init_deps): Initialize it.
45729         (sched_analyze_insn): Add OUTPUT dependencies between insns that
45730         contain REG_ARGS_SIZE notes.
45731
45732 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
45733
45734         * lto-cgraph.c (asm_nodes_output): Make global.
45735         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
45736         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
45737         (driver_handle_option): Handle OPT_fwpa.
45738
45739 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
45740
45741         PR ipa/59947
45742         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
45743         a comment typo and formatting issue.  If odr_hash hasn't been
45744         created, return vNULL and set *completep to false.
45745
45746         PR middle-end/57499
45747         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
45748         bb with no successors.
45749
45750 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
45751
45752         PR target/59718
45753         * doc/invoke.texi (-march): Clarify documentation for ARM.
45754         (-mtune): Likewise.
45755         (-mcpu): Likewise.
45756
45757 2014-02-05  Richard Biener  <rguenther@suse.de>
45758
45759         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
45760         when not vectorizing because of too many alias checks.
45761         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
45762         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
45763
45764 2014-02-05  Nick Clifton  <nickc@redhat.com>
45765
45766         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
45767         accept extended registers in any mode when compiling for the MN10300.
45768
45769 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
45770
45771         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
45772         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
45773         sanitization attributes.
45774         (can_inline_edge_p): Likewise.
45775         (sanitize_attrs_match_for_inline_p): New function.
45776
45777 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
45778
45779         * ipa-prop.c (detect_type_change): Shor circuit testing of
45780         type changes on THIS pointer.
45781
45782 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
45783
45784         PR target/59777
45785         * config/pa/pa.c (legitimize_tls_address): Return original address
45786         if not passed a SYMBOL_REF rtx.
45787         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
45788         addresses.
45789         (pa_emit_move_sequence): Simplify TLS source operands.
45790         (pa_legitimate_constant_p): Reject all TLS constants.
45791         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
45792         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
45793
45794 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
45795
45796         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
45797         groups when we know they are controlled by LTO.
45798         * varasm.c (default_binds_local_p_1): If object is in other partition,
45799         it will be resolved locally.
45800
45801 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
45802
45803         * config/host-linux.c (linux_gt_pch_use_address): Don't
45804         use SSIZE_MAX because it is not always defined.
45805
45806 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
45807
45808         PR bootstrap/59913
45809         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
45810         threshold for pseudo splitting.
45811         (update_ebb_live_info): Process call argument hard registers and
45812         hard registers from insn definition too.
45813         (max_small_class_regs_num): New constant.
45814         (inherit_in_ebb): Update live hard regs through EBBs.  Update
45815         reloads_num only for small register classes.  Don't split for
45816         outputs of jumps.
45817
45818 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
45819
45820         PR ipa/60058
45821         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
45822         is non-null.
45823
45824 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
45825
45826         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
45827         visibility is safe.
45828
45829 2014-02-04  Marek Polacek  <polacek@redhat.com>
45830
45831         * gdbinit.in (pel): Define.
45832
45833 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
45834
45835         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
45836         behavior.
45837
45838 2014-02-04  Richard Biener  <rguenther@suse.de>
45839
45840         PR lto/59723
45841         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
45842         in function context local.
45843         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
45844         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
45845         similar to LTO_imported_decl_ref.
45846
45847 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
45848
45849         PR tree-optimization/60002
45850         * cgraphclones.c (build_function_decl_skip_args): Clear
45851         DECL_LANG_SPECIFIC.
45852
45853         PR tree-optimization/60023
45854         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
45855         false to gsi_replace.
45856         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
45857         has been in some EH region and vec_stmt could throw, add
45858         vec_stmt into the same EH region.
45859         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
45860         has no lhs, ignore it.
45861         * internal-fn.c (expand_MASK_LOAD): Likewise.
45862
45863         PR ipa/60026
45864         * tree-inline.c (copy_forbidden): Fail for
45865         __attribute__((optimize (0))) functions.
45866
45867         PR other/58712
45868         * omp-low.c (simd_clone_struct_copy): If from->inbranch
45869         is set, copy one less argument.
45870         (expand_simd_clones): Don't subtract clone_info->inbranch
45871         from simd_clone_struct_alloc argument.
45872
45873         PR rtl-optimization/57915
45874         * recog.c (simplify_while_replacing): If all unary/binary/relational
45875         operation arguments are constant, attempt to simplify those.
45876
45877         PR middle-end/59261
45878         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
45879         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
45880
45881 2014-02-04  Richard Biener  <rguenther@suse.de>
45882
45883         PR tree-optimization/60012
45884         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
45885         TBAA disambiguation to all DDRs.
45886
45887 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
45888
45889         PR target/59788
45890         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
45891         (LINK_SPEC): Use it for -shared, -shared-libgcc.
45892
45893 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45894
45895         PR ipa/59882
45896         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
45897
45898 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45899
45900         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
45901         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
45902
45903 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45904
45905         PR ipa/59831
45906         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
45907         to figure out targets of polymorphic calls with known decl.
45908         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45909         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
45910         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
45911         (get_polymorphic_call_info): ... here.
45912         (get_polymorphic_call_info_from_invariant): New function.
45913
45914 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45915
45916         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
45917         lookup via vtable pointer; check for type consistency
45918         and turn inconsitent facts into UNREACHABLE.
45919         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45920         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
45921         type inconsistent querries; return UNREACHABLE instead.
45922
45923 2014-02-03  Richard Henderson  <rth@twiddle.net>
45924
45925         PR tree-opt/59924
45926         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
45927         already processed this node.
45928         (normalize_one_pred_1): Pass along mark_set.
45929         (normalize_one_pred): Create and destroy a pointer_set_t.
45930         (normalize_one_pred_chain): Likewise.
45931
45932 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
45933
45934         PR gcov-profile/58602
45935         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
45936
45937 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45938
45939         PR ipa/59831
45940         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
45941         -fno-devirtualize; try to devirtualize by the knowledge of
45942         virtual table pointer given by aggregate propagation.
45943         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45944         (ipa_print_node_jump_functions): Dump also offset that
45945         is relevant for polymorphic calls.
45946         (determine_known_aggregate_parts): Add arg_type parameter; use it
45947         instead of determining the type from pointer type.
45948         (ipa_compute_jump_functions_for_edge): Update call of
45949         determine_known_aggregate_parts.
45950         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
45951         (gimple_get_virt_method_for_binfo): ... here; simplify using
45952         vtable_pointer_value_to_vtable.
45953         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
45954         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
45955         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
45956         (vtable_pointer_value_to_vtable): Break out from ...; handle also
45957         POINTER_PLUS_EXPR.
45958         (vtable_pointer_value_to_binfo): ... here.
45959         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
45960
45961 2014-02-03  Teresa Johnson  <tejohnson@google.com>
45962
45963         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
45964         redef of outer loop index variable.
45965
45966 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
45967
45968         PR c++/53017
45969         PR c++/59211
45970         * doc/extend.texi (Function Attributes): Typo.
45971
45972 2014-02-03  Cong Hou  <congh@google.com>
45973
45974         PR tree-optimization/60000
45975         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
45976         if the vectorized statement is a store.  A store statement can only
45977         appear at the end of pattern statements.
45978
45979 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
45980
45981         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
45982         (ix86_option_override_internal): Default long double to 64-bit for
45983         32-bit Bionic and to 128-bit for 64-bit Bionic.
45984
45985         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
45986         TARGET_LONG_DOUBLE_128 is true.
45987         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
45988
45989         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
45990         (mlong-double-64): Negate -mlong-double-128.
45991         (mlong-double-128): New option.
45992
45993         * config/i386/i386-c.c (ix86_target_macros): Define
45994         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
45995
45996         * doc/invoke.texi: Document -mlong-double-128.
45997
45998 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
45999
46000         PR rtl-optimization/60024
46001         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
46002
46003 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
46004
46005         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
46006
46007 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
46008
46009         PR rtl-optimization/57662
46010         * sel-sched.c (code_motion_path_driver): Do not mark already not
46011         existing blocks in the visiting bitmap.
46012
46013 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
46014
46015         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
46016         on the insn being emitted.
46017
46018 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
46019             Will Deacon  <will.deacon@arm.com>
46020
46021         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
46022
46023 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
46024
46025         * config/arm/arm-tables.opt: Regenerate.
46026
46027 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46028
46029         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
46030         for vector types other than V16QImode.
46031         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
46032         define_expand, and call altivec_expand_vec_perm_le when producing
46033         code with little endian element order.
46034         (*altivec_vperm_<mode>_internal): New insn having previous
46035         behavior of altivec_vperm_<mode>.
46036         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
46037         altivec_expand_vec_perm_le when producing code with little endian
46038         element order.
46039         (*altivec_vperm_<mode>_uns_internal): New insn having previous
46040         behavior of altivec_vperm_<mode>_uns.
46041
46042 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46043
46044         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
46045         (altivec_vsumsws): Add handling for -maltivec=be with a little
46046         endian target.
46047         (altivec_vsumsws_direct): New.
46048         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
46049         gen_altivec_vsumsws.
46050
46051 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
46052
46053         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
46054         vtable_pointer_value_to_binfo): New functions.
46055         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
46056         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
46057
46058 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
46059
46060         * config/nios2/nios2.md (load_got_register): Initialize GOT
46061         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
46062         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
46063
46064 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
46065
46066         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
46067         preserverd by passthrough, do not propagate the type.
46068
46069 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
46070
46071         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
46072         (mips_atomic_assign_expand_fenv): New function.
46073         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
46074
46075 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
46076
46077         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
46078         (__builtin_mips_set_fcsr): Likewise.
46079         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
46080         MIPS_USI_FTYPE_VOID.
46081         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
46082         (mips16_expand_set_fcsr): Likewise.
46083         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
46084         (mips16_set_fcsr_stub): Likewise.
46085         (mips16_get_fcsr_one_only_stub): New class.
46086         (mips16_set_fcsr_one_only_stub): Likewise.
46087         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
46088         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
46089         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
46090         (hard_float): New availability predicate.
46091         (mips_builtins): Add get_fcsr and set_fcsr.
46092         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
46093         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
46094         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
46095         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
46096         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
46097         patterns.
46098
46099 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
46100
46101         * config/mips/mips.c (mips_one_only_stub): New class.
46102         (mips_need_mips16_rdhwr_p): Replace with...
46103         (mips16_rdhwr_stub): ...this new variable.
46104         (mips16_stub_call_address): New function.
46105         (mips16_rdhwr_one_only_stub): New class.
46106         (mips_expand_thread_pointer): Use mips16_stub_call_address.
46107         (mips_output_mips16_rdhwr): Delete.
46108         (mips_finish_stub): New function.
46109         (mips_code_end): Use it to handle rdhwr stubs.
46110
46111 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
46112
46113         PR target/60017
46114         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
46115         when calculating size of integer atomic types.
46116
46117 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
46118
46119         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
46120
46121 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
46122
46123         PR tree-optimization/60003
46124         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
46125         * profile.c (branch_prob): Use gimple_call_builtin_p
46126         to check for BUILT_IN_SETJMP_RECEIVER.
46127         * tree-inline.c (copy_bb): Call notice_special_calls.
46128
46129 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
46130
46131         PR bootstrap/59985
46132         * lra-constraints.c (process_alt_operands): Update reload_sum only
46133         on the first pass.
46134
46135 2014-01-31  Richard Henderson  <rth@redhat.com>
46136
46137         PR middle-end/60004
46138         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
46139         until after else_eh is processed.
46140
46141 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
46142
46143         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
46144         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
46145         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
46146         in smmintrin.h, remove them.
46147         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
46148         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
46149         * config/i386/i386.md (ROUND_SAE): Fix value.
46150         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
46151         (const48_operand): New.
46152         * config/i386/subst.md (round), (round_expand): Use
46153         const_4_or_8_to_11_operand.
46154         (round_saeonly), (round_saeonly_expand): Use const48_operand.
46155
46156 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
46157
46158         * config/i386/constraints.md (Yk): Swap meaning with k.
46159         * config/i386/i386.md (movhi_internal): Change Yk to k.
46160         (movqi_internal): Ditto.
46161         (*k<logic><mode>): Ditto.
46162         (*andhi_1): Ditto.
46163         (*andqi_1): Ditto.
46164         (kandn<mode>): Ditto.
46165         (*<code>hi_1): Ditto.
46166         (*<code>qi_1): Ditto.
46167         (kxnor<mode>): Ditto.
46168         (kortestzhi): Ditto.
46169         (kortestchi): Ditto.
46170         (kunpckhi): Ditto.
46171         (*one_cmplhi2_1): Ditto.
46172         (*one_cmplqi2_1): Ditto.
46173         * config/i386/sse.md (): Change k to Yk.
46174         (avx512f_load<mode>_mask): Ditto.
46175         (avx512f_blendm<mode>): Ditto.
46176         (avx512f_store<mode>_mask): Ditto.
46177         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
46178         (avx512f_storedqu<mode>_mask): Ditto.
46179         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
46180         Ditto.
46181         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
46182         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
46183         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
46184         (avx512f_maskcmp<mode>3): Ditto.
46185         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
46186         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
46187         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
46188         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
46189         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
46190         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
46191         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
46192         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
46193         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
46194         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
46195         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
46196         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
46197         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
46198         (vec_extract_lo_<mode>_maskm): Ditto.
46199         (vec_extract_hi_<mode>_maskm): Ditto.
46200         (avx512f_vternlog<mode>_mask): Ditto.
46201         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
46202         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
46203         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
46204         (avx512f_<code>v8div16qi2_mask): Ditto.
46205         (avx512f_<code>v8div16qi2_mask_store): Ditto.
46206         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
46207         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
46208         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
46209         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
46210         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
46211         (*avx512pf_gatherpf<mode>df_mask): Ditto.
46212         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
46213         (*avx512pf_scatterpf<mode>df_mask): Ditto.
46214         (avx512cd_maskb_vec_dupv8di): Ditto.
46215         (avx512cd_maskw_vec_dupv16si): Ditto.
46216         (avx512f_vpermi2var<mode>3_maskz): Ditto.
46217         (avx512f_vpermi2var<mode>3_mask): Ditto.
46218         (avx512f_vpermi2var<mode>3_mask): Ditto.
46219         (avx512f_vpermt2var<mode>3_maskz): Ditto.
46220         (*avx512f_gathersi<mode>): Ditto.
46221         (*avx512f_gathersi<mode>_2): Ditto.
46222         (*avx512f_gatherdi<mode>): Ditto.
46223         (*avx512f_gatherdi<mode>_2): Ditto.
46224         (*avx512f_scattersi<mode>): Ditto.
46225         (*avx512f_scatterdi<mode>): Ditto.
46226         (avx512f_compress<mode>_mask): Ditto.
46227         (avx512f_compressstore<mode>_mask): Ditto.
46228         (avx512f_expand<mode>_mask): Ditto.
46229         * config/i386/subst.md (mask): Change k to Yk.
46230         (mask_scalar_merge): Ditto.
46231         (sd): Ditto.
46232
46233 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
46234
46235         * doc/extend.texi (Vector Extensions): Document ?: in C++.
46236
46237 2014-01-31  Richard Biener  <rguenther@suse.de>
46238
46239         PR middle-end/59990
46240         * builtins.c (fold_builtin_memory_op): Make sure to not
46241         use a floating-point mode or a boolean or enumeral type for
46242         the copy operation.
46243
46244 2014-01-30  DJ Delorie  <dj@redhat.com>
46245
46246         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
46247         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
46248         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
46249         whenever main() has an epilogue.
46250
46251 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46252
46253         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
46254         unused variable "field".
46255         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
46256         (vsx_mergeh_<mode>): Likewise.
46257         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
46258         (altivec_vmrghh): Likewise.
46259         (altivec_vmrghw): Likewise.
46260         (altivec_vmrglb): Likewise.
46261         (altivec_vmrglh): Likewise.
46262         (altivec_vmrglw): Likewise.
46263         (altivec_vspltb): Add missing uses.
46264         (altivec_vsplth): Likewise.
46265         (altivec_vspltw): Likewise.
46266         (altivec_vspltsf): Likewise.
46267
46268 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
46269
46270         PR target/59923
46271         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
46272         frame related instructions.
46273
46274 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
46275
46276         PR rtl-optimization/59959
46277         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
46278         any reload of register whose subreg is invalid.
46279
46280 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
46281
46282         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
46283         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
46284         Add missing return type - void.
46285
46286 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46287
46288         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
46289         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
46290         remove element index adjustment for endian (now handled in vsx.md
46291         and altivec.md).
46292         (altivec_expand_vec_perm_const): Use
46293         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
46294         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
46295         (vsx_xxspltw_<mode>): Adjust element index for little endian.
46296         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
46297         define_expand and a new define_insn *altivec_vspltb_internal;
46298         adjust for -maltivec=be on a little endian target.
46299         (altivec_vspltb_direct): New.
46300         (altivec_vsplth): Divide into a define_expand and a new
46301         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
46302         little endian target.
46303         (altivec_vsplth_direct): New.
46304         (altivec_vspltw): Divide into a define_expand and a new
46305         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
46306         little endian target.
46307         (altivec_vspltw_direct): New.
46308         (altivec_vspltsf): Divide into a define_expand and a new
46309         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
46310         a little endian target.
46311
46312 2014-01-30  Richard Biener  <rguenther@suse.de>
46313
46314         PR tree-optimization/59993
46315         * tree-ssa-forwprop.c (associate_pointerplus): Check we
46316         can propagate form the earlier stmt and avoid the transform
46317         when the intermediate result is needed.
46318
46319 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
46320
46321         * README.Portability: Fix typo.
46322
46323 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
46324
46325         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
46326         comparison_operator with ordered_comparison_operator.
46327
46328 2014-01-30  Nick Clifton  <nickc@redhat.com>
46329
46330         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
46331         Rename to mn10300_store_multiple_regs.
46332         * config/mn10300/mn10300.c: Likewise.
46333         * config/mn10300/mn10300.md (store_movm): Fix typo: call
46334         store_multiple_regs.
46335         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
46336         Call mn10300_store_multiple_regs.
46337
46338 2014-01-30  Nick Clifton  <nickc@redhat.com>
46339             DJ Delorie  <dj@redhat.com>
46340
46341         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
46342         %fp 2 to keep registers after it properly word-aligned.
46343         (rl78_alloc_physical_registers_umul): Handle the case where both
46344         input operands are the same.
46345
46346 2014-01-30  Richard Biener  <rguenther@suse.de>
46347
46348         PR tree-optimization/59903
46349         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
46350         check properly.
46351
46352 2014-01-30  Jason Merrill  <jason@redhat.com>
46353
46354         PR c++/59633
46355         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
46356
46357         PR c++/59645
46358         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
46359
46360 2014-01-30  Richard Biener  <rguenther@suse.de>
46361
46362         PR tree-optimization/59951
46363         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
46364
46365 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
46366
46367         PR target/59784
46368         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
46369         SFmode to DFmode case.
46370
46371 2014-01-29  DJ Delorie  <dj@redhat.com>
46372
46373         * config/msp430/msp430.opt (-minrt): New.
46374         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
46375         if -minrt given.
46376         (ENDFILE_SPEC): Likewise.
46377
46378 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
46379
46380         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
46381         (estimate_function_body_sizes): Use it.
46382
46383 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
46384
46385         PR c++/58561
46386         * dwarf2out.c (is_cxx_auto): New.
46387         (is_base_type): Use it.
46388         (gen_type_die_with_usage): Likewise.
46389
46390 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46391
46392         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
46393         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
46394         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
46395         -maltivec=be with LE targets.
46396         (vsx_mergeh_<mode>): Likewise.
46397         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
46398         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
46399         (altivec_vmrghb): Replace with define_expand and new
46400         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
46401         (altivec_vmrghb_direct): New define_insn.
46402         (altivec_vmrghh): Replace with define_expand and new
46403         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
46404         (altivec_vmrghh_direct): New define_insn.
46405         (altivec_vmrghw): Replace with define_expand and new
46406         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
46407         (altivec_vmrghw_direct): New define_insn.
46408         (*altivec_vmrghsf): Adjust for endianness.
46409         (altivec_vmrglb): Replace with define_expand and new
46410         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
46411         (altivec_vmrglb_direct): New define_insn.
46412         (altivec_vmrglh): Replace with define_expand and new
46413         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
46414         (altivec_vmrglh_direct): New define_insn.
46415         (altivec_vmrglw): Replace with define_expand and new
46416         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
46417         (altivec_vmrglw_direct): New define_insn.
46418         (*altivec_vmrglsf): Adjust for endianness.
46419         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
46420         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
46421         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
46422         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
46423         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
46424         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
46425         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
46426         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
46427
46428 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
46429
46430         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
46431         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
46432         whitespace.
46433
46434 2014-01-29  Richard Biener  <rguenther@suse.de>
46435
46436         PR tree-optimization/58742
46437         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
46438         associate_pointerplus_align.
46439         (associate_pointerplus_diff): New function.
46440         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
46441         and associate_pointerplus_diff.
46442
46443 2014-01-29  Richard Biener  <rguenther@suse.de>
46444
46445         * lto-streamer.h (LTO_major_version): Bump to 3.
46446         (LTO_minor_version): Reset to 0.
46447
46448 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
46449
46450         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
46451         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
46452         (arm_file_start): Generate correct asm header for armv7ve.
46453         * config/arm/bpabi.h: Add multilib support for armv7ve.
46454         * config/arm/driver-arm.c: Change the architectures of cortex-a7
46455         and cortex-a15 to armv7ve.
46456         * config/arm/t-aprofile: Add multilib support for armv7ve.
46457         * doc/invoke.texi: Document -march=armv7ve.
46458
46459 2014-01-29  Richard Biener  <rguenther@suse.de>
46460
46461         PR tree-optimization/58742
46462         * tree-ssa-forwprop.c (associate_plusminus): Return true
46463         if we changed sth, defer EH cleanup to ...
46464         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
46465         (simplify_mult): New function.
46466
46467 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
46468
46469         PR middle-end/59917
46470         PR tree-optimization/59920
46471         * tree.c (build_common_builtin_nodes): Remove
46472         __builtin_setjmp_dispatcher initialization.
46473         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
46474         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
46475         instead of gsi_after_labels + manually skipping debug stmts.
46476         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
46477         ignore bbs with IFN_ABNORMAL_DISPATCHER.
46478         * tree-inline.c (copy_edges_for_bb): Remove
46479         can_make_abnormal_goto argument, instead add abnormal_goto_dest
46480         argument.  Ignore computed_goto_p stmts.  Don't call
46481         make_abnormal_goto_edges.  If a call might need abnormal edges
46482         for non-local gotos, see if it already has an edge to
46483         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
46484         with true argument, don't do anything then, otherwise add
46485         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
46486         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
46487         caller.
46488         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
46489         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
46490         (lower_stmt): Don't set data->calls_builtin_setjmp.
46491         (lower_builtin_setjmp): Adjust comment.
46492         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
46493         * tree-cfg.c (found_computed_goto): Remove.
46494         (factor_computed_gotos): Remove.
46495         (make_goto_expr_edges): Return bool, true for computed gotos.
46496         Don't call make_abnormal_goto_edges.
46497         (build_gimple_cfg): Don't set found_computed_goto, don't call
46498         factor_computed_gotos.
46499         (computed_goto_p): No longer static.
46500         (make_blocks): Don't set found_computed_goto.
46501         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
46502         (make_edges): If make_goto_expr_edges returns true, push bb
46503         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
46504         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
46505         vector.  Record mapping between bbs and OpenMP regions if there
46506         are any, adjust make_gimple_omp_edges caller.  Call
46507         handle_abnormal_edges.
46508         (make_abnormal_goto_edges): Remove.
46509         * tree-cfg.h (make_abnormal_goto_edges): Remove.
46510         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
46511         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
46512         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
46513         * internal-fn.def (ABNORMAL_DISPATCHER): New.
46514         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
46515         filling *region also set *region_idx to (*region)->entry->index.
46516
46517         PR other/58712
46518         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
46519         For REGs set ORIGINAL_REGNO.
46520
46521 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
46522
46523         * doc/md.texi: Mention that a target shouldn't implement
46524         vec_widen_(s|u)mul_even/odd pair if it is less efficient
46525         than hi/lo pair.
46526
46527 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
46528
46529         PR tree-optimization/59594
46530         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
46531         a copy of the datarefs vector rather than the vector itself.
46532
46533 2014-01-28  Jason Merrill  <jason@redhat.com>
46534
46535         PR c++/53756
46536         * dwarf2out.c (auto_die): New static.
46537         (gen_type_die_with_usage): Handle C++1y 'auto'.
46538         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
46539         on definition.
46540
46541 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
46542
46543         PR target/59672
46544         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
46545         (SPEC_X32): Likewise.
46546         (SPEC_64): Likewise.
46547         * config/i386/i386.c (ix86_option_override_internal): Turn off
46548         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
46549         for TARGET_16BIT.
46550         (x86_file_start): Output .code16gcc for TARGET_16BIT.
46551         * config/i386/i386.h (TARGET_16BIT): New macro.
46552         (TARGET_16BIT_P): Likewise.
46553         * config/i386/i386.opt: Add m16.
46554         * doc/invoke.texi: Document -m16.
46555
46556 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
46557
46558         PR preprocessor/59935
46559         * input.c (location_get_source_line): Bail out on when line number
46560         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
46561
46562 2014-01-28  Richard Biener  <rguenther@suse.de>
46563
46564         PR tree-optimization/58742
46565         * tree-ssa-forwprop.c (associate_plusminus): Handle
46566         pointer subtraction of the form (T)(P + A) - (T)P.
46567
46568 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
46569
46570         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
46571         at const_int_cost.
46572
46573 2014-01-28  Richard Biener  <rguenther@suse.de>
46574
46575         Revert
46576         2014-01-28  Richard Biener  <rguenther@suse.de>
46577
46578         PR rtl-optimization/45364
46579         PR rtl-optimization/59890
46580         * var-tracking.c (local_get_addr_clear_given_value): Handle
46581         already cleared slot.
46582         (val_reset): Handle not allocated local_get_addr_cache.
46583         (vt_find_locations): Use post-order on the inverted CFG.
46584
46585 2014-01-28  Richard Biener  <rguenther@suse.de>
46586
46587         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
46588
46589 2014-01-28  Richard Biener  <rguenther@suse.de>
46590
46591         PR rtl-optimization/45364
46592         PR rtl-optimization/59890
46593         * var-tracking.c (local_get_addr_clear_given_value): Handle
46594         already cleared slot.
46595         (val_reset): Handle not allocated local_get_addr_cache.
46596         (vt_find_locations): Use post-order on the inverted CFG.
46597
46598 2014-01-28  Alan Modra  <amodra@gmail.com>
46599
46600         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
46601         * configure.ac <recursive call for build != host>: Define
46602         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
46603         and LD_FOR_BUILD too.
46604         * configure: Regenerate.
46605
46606 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
46607
46608         * config/i386/i386.c (get_builtin_code_for_version): Separate
46609         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
46610         Broadwell from Haswell.
46611
46612 2014-01-27  Steve Ellcey  <sellcey@mips.com>
46613
46614         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
46615         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
46616         * config/mips/mips.c (mips_option_override): Change setting
46617         of TARGET_DSP.
46618         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
46619         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
46620         Change from Mask to Var.
46621
46622 2014-01-27  Jeff Law  <law@redhat.com>
46623
46624         * ipa-inline.c (inline_small_functions): Fix typo.
46625
46626 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
46627
46628         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
46629         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
46630         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
46631         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
46632         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
46633         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
46634         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
46635         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
46636         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
46637         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
46638         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
46639         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
46640         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
46641         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
46642         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
46643         (_mm512_storeu_epi64): Ditto.
46644         (_mm512_cmpge_epi32_mask): Ditto.
46645         (_mm512_cmpge_epu32_mask): Ditto.
46646         (_mm512_cmpge_epi64_mask): Ditto.
46647         (_mm512_cmpge_epu64_mask): Ditto.
46648         (_mm512_cmple_epi32_mask): Ditto.
46649         (_mm512_cmple_epu32_mask): Ditto.
46650         (_mm512_cmple_epi64_mask): Ditto.
46651         (_mm512_cmple_epu64_mask): Ditto.
46652         (_mm512_cmplt_epi32_mask): Ditto.
46653         (_mm512_cmplt_epu32_mask): Ditto.
46654         (_mm512_cmplt_epi64_mask): Ditto.
46655         (_mm512_cmplt_epu64_mask): Ditto.
46656         (_mm512_cmpneq_epi32_mask): Ditto.
46657         (_mm512_cmpneq_epu32_mask): Ditto.
46658         (_mm512_cmpneq_epi64_mask): Ditto.
46659         (_mm512_cmpneq_epu64_mask): Ditto.
46660         (_mm512_expand_pd): Ditto.
46661         (_mm512_expand_ps): Ditto.
46662         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
46663         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
46664         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
46665         * config/i386/i386.c (ix86_builtins): Add
46666         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
46667         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
46668         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
46669         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
46670         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
46671         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
46672         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
46673         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
46674         IX86_BUILTIN_PMOVUSQW512_MEM.
46675         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
46676         __builtin_ia32_pmovsqd512mem_mask,
46677         __builtin_ia32_pmovqd512mem_mask,
46678         __builtin_ia32_pmovusqw512mem_mask,
46679         __builtin_ia32_pmovsqw512mem_mask,
46680         __builtin_ia32_pmovqw512mem_mask,
46681         __builtin_ia32_pmovusdw512mem_mask,
46682         __builtin_ia32_pmovsdw512mem_mask,
46683         __builtin_ia32_pmovdw512mem_mask,
46684         __builtin_ia32_pmovqb512mem_mask,
46685         __builtin_ia32_pmovusqb512mem_mask,
46686         __builtin_ia32_pmovsqb512mem_mask,
46687         __builtin_ia32_pmovusdb512mem_mask,
46688         __builtin_ia32_pmovsdb512mem_mask,
46689         __builtin_ia32_pmovdb512mem_mask.
46690         (bdesc_args): Add __builtin_ia32_expanddf512,
46691         __builtin_ia32_expandsf512.
46692         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
46693         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
46694         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
46695         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
46696         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
46697         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
46698         (avx512f_<code>v8div16qi2_mask_store): This.
46699         (avx512f_expand<mode>): New.
46700
46701 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
46702
46703         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
46704         New.
46705         (_mm512_mask_prefetch_i64gather_pd): Ditto.
46706         (_mm512_prefetch_i32scatter_pd): Ditto.
46707         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
46708         (_mm512_prefetch_i64scatter_pd): Ditto.
46709         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
46710         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
46711         (_mm512_mask_prefetch_i64gather_ps): Ditto.
46712         (_mm512_prefetch_i32scatter_ps): Ditto.
46713         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
46714         (_mm512_prefetch_i64scatter_ps): Ditto.
46715         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
46716         * config/i386/i386-builtin-types.def: Define
46717         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
46718         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
46719         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
46720         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
46721         IX86_BUILTIN_SCATTERPFQPD.
46722         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
46723         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
46724         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
46725         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
46726         __builtin_ia32_scatterpfqps.
46727         (ix86_expand_builtin): Expand new built-ins.
46728         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
46729         fix memory access data type.
46730         (*avx512pf_gatherpf<mode>_mask): Ditto.
46731         (*avx512pf_gatherpf<mode>): Ditto.
46732         (avx512pf_scatterpf<mode>): Ditto.
46733         (*avx512pf_scatterpf<mode>_mask): Ditto.
46734         (*avx512pf_scatterpf<mode>): Ditto.
46735         (GATHER_SCATTER_SF_MEM_MODE): New.
46736         (avx512pf_gatherpf<mode>df): Ditto.
46737         (*avx512pf_gatherpf<mode>df_mask): Ditto.
46738         (*avx512pf_scatterpf<mode>df): Ditto.
46739
46740 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
46741
46742         PR bootstrap/59934
46743         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
46744         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
46745         reached.
46746
46747 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
46748
46749         * common/config/arm/arm-common.c
46750         (arm_rewrite_mcpu): Handle multiple names.
46751         * config/arm/arm.h
46752         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
46753
46754 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
46755
46756         * gimple-builder.h (create_gimple_tmp): Delete.
46757
46758 2014-01-27  Christian Bruel  <christian.bruel@st.com>
46759
46760         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
46761         words comparisons.
46762
46763 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
46764
46765         * config/pa/pa.md (call): Generate indirect long calls to non-local
46766         functions when outputing 32-bit code.
46767         (call_value): Likewise except for special call to buggy powf function.
46768
46769         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
46770         portable runtime and PIC indirect calls.
46771         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
46772         and PIC call sequences.  Use ldo instead of blr to set return register
46773         in PIC call sequence.
46774
46775 2014-01-25  Walter Lee  <walt@tilera.com>
46776
46777         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
46778         avoid clobbering a live register.
46779
46780 2014-01-25  Walter Lee  <walt@tilera.com>
46781
46782         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
46783         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
46784         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
46785         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
46786
46787 2014-01-25  Walter Lee  <walt@tilera.com>
46788
46789         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
46790         arguments on even registers.
46791         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
46792         STACK_BOUNDARY.
46793         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
46794         (BIGGEST_ALIGNMENT): Ditto.
46795         (BIGGEST_FIELD_ALIGNMENT): Ditto.
46796
46797 2014-01-25  Walter Lee  <walt@tilera.com>
46798
46799         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
46800         insns before bundling.
46801         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
46802
46803 2014-01-25  Walter Lee  <walt@tilera.com>
46804
46805         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
46806         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
46807         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
46808
46809 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
46810
46811         * config/mips/constraints.md (kl): Delete.
46812         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
46813         define expands, using...
46814         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
46815         instructions for MIPS16.
46816         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
46817         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
46818
46819 2014-01-25  Walter Lee  <walt@tilera.com>
46820
46821         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
46822         (clzdi2): Ditto.
46823         (ffsdi2): Ditto.
46824
46825 2014-01-25  Walter Lee  <walt@tilera.com>
46826
46827         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
46828         (TARGET_EXPAND_TO_RTL_HOOK): Define.
46829
46830 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
46831
46832         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
46833         Handle XOR.
46834
46835 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
46836
46837         * print-rtl.c (in_call_function_usage): New var.
46838         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
46839         EXPR_LIST mode as mode and not as reg note name.
46840
46841         PR middle-end/59561
46842         * cfgloopmanip.c (copy_loop_info): If
46843         loop->warned_aggressive_loop_optimizations, make sure
46844         the flag is set in target loop too.
46845
46846 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
46847
46848         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
46849         flag_cilkplus.
46850         * builtins.def: Likewise.
46851         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
46852         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
46853         * ira.c (ira_setup_eliminable_regset): Likewise.
46854         * omp-low.c (gate_expand_omp): Likewise.
46855         (execute_lower_omp): Likewise.
46856         (diagnose_sb_0): Likewise.
46857         (gate_diagnose_omp_blocks): Likewise.
46858         (simd_clone_clauses_extract): Likewise.
46859         (gate): Likewise.
46860
46861 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46862
46863         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
46864         correction for little endian...
46865         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
46866         here.
46867
46868 2014-01-24  Jeff Law  <law@redhat.com>
46869
46870         PR tree-optimization/59919
46871         * tree-vrp.c (find_assert_locations_1): Do not register asserts
46872         for non-returning calls.
46873
46874 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
46875
46876         * common/config/aarch64/aarch64-common.c
46877         (aarch64_rewrite_mcpu): Handle multiple names.
46878         * config/aarch64/aarch64.h
46879         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
46880
46881 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
46882
46883         * input.c (add_file_to_cache_tab): Handle the case where fopen
46884         returns NULL.
46885
46886 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
46887
46888         PR target/59929
46889         * config/i386/i386.md (pushsf splitter): Get stack adjustment
46890         from push operand if code of push isn't PRE_DEC.
46891
46892 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
46893
46894         PR target/59909
46895         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
46896         -mquad-memory-atomic.  Update -mquad-memory documentation to say
46897         it is only used for non-atomic loads/stores.
46898
46899         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
46900         -mquad-memory or -mquad-memory-atomic switches.
46901
46902         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
46903         -mquad-memory-atomic to ISA 2.07 support.
46904
46905         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
46906         to separate support of normal quad word memory operations (ldq, stq)
46907         from the atomic quad word memory operations.
46908
46909         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
46910         support to separate non-atomic quad word operations from atomic
46911         quad word operations.  Disable non-atomic quad word operations in
46912         little endian mode so that we don't have to swap words after the
46913         load and before the store.
46914         (quad_load_store_p): Add comment about atomic quad word support.
46915         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
46916         options printed with -mdebug=reg.
46917
46918         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
46919         -mquad-memory-atomic as the test for whether we have quad word
46920         atomic instructions.
46921         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
46922         or -mp8-vector are used, allow byte/half-word atomic operations.
46923
46924         * config/rs6000/sync.md (load_lockedti): Insure that the address
46925         is a proper indexed or indirect address for the lqarx instruction.
46926         On little endian systems, swap the hi/lo registers after the lqarx
46927         instruction.
46928         (load_lockedpti): Use indexed_or_indirect_operand predicate to
46929         insure the address is valid for the lqarx instruction.
46930         (store_conditionalti): Insure that the address is a proper indexed
46931         or indirect address for the stqcrx. instruction.  On little endian
46932         systems, swap the hi/lo registers before doing the stqcrx.
46933         instruction.
46934         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
46935         insure the address is valid for the stqcrx. instruction.
46936
46937         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
46938         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
46939         type of quad memory support is available.
46940
46941 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
46942
46943         PR regression/59915
46944         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
46945         there is a danger of looping.
46946
46947 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
46948
46949         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
46950         force flag_ira_loop_pressure if set via command line.
46951
46952 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
46953
46954         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
46955         (ashr_simd): New builtin handling DI mode.
46956         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
46957         (aarch64_sshr_simddi): New match pattern.
46958         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
46959         (vshrd_n_s64): Likewise.
46960         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
46961
46962 2014-01-23  Nick Clifton  <nickc@redhat.com>
46963
46964         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
46965         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
46966         favour of mcu specific scripts.
46967         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
46968         430x multilibs.
46969
46970 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
46971             Alex Velenko  <Alex.Velenko@arm.com>
46972
46973         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
46974         (vaddv_s16): Likewise.
46975         (vaddv_s32): Likewise.
46976         (vaddv_u8): Likewise.
46977         (vaddv_u16): Likewise.
46978         (vaddv_u32): Likewise.
46979         (vaddvq_s8): Likewise.
46980         (vaddvq_s16): Likewise.
46981         (vaddvq_s32): Likewise.
46982         (vaddvq_s64): Likewise.
46983         (vaddvq_u8): Likewise.
46984         (vaddvq_u16): Likewise.
46985         (vaddvq_u32): Likewise.
46986         (vaddvq_u64): Likewise.
46987         (vaddv_f32): Likewise.
46988         (vaddvq_f32): Likewise.
46989         (vaddvq_f64): Likewise.
46990         (vmaxv_f32): Likewise.
46991         (vmaxv_s8): Likewise.
46992         (vmaxv_s16): Likewise.
46993         (vmaxv_s32): Likewise.
46994         (vmaxv_u8): Likewise.
46995         (vmaxv_u16): Likewise.
46996         (vmaxv_u32): Likewise.
46997         (vmaxvq_f32): Likewise.
46998         (vmaxvq_f64): Likewise.
46999         (vmaxvq_s8): Likewise.
47000         (vmaxvq_s16): Likewise.
47001         (vmaxvq_s32): Likewise.
47002         (vmaxvq_u8): Likewise.
47003         (vmaxvq_u16): Likewise.
47004         (vmaxvq_u32): Likewise.
47005         (vmaxnmv_f32): Likewise.
47006         (vmaxnmvq_f32): Likewise.
47007         (vmaxnmvq_f64): Likewise.
47008         (vminv_f32): Likewise.
47009         (vminv_s8): Likewise.
47010         (vminv_s16): Likewise.
47011         (vminv_s32): Likewise.
47012         (vminv_u8): Likewise.
47013         (vminv_u16): Likewise.
47014         (vminv_u32): Likewise.
47015         (vminvq_f32): Likewise.
47016         (vminvq_f64): Likewise.
47017         (vminvq_s8): Likewise.
47018         (vminvq_s16): Likewise.
47019         (vminvq_s32): Likewise.
47020         (vminvq_u8): Likewise.
47021         (vminvq_u16): Likewise.
47022         (vminvq_u32): Likewise.
47023         (vminnmv_f32): Likewise.
47024         (vminnmvq_f32): Likewise.
47025         (vminnmvq_f64): Likewise.
47026
47027 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
47028
47029         * config/aarch64/aarch64-simd.md
47030         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
47031         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
47032         (*aarch64_mul3_elt<mode>): Likewise.
47033         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
47034         (*aarch64_mul3_elt_to_64v2df): Likewise.
47035         (*aarch64_mla_elt<mode>): Likewise.
47036         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
47037         (*aarch64_mls_elt<mode>): Likewise.
47038         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
47039         (*aarch64_fma4_elt<mode>): Likewise.
47040         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
47041         (*aarch64_fma4_elt_to_64v2df): Likewise.
47042         (*aarch64_fnma4_elt<mode>): Likewise.
47043         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
47044         (*aarch64_fnma4_elt_to_64v2df): Likewise.
47045         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
47046         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
47047         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
47048         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
47049         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
47050         (aarch64_sqdmull_lane<mode>_internal): Likewise.
47051         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
47052
47053 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
47054
47055         * config/aarch64/aarch64-simd.md
47056         (aarch64_be_checked_get_lane<mode>): New define_expand.
47057         * config/aarch64/aarch64-simd-builtins.def
47058         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
47059         New builtin definition.
47060         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
47061         Use new safe be builtin.
47062
47063 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
47064
47065         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
47066         New define_insn.
47067         (aarch64_be_st1<mode>): Likewise.
47068         (aarch_ld1<VALL:mode>): Define_expand modified.
47069         (aarch_st1<VALL:mode>): Likewise.
47070         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
47071         (UNSPEC_ST1): Likewise.
47072
47073 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
47074
47075         * config/microblaze/microblaze.md: Add trap insn and attribute
47076
47077 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
47078
47079         PR preprocessor/58580
47080         * input.h (location_get_source_line): Take an additional line_size
47081         parameter.
47082         (void diagnostics_file_cache_fini): Declare new function.
47083         * input.c (struct fcache): New type.
47084         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
47085         New static constants.
47086         (diagnostic_file_cache_init, total_lines_num)
47087         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
47088         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
47089         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
47090         (get_next_line, read_next_line, goto_next_line, read_line_num):
47091         New static function definitions.
47092         (diagnostic_file_cache_fini): New function.
47093         (location_get_source_line): Take an additional output line_len
47094         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
47095         read_line_num.
47096         * diagnostic.c (diagnostic_finish): Call
47097         diagnostic_file_cache_fini.
47098         (adjust_line): Take an additional input parameter for the length
47099         of the line, rather than calculating it with strlen.
47100         (diagnostic_show_locus): Adjust the use of
47101         location_get_source_line and adjust_line with respect to their new
47102         signature.  While displaying a line now, do not stop at the first
47103         null byte.  Rather, display the zero byte as a space and keep
47104         going until we reach the size of the line.
47105         * Makefile.in: Add vec.o to OBJS-libcommon
47106
47107 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
47108             Ilya Tocar  <ilya.tocar@intel.com>
47109
47110         * config/i386/avx512fintrin.h (_mm512_kmov): New.
47111         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
47112         (__builtin_ia32_kmov16): Ditto.
47113         * config/i386/i386.md (UNSPEC_KMOV): New.
47114         (kmovw): Ditto.
47115
47116 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
47117
47118         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
47119         (_mm512_storeu_si512): Ditto.
47120
47121 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
47122
47123         PR target/52125
47124         * rtl.h (get_referenced_operands): Declare.
47125         * recog.c (get_referenced_operands): New function.
47126         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
47127         operands have been referenced when recording LO_SUM references.
47128
47129 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
47130
47131         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
47132
47133 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
47134
47135         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
47136         Enable for generic and recent AMD targets.
47137
47138 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
47139
47140         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
47141         ARG_SIZE note when adjustment was eliminated.
47142
47143 2014-01-22  Jeff Law  <law@redhat.com>
47144
47145         PR tree-optimization/59597
47146         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
47147         in file.  Accept new argument REGISTERING and use it to modify
47148         dump output appropriately.
47149         (register_jump_thread): Corresponding changes.
47150         (mark_threaded_blocks): Reinstate code to cancel unprofitable
47151         thread paths involving joiner blocks.  Add code to dump cancelled
47152         jump threading paths.
47153
47154 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
47155
47156         PR rtl-optimization/59477
47157         * lra-constraints.c (inherit_in_ebb): Process call for living hard
47158         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
47159
47160 2014-01-22  Tom Tromey  <tromey@redhat.com>
47161
47162         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
47163         PARAMS.
47164         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
47165
47166 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
47167
47168         PR rtl-optimization/59896
47169         * lra-constraints.c (process_alt_operands): Check unused note for
47170         matched operands of insn with no output reloads.
47171
47172 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
47173
47174         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
47175         (mips_move_from_gpr_cost): Likewise.
47176
47177 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
47178
47179         PR rtl-optimization/59858
47180         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
47181         ira_class_hard_regs_num.
47182         (process_alt_operands): Increase reject for dying matched operand.
47183
47184 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
47185
47186         PR target/59003
47187         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
47188         smaller than size, perform several stores or loads and stores
47189         at dst + count - size to store or copy all of size bytes, rather
47190         than just last modesize bytes.
47191
47192 2014-01-20  DJ Delorie  <dj@redhat.com>
47193
47194         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
47195         that CLOBBERs are REGs before propogating their values.
47196
47197 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
47198
47199         PR middle-end/59789
47200         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
47201         (cgraph_inline_failed_type): New function.
47202         * cgraph.h (DEFCIFCODE): Add type.
47203         (cgraph_inline_failed_type_t): New enum.
47204         (cgraph_inline_failed_type): New prototype.
47205         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
47206         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
47207         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
47208         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
47209         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
47210         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
47211         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
47212         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
47213         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
47214         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
47215         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
47216         OPTIMIZATION_MISMATCH.
47217         * tree-inline.c (expand_call_inline): Emit errors during
47218         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
47219
47220 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
47221
47222         PR target/59685
47223         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
47224         mode attribute in insn output.
47225
47226 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
47227
47228         * output.h (output_constant): Delete.
47229         * varasm.c (output_constant): Make private.
47230
47231 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
47232
47233         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
47234
47235 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
47236
47237         PR middle-end/59860
47238         * tree.h (fold_builtin_strcat): New prototype.
47239         * builtins.c (fold_builtin_strcat): No longer static.  Add len
47240         argument, if non-NULL, don't call c_strlen.  Optimize
47241         directly into __builtin_memcpy instead of __builtin_strcpy.
47242         (fold_builtin_2): Adjust fold_builtin_strcat caller.
47243         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
47244
47245 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
47246
47247         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
47248         for SImode_address_operand operands, having only a REG argument.
47249
47250 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
47251
47252         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
47253         loader name using mbig-endian.
47254         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
47255
47256 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
47257
47258         * doc/invoke.texi (-march): Clarify documentation for AArch64.
47259         (-mtune): Likewise.
47260         (-mcpu): Likewise.
47261
47262 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
47263
47264         * config/aarch64/aarch64-protos.h
47265         (aarch64_cannot_change_mode_class_ptr): Declare.
47266         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
47267         aarch64_cannot_change_mode_class_ptr): New.
47268         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
47269         backend hook aarch64_cannot_change_mode_class.
47270
47271 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
47272
47273         * common/config/aarch64/aarch64-common.c
47274         (aarch64_handle_option): Don't handle any option order logic here.
47275         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
47276         selected_cpu, warn on architecture version mismatch.
47277         (aarch64_override_options): Fix parsing order for option strings.
47278
47279 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
47280             Iain Sandoe  <iain@codesourcery.com>
47281
47282         PR bootstrap/59496
47283         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
47284         warning.  Amend comment to reflect current functionality.
47285
47286 2014-01-20  Richard Biener  <rguenther@suse.de>
47287
47288         PR middle-end/59860
47289         * builtins.c (fold_builtin_strcat): Remove case better handled
47290         by tree-ssa-strlen.c.
47291
47292 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
47293
47294         * config/aarch64/aarch64.opt
47295         (mcpu, march, mtune): Make case-insensitive.
47296
47297 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
47298
47299         PR target/59880
47300         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
47301         if operands[1] is a REG or ZERO_EXTEND of a REG.
47302
47303 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
47304
47305         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
47306
47307 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
47308
47309         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
47310         long non-pic millicode calls.
47311
47312 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
47313
47314         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
47315
47316 2014-01-19  Kito Cheng  <kito@0xlab.org>
47317
47318         * builtins.c (expand_movstr): Check movstr expand done or fail.
47319
47320 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47321             H.J. Lu  <hongjiu.lu@intel.com>
47322
47323         PR target/59379
47324         * config/i386/i386.md (*lea<mode>): Zero-extend return register
47325         to DImode for zero-extended addresses.
47326
47327 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
47328
47329         PR rtl-optimization/57763
47330         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
47331         on the new indirect jump_insn and increment LABEL_NUSES (label).
47332
47333 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
47334
47335         PR bootstrap/59580
47336         PR bootstrap/59583
47337         * config.gcc (x86_archs): New variable.
47338         (x86_64_archs): Likewise.
47339         (x86_cpus): Likewise.
47340         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
47341         --with-arch/--with-cpu= options.
47342         Support --with-arch=/--with-cpu={nehalem,westmere,
47343         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
47344
47345 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47346
47347         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
47348         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
47349
47350 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47351
47352         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
47353
47354 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
47355
47356         PR target/58944
47357         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
47358         clear cpp_get_options (parse_in)->warn_unused_macros for
47359         ix86_target_macros_internal with cpp_define.
47360
47361 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
47362
47363         * jump.c (delete_related_insns): Keep (use (insn))s.
47364         * reorg.c (redundant_insn): Check for barriers too.
47365
47366 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
47367
47368         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
47369
47370 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
47371
47372         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
47373         call to $$dyncall when TARGET_LONG_CALLS is true.
47374
47375 2014-01-17  Jeff Law  <law@redhat.com>
47376
47377         * ree.c (combine_set_extension): Temporarily disable test for
47378         changing number of hard registers.
47379
47380 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
47381
47382         PR middle-end/58125
47383         * ipa-inline-analysis.c (inline_free_summary):
47384         Do not free summary of aliases.
47385
47386 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
47387
47388         PR middle-end/59706
47389         * gimplify.c (gimplify_expr): Use create_tmp_var
47390         instead of create_tmp_var_raw.  If cond doesn't have
47391         integral type, don't add the IFN_ANNOTATE builtin at all.
47392
47393 2014-01-17  Martin Jambor  <mjambor@suse.cz>
47394
47395         PR ipa/59736
47396         * ipa-cp.c (prev_edge_clone): New variable.
47397         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
47398         Also resize prev_edge_clone vector.
47399         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
47400         (ipcp_edge_removal_hook): New function.
47401         (ipcp_driver): Register ipcp_edge_removal_hook.
47402
47403 2014-01-17  Andrew Pinski  <apinski@cavium.com>
47404             Steve Ellcey  <sellcey@mips.com>
47405
47406         PR target/59462
47407         * config/mips/mips.c (mips_print_operand): Check operand mode instead
47408         of operator mode.
47409
47410 2014-01-17  Jeff Law  <law@redhat.com>
47411
47412         PR middle-end/57904
47413         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
47414         so that pass_ccp runs first.
47415
47416 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
47417
47418         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
47419         (ix86_adjust_cost): Use !TARGET_XXX.
47420         (do_reorder_for_imul): Likewise.
47421         (swap_top_of_ready_list): Likewise.
47422         (ix86_sched_reorder): Likewise.
47423
47424 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
47425
47426         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
47427         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
47428         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
47429         (intel_memset): New.  Duplicate slm_memset.
47430         (intel_cost): New.  Duplicate slm_cost.
47431         (m_INTEL): New macro.
47432         (processor_target_table): Add "intel".
47433         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
47434         with PROCESSOR_INTEL for "intel".
47435         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
47436         PROCESSOR_SILVERMONT.
47437         (ix86_issue_rate): Likewise.
47438         (ix86_adjust_cost): Likewise.
47439         (ia32_multipass_dfa_lookahead): Likewise.
47440         (swap_top_of_ready_list): Likewise.
47441         (ix86_sched_reorder): Likewise.
47442         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
47443         instead of TARGET_OPT_AGU.
47444         * config/i386/i386.h (TARGET_INTEL): New.
47445         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
47446         (processor_type): Add PROCESSOR_INTEL.
47447         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
47448         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
47449
47450 2014-01-17  Marek Polacek  <polacek@redhat.com>
47451
47452         PR c/58346
47453         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
47454         size is zero.
47455
47456 2014-01-17  Richard Biener  <rguenther@suse.de>
47457
47458         PR tree-optimization/46590
47459         * opts.c (default_options_table): Add entries for
47460         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
47461         all enabled at -O1 but not for -Og.
47462         * common.opt (fbranch-count-reg): Remove Init(1).
47463         (fmove-loop-invariants): Likewise.
47464         (ftree-pta): Likewise.
47465
47466 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
47467
47468         * config/i386/i386.c (ix86_data_alignment): For compatibility with
47469         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
47470         decls to at least the GCC 4.8 used alignments.
47471
47472         PR fortran/59440
47473         * tree-nested.c (convert_nonlocal_reference_stmt,
47474         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
47475         of GIMPLE_BIND stmts, adjust associated decls.
47476
47477 2014-01-17  Richard Biener  <rguenther@suse.de>
47478
47479         PR tree-optimization/46590
47480         * vec.h (vec<>::bseach): New member function implementing
47481         binary search according to C89 bsearch.
47482         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
47483         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
47484         bitmap pointer again.  Make accesses_in_loop a flat array.
47485         (mem_ref_obstack): New global.
47486         (outermost_indep_loop): Adjust for mem_ref->stored changes.
47487         (mark_ref_stored): Likewise.
47488         (ref_indep_loop_p_2): Likewise.
47489         (set_ref_stored_in_loop): New helper function.
47490         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
47491         (memref_free): Adjust.
47492         (record_mem_ref_loc): Simplify.
47493         (gather_mem_refs_stmt): Adjust.
47494         (sort_locs_in_loop_postorder_cmp): New function.
47495         (analyze_memory_references): Sort accesses_in_loop after
47496         loop postorder number.
47497         (find_ref_loc_in_loop_cmp): New function.
47498         (for_all_locs_in_loop): Find relevant cluster of locs in
47499         accesses_in_loop and iterate without recursion.
47500         (execute_sm): Avoid uninit warning.
47501         (struct ref_always_accessed): Simplify.
47502         (ref_always_accessed::operator ()): Likewise.
47503         (ref_always_accessed_p): Likewise.
47504         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
47505         loop postorder numbers here.
47506         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
47507         numbers.
47508
47509 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
47510
47511         PR c++/57945
47512         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
47513         on decls for which assemble_alias has been called.
47514
47515 2014-01-17  Nick Clifton  <nickc@redhat.com>
47516
47517         * config/msp430/msp430.opt: (mcpu): New option.
47518         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
47519         (msp430_option_override): Parse target_cpu.  If the MCU name
47520         matches a generic string, clear target_mcu.
47521         (msp430_attr): Allow numeric interrupt values up to 63.
47522         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
47523         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
47524         option.
47525         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
47526         Add mcpu matches.
47527         * config/msp430/msp430.md (popm): Use %J rather than %I.
47528         (addsi3): Use msp430_nonimmediate_operand for operand 2.
47529         (addhi_cy_i): Use immediate_operand for operand 2.
47530         * doc/invoke.texi: Document -mcpu option.
47531
47532 2014-01-17  Richard Biener  <rguenther@suse.de>
47533
47534         PR rtl-optimization/38518
47535         * df.h (df_analyze_loop): Declare.
47536         * df-core.c: Include cfgloop.h.
47537         (df_analyze_1): Split out main part of df_analyze.
47538         (df_analyze): Adjust.
47539         (loop_inverted_post_order_compute): New function.
47540         (loop_post_order_compute): Likewise.
47541         (df_analyze_loop): New function avoiding whole-function
47542         postorder computes.
47543         * loop-invariant.c (find_defs): Use df_analyze_loop.
47544         (find_invariants): Adjust.
47545         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
47546
47547 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
47548
47549         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
47550         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
47551
47552 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
47553
47554         * ipa-ref.c (ipa_remove_stmt_references): Fix references
47555         traversal when removing references.
47556
47557 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
47558
47559         PR ipa/59775
47560         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
47561
47562 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
47563
47564         PR middle-end/56791
47565         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
47566         pushing a reload for an autoinc when we had previously reloaded an
47567         inner part of the address.
47568
47569 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
47570
47571         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
47572         field.
47573         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
47574         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
47575         when not giving up or versioning for alias only because of
47576         loop->safelen.
47577         (vect_analyze_data_ref_dependences): Set to true.
47578         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
47579         is a GIMPLE_PHI.
47580         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
47581         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
47582         to the condition.
47583
47584         PR middle-end/58344
47585         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
47586
47587         PR target/59839
47588         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
47589         operand 0 predicate for gathers, use a new pseudo as subtarget.
47590
47591 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
47592
47593         PR middle-end/59609
47594         * lra-constraints.c (process_alt_operands): Add printing debug info.
47595         Check absence of input/output reloads for matched operands too.
47596
47597 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
47598
47599         PR rtl-optimization/59835
47600         * ira.c (ira_init_register_move_cost): Increase cost for
47601         impossible modes.
47602
47603 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
47604
47605         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
47606
47607 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
47608
47609         PR target/59780
47610         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
47611         non-register objects.  Use gen_(high/low)part more consistently.
47612         Fix assertions.
47613
47614 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
47615
47616         PR target/59844
47617         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
47618         endian support, remove tests for WORDS_BIG_ENDIAN.
47619         (p8_mfvsrd_3_<mode>): Likewise.
47620         (reload_gpr_from_vsx<mode>): Likewise.
47621         (reload_gpr_from_vsxsf): Likewise.
47622         (p8_mfvsrd_4_disf): Likewise.
47623
47624 2014-01-16  Richard Biener  <rguenther@suse.de>
47625
47626         PR rtl-optimization/46590
47627         * lcm.c (compute_antinout_edge): Use postorder iteration.
47628         (compute_laterin): Use inverted postorder iteration.
47629
47630 2014-01-16  Nick Clifton  <nickc@redhat.com>
47631
47632         PR middle-end/28865
47633         * varasm.c (output_constant): Return the number of bytes actually
47634         emitted.
47635         (output_constructor_array_range): Update the field size with the
47636         number of bytes emitted by output_constant.
47637         (output_constructor_regular_field): Likewise.  Also do not
47638         complain if the total number of bytes emitted is now greater
47639         than the expected fieldpos.
47640         * output.h (output_constant): Update prototype and descriptive comment.
47641
47642 2014-01-16  Marek Polacek  <polacek@redhat.com>
47643
47644         PR middle-end/59827
47645         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
47646         it is error_mark_node.
47647
47648 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
47649
47650         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
47651         VALID_AVX256_REG_OR_OI_MODE.
47652
47653 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
47654
47655         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
47656         current procedure should be profiled.
47657
47658 2014-01-15  Andrew Pinski  <apinski@cavium.com>
47659
47660         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
47661         of moving from/to the STACK_REG register class.
47662
47663 2014-01-15  Richard Henderson  <rth@redhat.com>
47664
47665         PR debug/54694
47666         * reginfo.c (global_regs_decl): Globalize.
47667         * rtl.h (global_regs_decl): Declare.
47668         * ira.c (do_reload): Diagnose frame_pointer_needed and it
47669         reserved via global_regs.
47670
47671 2014-01-15  Teresa Johnson  <tejohnson@google.com>
47672
47673         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
47674
47675 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
47676
47677         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
47678         and vmulosh rather than call gen_vec_widen_smult_*.
47679         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
47680         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
47681         (vec_widen_smult_even_v16qi): Likewise.
47682         (vec_widen_umult_even_v8hi): Likewise.
47683         (vec_widen_smult_even_v8hi): Likewise.
47684         (vec_widen_umult_odd_v16qi): Likewise.
47685         (vec_widen_smult_odd_v16qi): Likewise.
47686         (vec_widen_umult_odd_v8hi): Likewise.
47687         (vec_widen_smult_odd_v8hi): Likewise.
47688         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
47689         vmuloub rather than call gen_vec_widen_umult_*.
47690         (vec_widen_umult_lo_v16qi): Likewise.
47691         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
47692         vmulosb rather than call gen_vec_widen_smult_*.
47693         (vec_widen_smult_lo_v16qi): Likewise.
47694         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
47695         rather than call gen_vec_widen_umult_*.
47696         (vec_widen_umult_lo_v8hi): Likewise.
47697         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
47698         rather than call gen_vec_widen_smult_*.
47699         (vec_widen_smult_lo_v8hi): Likewise.
47700
47701 2014-01-15  Jeff Law  <law@redhat.com>
47702
47703         PR tree-optimization/59747
47704         * ree.c (find_and_remove_re): Properly handle case where a second
47705         eliminated extension requires widening a copy created for elimination
47706         of a prior extension.
47707         (combine_set_extension): Ensure that the number of hard regs needed
47708         for a destination register does not change when we widen it.
47709
47710 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
47711
47712         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
47713         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
47714         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
47715         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
47716         (avr-*-rtems*): Likewise.
47717         (bfin*-rtems*): Likewise.
47718         (moxie-*-rtems*): Likewise.
47719         (h8300-*-rtems*): Likewise.
47720         (i[34567]86-*-rtems*): Likewise.
47721         (lm32-*-rtems*): Likewise.
47722         (m32r-*-rtems*): Likewise.
47723         (m68k-*-rtems*): Likewise.
47724         (microblaze*-*-rtems*): Likewise.
47725         (mips*-*-rtems*): Likewise.
47726         (powerpc-*-rtems*): Likewise.
47727         (sh-*-rtems*): Likewise.
47728         (sparc-*-rtems*): Likewise.
47729         (sparc64-*-rtems*): Likewise.
47730         (v850-*-rtems*): Likewise.
47731         (m32c-*-rtems*): Likewise.
47732
47733 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
47734
47735         PR rtl-optimization/59511
47736         * ira.c (ira_init_register_move_cost): Use memory costs for some
47737         cases of register move cost calculations.
47738         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
47739         instead of BB frequency.
47740         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
47741         * lra-assigns.c (find_hard_regno_for): Ditto.
47742
47743 2014-01-15  Richard Biener  <rguenther@suse.de>
47744
47745         PR tree-optimization/59822
47746         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
47747         (vectorizable_load): Use it to hoist defs of uses of invariant
47748         loads out of the loop.
47749
47750 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
47751             Kugan Vivekanandarajah  <kuganv@linaro.org>
47752
47753         PR target/59695
47754         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
47755         truncation.
47756
47757 2014-01-15  Richard Biener  <rguenther@suse.de>
47758
47759         PR rtl-optimization/59802
47760         * lcm.c (compute_available): Use inverted postorder to seed
47761         the initial worklist.
47762
47763 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
47764
47765         PR target/59803
47766         * config/s390/s390.c (s390_preferred_reload_class): Don't return
47767         ADDR_REGS for invalid symrefs in non-PIC code.
47768
47769 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
47770
47771         PR other/58712
47772         * builtins.c (determine_block_size): Initialize *probable_max_size
47773         even if len_rtx is CONST_INT.
47774
47775 2014-01-14  Andrew Pinski  <apinski@cavium.com>
47776
47777         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
47778         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
47779         (cortexa53_tunings): Likewise.
47780         (aarch64_sched_issue_rate): New function.
47781         (TARGET_SCHED_ISSUE_RATE): Define.
47782
47783 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
47784
47785         * ira-costs.c (find_costs_and_classes): Add missed
47786         ira_init_register_move_cost_if_necessary.
47787
47788 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
47789
47790         PR target/59787
47791         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
47792
47793 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
47794
47795         PR target/59794
47796         * config/i386/i386.c (type_natural_mode): Add a bool parameter
47797         to indicate if type is used for function return value.  Warn ABI
47798         change if the vector mode isn't available for function return value.
47799         (ix86_function_arg_advance): Pass false to type_natural_mode.
47800         (ix86_function_arg): Likewise.
47801         (ix86_gimplify_va_arg): Likewise.
47802         (function_arg_32): Don't warn ABI change.
47803         (ix86_function_value): Pass true to type_natural_mode.
47804         (ix86_return_in_memory): Likewise.
47805         (ix86_struct_value_rtx): Removed.
47806         (TARGET_STRUCT_VALUE_RTX): Likewise.
47807
47808 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
47809
47810         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
47811         converting a conditional jump into a conditional return.
47812
47813 2014-01-14  Richard Biener  <rguenther@suse.de>
47814
47815         PR tree-optimization/58921
47816         PR tree-optimization/59006
47817         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
47818         hoisting invariant stmts.
47819         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
47820         invariant loads on the preheader edge if possible.
47821
47822 2014-01-14  Joey Ye  <joey.ye@arm.com>
47823
47824         * doc/plugin.texi (Building GCC plugins): Update to C++.
47825
47826 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
47827
47828         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
47829         (_mm_rcp28_round_ss): Ditto.
47830         (_mm_rsqrt28_round_sd): Ditto.
47831         (_mm_rsqrt28_round_ss): Ditto.
47832         (_mm_rcp28_sd): Ditto.
47833         (_mm_rcp28_ss): Ditto.
47834         (_mm_rsqrt28_sd): Ditto.
47835         (_mm_rsqrt28_ss): Ditto.
47836         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
47837         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
47838         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
47839         (IX86_BUILTIN_RCP28SD): Ditto.
47840         (IX86_BUILTIN_RCP28SS): Ditto.
47841         (IX86_BUILTIN_RSQRT28SD): Ditto.
47842         (IX86_BUILTIN_RSQRT28SS): Ditto.
47843         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
47844         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
47845         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
47846         (ix86_expand_special_args_builtin): Expand new FTYPE.
47847         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
47848         (srcp14<mode>): Make insn unary.
47849         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
47850         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
47851         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
47852         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
47853         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
47854         Fix rounding: make it SAE only.
47855         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
47856         Ditto.
47857         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
47858         Ditto.
47859         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
47860         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
47861         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
47862         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
47863         (round_saeonly_mask_scalar_operand4): Ditto.
47864         (round_saeonly_mask_scalar_op3): Ditto.
47865         (round_saeonly_mask_scalar_op4): Ditto.
47866
47867 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
47868
47869         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
47870         Implement -maltivec=be for vec_insert and vec_extract.
47871
47872 2014-01-10  DJ Delorie  <dj@redhat.com>
47873
47874         * config/msp430/msp430.md (call_internal): Don't allow memory
47875         references with SP as the base register.
47876         (call_value_internal): Likewise.
47877         * config/msp430/constraints.md (Yc): New.  For memory references
47878         that don't use SP as a base register.
47879
47880         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
47881         "an integer without a # prefix"
47882         * config/msp430/msp430.md (epilogue_helper): Use it.
47883
47884 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
47885
47886         PR target/59617
47887         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
47888         AVX512F gather builtins.
47889         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
47890         on gather decls with INTEGER_TYPE masktype.
47891         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
47892         directly into the builtin rather than hoisting it before loop.
47893
47894         PR tree-optimization/59387
47895         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
47896         (scev_const_prop): If folded_casts and type has undefined overflow,
47897         use force_gimple_operand instead of force_gimple_operand_gsi and
47898         for each added stmt if it is assign with
47899         arith_code_with_undefined_signed_overflow, call
47900         rewrite_to_defined_overflow.
47901         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
47902         gimple-fold.h instead.
47903         (arith_code_with_undefined_signed_overflow,
47904         rewrite_to_defined_overflow): Moved to ...
47905         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
47906         rewrite_to_defined_overflow): ... here.  No longer static.
47907         Include gimplify-me.h.
47908         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
47909         rewrite_to_defined_overflow): New prototypes.
47910
47911 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
47912
47913         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
47914
47915 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
47916
47917         * builtins.c (get_object_alignment_2): Minor tweak.
47918         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
47919
47920 2014-01-13  Christian Bruel  <christian.bruel@st.com>
47921
47922         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
47923         optimized non constant lengths.
47924
47925 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
47926
47927         PR libgomp/59194
47928         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
47929         load as __atomic_load_N if possible.
47930
47931 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
47932
47933         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
47934         target parameter.
47935         (rs6000_expand_builtin): Adjust call.
47936
47937 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
47938
47939         PR target/58115
47940         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
47941         * config/rs6000/rs6000.c: Include target-globals.h.
47942         (rs6000_set_current_function): Instead of doing target_reinit
47943         unconditionally, use save_target_globals_default_opts and
47944         restore_target_globals.
47945
47946         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
47947         FPSCR.
47948         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
47949         (rs6000_expand_builtin): Handle mffs and mtfsf.
47950         (rs6000_init_builtins): Define mffs and mtfsf.
47951         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
47952         (rs6000_mffs): New pattern.
47953         (rs6000_mtfsf): New pattern.
47954
47955 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
47956
47957         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
47958         Start narrowing with START.  Apply candidate-use pair
47959         and check overall cost in narrowing.
47960         (iv_ca_prune): Pass new argument.
47961
47962 2014-01-10  Jeff Law  <law@redhat.com>
47963
47964         PR middle-end/59743
47965         * ree.c (combine_reaching_defs): Ensure the defining statement
47966         occurs before the extension when optimizing extensions with
47967         different source and destination hard registers.
47968
47969 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
47970
47971         PR ipa/58585
47972         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
47973         vtables into the type inheritance graph.
47974
47975 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
47976
47977         PR rtl-optimization/59754
47978         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
47979         modes in the REGNO != REGNO case.
47980
47981 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
47982
47983         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
47984
47985 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
47986
47987         PR tree-optimization/59745
47988         * tree-predcom.c (tree_predictive_commoning_loop): Call
47989         free_affine_expand_cache if giving up because components is NULL.
47990
47991         * target-globals.c (save_target_globals): Allocate < 4KB structs using
47992         GC in payload of target_globals struct instead of allocating them on
47993         the heap and the larger structs separately using GC.
47994         * target-globals.h (struct target_globals): Make regs, hard_regs,
47995         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
47996         of GTY((skip)) and change type to void *.
47997         (reset_target_globals): Cast loads from those fields to corresponding
47998         types.
47999
48000 2014-01-10  Steve Ellcey  <sellcey@mips.com>
48001
48002         PR plugins/59335
48003         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
48004         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
48005         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
48006
48007 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
48008
48009         PR target/59744
48010         * aarch64-modes.def (CC_Zmode): New flags mode.
48011         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
48012         represents an equality.
48013         (aarch64_get_condition_code): Handle CC_Zmode.
48014         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
48015
48016 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
48017
48018         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
48019         extraction in good case.
48020
48021 2014-01-10  Richard Biener  <rguenther@suse.de>
48022
48023         PR tree-optimization/59374
48024         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
48025         checking after SLP discovery.  Mark stmts not participating
48026         in any SLP instance properly.
48027
48028 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
48029
48030         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
48031         when handling a SET rtx.
48032
48033 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
48034
48035         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
48036         (cortex-a57): Likewise.
48037         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
48038
48039 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
48040
48041         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
48042         non-iwmmxt builtins.
48043
48044 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
48045
48046         PR ipa/58252
48047         PR ipa/59226
48048         * ipa-devirt.c record_target_from_binfo): Take as argument
48049         stack of binfos and lookup matching one for virtual inheritance.
48050         (possible_polymorphic_call_targets_1): Update.
48051
48052 2014-01-10  Huacai Chen  <chenhc@lemote.com>
48053
48054         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
48055         kernel strings for Loongson-2E/2F/3A.
48056
48057 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
48058
48059         PR middle-end/59670
48060         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
48061         is_gimple_call before calling gimple_call_internal_p.
48062
48063 2014-01-09  Steve Ellcey  <sellcey@mips.com>
48064
48065         * Makefile.in (TREE_FLOW_H): Remove.
48066         (TREE_SSA_H): Add file names from tree-flow.h.
48067         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
48068         * tree.h: Remove tree-flow.h reference.
48069         * hash-table.h: Remove tree-flow.h reference.
48070         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
48071         reference with tree-ssa-loop.h.
48072
48073 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
48074
48075         * doc/invoke.texi: Add -maltivec={be,le} options, and document
48076         default element-order behavior for -maltivec.
48077         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
48078         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
48079         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
48080         when targeting big endian, at least for now.
48081         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
48082
48083 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
48084
48085         PR middle-end/47735
48086         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
48087         var satisfies use_register_for_decl, just take into account type
48088         alignment, rather than decl alignment.
48089
48090         PR tree-optimization/59622
48091         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
48092         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
48093         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
48094         Don't devirtualize for inplace at all.  For targets.length () == 1,
48095         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
48096
48097 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
48098
48099         * config/i386/i386.md (cpu): Remove the unused btver1.
48100
48101 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
48102
48103         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
48104
48105 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
48106
48107         PR target/58115
48108         * tree-core.h (struct target_globals): New forward declaration.
48109         (struct tree_target_option): Add globals field.
48110         * tree.h (TREE_TARGET_GLOBALS): Define.
48111         (prepare_target_option_nodes_for_pch): New prototype.
48112         * target-globals.h (struct target_globals): Define even if
48113         !SWITCHABLE_TARGET.
48114         * tree.c (prepare_target_option_node_for_pch,
48115         prepare_target_option_nodes_for_pch): New functions.
48116         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
48117         * config/i386/i386.c: Include target-globals.h.
48118         (ix86_set_current_function): Instead of doing target_reinit
48119         unconditionally, use save_target_globals_default_opts and
48120         restore_target_globals.
48121
48122 2014-01-09  Richard Biener  <rguenther@suse.de>
48123
48124         PR tree-optimization/59715
48125         * tree-cfg.h (split_critical_edges): Declare.
48126         * tree-cfg.c (split_critical_edges): Export.
48127         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
48128
48129 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
48130
48131         * cfgexpand.c (expand_stack_vars): Optionally disable
48132         asan stack protection.
48133         (expand_used_vars): Likewise.
48134         (partition_stack_vars): Likewise.
48135         * asan.c (asan_emit_stack_protection): Optionally disable
48136         after return stack usage.
48137         (instrument_derefs): Optionally disable memory access instrumentation.
48138         (instrument_builtin_call): Likewise.
48139         (instrument_strlen_call): Likewise.
48140         (asan_protect_global): Optionally disable global variables protection.
48141         * doc/invoke.texi: Added doc for new options.
48142         * params.def: Added new options.
48143         * params.h: Likewise.
48144
48145 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
48146
48147         PR rtl-optimization/59724
48148         * ifcvt.c (cond_exec_process_if_block): Don't call
48149         flow_find_head_matching_sequence with 0 longest_match.
48150         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
48151         non-active insns if !stop_after.
48152         (try_head_merge_bb): Revert 2014-01-07 changes.
48153
48154 2014-01-08  Jeff Law  <law@redhat.com>
48155
48156         * ree.c (get_sub_rtx): New function, extracted from...
48157         (merge_def_and_ext): Here.
48158         (combine_reaching_defs): Use get_sub_rtx.
48159
48160 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
48161
48162         * cgraph.h (varpool_variable_node): Do not choke on null node.
48163
48164 2014-01-08  Catherine Moore  <clm@codesourcery.com>
48165
48166         * config/mips/mips.md (simple_return): Attempt to use JRC
48167         for microMIPS.
48168         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
48169
48170 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
48171
48172         PR rtl-optimization/59137
48173         * reorg.c (steal_delay_list_from_target): Call update_block for
48174         elided insns.
48175         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
48176
48177 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
48178
48179         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
48180         two duplicate entries.
48181
48182 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
48183
48184         Revert:
48185         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
48186
48187         * config/mips/mips.c (mips_truncated_op_cost): New function.
48188         (mips_rtx_costs): Adjust test for BADDU.
48189         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
48190
48191         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
48192
48193         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
48194         (*baddu_si): ...this new pattern.
48195
48196 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
48197
48198         PR ipa/59722
48199         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
48200
48201 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
48202
48203         PR middle-end/57748
48204         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
48205         inner_reference_p.
48206         (expand_expr, expand_normal): Adjust.
48207         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
48208         inner_reference_p. Use inner_reference_p to expand inner references.
48209         (store_expr): Adjust.
48210         * cfgexpand.c (expand_call_stmt): Adjust.
48211
48212 2014-01-08  Rong Xu  <xur@google.com>
48213
48214         * gcov-io.c (gcov_var): Move from gcov-io.h.
48215         (gcov_position): Ditto.
48216         (gcov_is_error): Ditto.
48217         (gcov_rewrite): Ditto.
48218         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
48219         only part to libgcc/libgcov.h.
48220
48221 2014-01-08  Marek Polacek  <polacek@redhat.com>
48222
48223         PR middle-end/59669
48224         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
48225
48226 2014-01-08  Marek Polacek  <polacek@redhat.com>
48227
48228         PR sanitizer/59667
48229         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
48230
48231 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
48232
48233         PR rtl-optimization/59649
48234         * stor-layout.c (get_mode_bounds): For BImode return
48235         0 and STORE_FLAG_VALUE.
48236
48237 2014-01-08  Richard Biener  <rguenther@suse.de>
48238
48239         PR middle-end/59630
48240         * gimple.h (is_gimple_builtin_call): Remove.
48241         (gimple_builtin_call_types_compatible_p): New.
48242         (gimple_call_builtin_p): New overload.
48243         * gimple.c (is_gimple_builtin_call): Remove.
48244         (validate_call): Rename to ...
48245         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
48246         check return types.
48247         (validate_type): New static function.
48248         (gimple_call_builtin_p): New overload and adjust.
48249         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
48250         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
48251         (gimple_fold_stmt_to_constant_1): Likewise.
48252         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
48253
48254 2014-01-08  Richard Biener  <rguenther@suse.de>
48255
48256         PR middle-end/59471
48257         * gimplify.c (gimplify_expr): Gimplify register-register type
48258         VIEW_CONVERT_EXPRs to separate stmts.
48259
48260 2014-01-07  Jeff Law  <law@redhat.com>
48261
48262         PR middle-end/53623
48263         * ree.c (combine_set_extension): Handle case where source
48264         and destination registers in an extension insn are different.
48265         (combine_reaching_defs): Allow source and destination registers
48266         in extension to be different under limited circumstances.
48267         (add_removable_extension): Remove restriction that the
48268         source and destination registers in the extension are the same.
48269         (find_and_remove_re): Emit a copy from the extension's
48270         destination to its source after the defining insn if
48271         the source and destination registers are different.
48272
48273         PR middle-end/59285
48274         * ifcvt.c (merge_if_block): If we are merging a block with more than
48275         one successor with a block with no successors, remove any BARRIER
48276         after the second block.
48277
48278 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
48279
48280         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
48281
48282 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
48283
48284         PR target/59652
48285         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
48286         for 14-bit register offsets when INT14_OK_STRICT is false.
48287
48288 2014-01-07  Roland Stigge  <stigge@antcom.de>
48289             Michael Meissner  <meissner@linux.vnet.ibm.com>
48290
48291         PR 57386/target
48292         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
48293         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
48294
48295 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
48296
48297         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
48298         -mcpu.
48299
48300 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
48301
48302         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
48303         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
48304         rtx is const0_rtx or not.
48305
48306 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
48307
48308         PR target/58115
48309         * target-globals.c (save_target_globals): Remove this_fn_optab
48310         handling.
48311         * toplev.c: Include optabs.h.
48312         (target_reinit): Temporarily restore the global options if another
48313         set of options are in force.
48314
48315 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
48316
48317         PR rtl-optimization/58668
48318         * cfgcleanup.c (flow_find_cross_jump): Don't count
48319         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
48320         to determine what is counted.
48321         (flow_find_head_matching_sequence): Use active_insn_p to determine
48322         what is counted.
48323         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
48324         counting change.
48325         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
48326         determine what is counted.
48327
48328         PR tree-optimization/59643
48329         * tree-predcom.c (split_data_refs_to_components): If one dr is
48330         read and one write, determine_offset fails and the write isn't
48331         in the bad component, just put the read into the bad component.
48332
48333 2014-01-07  Mike Stump  <mikestump@comcast.net>
48334             Jakub Jelinek  <jakub@redhat.com>
48335
48336         PR pch/59436
48337         * tree-core.h (struct tree_optimization_option): Change optabs
48338         type from unsigned char * to void *.
48339         * optabs.c (init_tree_optimization_optabs): Adjust
48340         TREE_OPTIMIZATION_OPTABS initialization.
48341
48342 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
48343
48344         PR target/59644
48345         * config/i386/i386.h (struct machine_function): Add
48346         no_drap_save_restore field.
48347         * config/i386/i386.c (ix86_save_reg): Use
48348         !cfun->machine->no_drap_save_restore instead of
48349         crtl->stack_realign_needed.
48350         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
48351         this function clears frame_pointer_needed.  Set
48352         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
48353         and DRAP reg is needed.
48354
48355 2014-01-06  Marek Polacek  <polacek@redhat.com>
48356
48357         PR c/57773
48358         * doc/implement-c.texi: Mention that other integer types are
48359         permitted as bit-field types in strictly conforming mode.
48360
48361 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
48362
48363         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
48364         is newly allocated.
48365
48366 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
48367
48368         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
48369
48370 2014-01-06  Martin Jambor  <mjambor@suse.cz>
48371
48372         PR ipa/59008
48373         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
48374         to int.
48375         * ipa-prop.c (ipa_print_node_params): Fix indentation.
48376
48377 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
48378
48379         PR debug/59350
48380         PR debug/59510
48381         * var-tracking.c (add_stores): Preserve the value of the source even if
48382         we don't record the store.
48383
48384 2014-01-06  Terry Guo  <terry.guo@arm.com>
48385
48386         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
48387
48388 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
48389
48390         PR bootstrap/59541
48391         * config/darwin.c (darwin_function_section): Adjust return values to
48392         correspond to optimisation changes made in r206070.
48393
48394 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
48395
48396         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
48397         from prefetch_block tune setting.
48398         (nocona_cost): Correct size of prefetch block to 64.
48399
48400 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
48401
48402         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
48403         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
48404         used to save the static chain register in the computation of the offset
48405         from which the FP registers need to be restored.
48406
48407 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
48408
48409         PR tree-optimization/59519
48410         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
48411         ICE if get_current_def (current_new_name) is already non-NULL, as long
48412         as it is a phi result of some other phi in *new_exit_bb that has
48413         the same argument.
48414
48415         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
48416         or vmovdqu* for misaligned_operand.
48417         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
48418         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
48419         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
48420         aligned_mem for AVX512F masked aligned load and store builtins and for
48421         non-temporal moves.
48422
48423 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
48424
48425         PR tree-optimization/59651
48426         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
48427         Address range for negative step should be added by TYPE_SIZE_UNIT.
48428
48429 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
48430
48431         * config/m68k/m68k.c (handle_move_double): Handle pushes with
48432         overlapping registers also for registers other than the stack pointer.
48433
48434 2014-01-03  Marek Polacek  <polacek@redhat.com>
48435
48436         PR other/59661
48437         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
48438         __builtin_FILE.
48439
48440 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
48441
48442         PR target/59625
48443         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
48444         asm goto as jump.
48445
48446         * config/i386/i386.md (MODE_SIZE): New mode attribute.
48447         (push splitter): Use <P:MODE_SIZE> instead of
48448         GET_MODE_SIZE (<P:MODE>mode).
48449         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
48450         (mov -1, reg peephole2): Likewise.
48451         * config/i386/sse.md (*mov<mode>_internal,
48452         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
48453         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
48454         *<code><mode>3, *andnot<mode>3<mask_name>,
48455         <mask_codefor><code><mode>3<mask_name>): Likewise.
48456         * config/i386/subst.md (mask_mode512bit_condition,
48457         sd_mask_mode512bit_condition): Likewise.
48458
48459 2014-01-02  Xinliang David Li  <davidxl@google.com>
48460
48461         PR tree-optimization/59303
48462         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
48463         (dump_predicates): Better output format.
48464         (pred_equal_p): New function.
48465         (is_neq_relop_p): Ditto.
48466         (is_neq_zero_form_p): Ditto.
48467         (pred_expr_equal_p): Ditto.
48468         (pred_neg_p): Ditto.
48469         (simplify_pred): Ditto.
48470         (simplify_preds_2): Ditto.
48471         (simplify_preds_3): Ditto.
48472         (simplify_preds_4): Ditto.
48473         (simplify_preds): Ditto.
48474         (push_pred): Ditto.
48475         (push_to_worklist): Ditto.
48476         (get_pred_info_from_cmp): Ditto.
48477         (is_degenerated_phi): Ditto.
48478         (normalize_one_pred_1): Ditto.
48479         (normalize_one_pred): Ditto.
48480         (normalize_one_pred_chain): Ditto.
48481         (normalize_preds): Ditto.
48482         (normalize_cond_1): Remove function.
48483         (normalize_cond): Ditto.
48484         (is_gcond_subset_of): Ditto.
48485         (is_subset_of_any): Ditto.
48486         (is_or_set_subset_of): Ditto.
48487         (is_and_set_subset_of): Ditto.
48488         (is_norm_cond_subset_of): Ditto.
48489         (pred_chain_length_cmp): Ditto.
48490         (convert_control_dep_chain_into_preds): Type change.
48491         (find_predicates): Ditto.
48492         (find_def_preds): Ditto.
48493         (destroy_predicates_vecs): Ditto.
48494         (find_matching_predicates_in_rest_chains): Ditto.
48495         (use_pred_not_overlap_with_undef_path_pred): Ditto.
48496         (is_pred_expr_subset): Ditto.
48497         (is_pred_chain_subset_of): Ditto.
48498         (is_included_in): Ditto.
48499         (is_superset_of): Ditto.
48500
48501 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
48502
48503         Update copyright years.
48504
48505 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
48506
48507         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
48508         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
48509         config/arc/arc.md, config/arc/arc.opt,
48510         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
48511         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
48512         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
48513         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
48514         config/linux-protos.h, config/linux.c, config/winnt-c.c,
48515         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
48516         vtable-verify.c, vtable-verify.h: Use the standard form for the
48517         copyright notice.
48518
48519 2014-01-02  Tobias Burnus  <burnus@net-b.de>
48520
48521         * gcc.c (process_command): Update copyright notice dates.
48522         * gcov-dump.c: Ditto.
48523         * gcov.c: Ditto.
48524         * doc/cpp.texi: Bump @copying's copyright year.
48525         * doc/cppinternals.texi: Ditto.
48526         * doc/gcc.texi: Ditto.
48527         * doc/gccint.texi: Ditto.
48528         * doc/gcov.texi: Ditto.
48529         * doc/install.texi: Ditto.
48530         * doc/invoke.texi: Ditto.
48531
48532 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
48533
48534         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
48535
48536 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
48537
48538         * config/i386/sse.md (*mov<mode>_internal): Guard
48539         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
48540
48541         PR rtl-optimization/59647
48542         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
48543         new_rtx into UNSIGNED_FLOAT rtxes.
48544 \f
48545 Copyright (C) 2014 Free Software Foundation, Inc.
48546
48547 Copying and distribution of this file, with or without modification,
48548 are permitted in any medium without royalty provided the copyright
48549 notice and this notice are preserved.